JETTA: Instructions



How to run

JETTA can be executed as a command line application or R-package.

Command line application

sh> jetta param.conf cel1 cel2 ...
or
sh> jetta param.conf -l celfil.list
celfile.list should be the text file of which each line is the relative path of a cel file. No header.

R-package

Install a proper R package. Windows R package works any windows machine, and MAC/Linux R package works any MAC/Linux machine.
# load library
library(jetta);
# Expression
param = jetta.do.expression("CELs","example.clf","example.pgf",MetaProbesetFile="example.mps");
expr = jetta.read.expression(param);
# MADS
param = jetta.do.mads("CELs","example.clf","example.pgf",MetaProbesetFile="example.mps",MADSSampleClass=c(-1,-2,-3,0,0,0,1,2,3));
expr = jetta.read.expression(param);
mads = jetta.read.mads.output(param);


How to compile

Windows

1. Install gsl-1.8 windows package source code
2. Compile GSL with "Release-StaticLib" configuration(Build->Configuration Manager) with Microsoft Visual Studio 2009
3. Get JETTA source code and open jetta.sln with Microsoft Visual Studio 2008
4. Open "Project->jetta Property->Configuration Properties", and set "C/C++->General->Additional Include Directories" and "Linker->General->Additional Library Directories" properly as GSL
5. Run "Build Solution" under "Build" menu

Mac and Linux

1. Install GSL package
2. Get JETTA source code and go to jetta directory
3. Copy Makefile.XXX to Makefile as your system and GSL
4. Set the right path of GSL library to "LIBS" on Makefile
5. make


Expression indices calculation

Using a command lilne application, the param.conf can be configured like below.
# Using Probeset Annotation File (recommended for HuEx and MoEx)
Analysis=expression
ClfFile=Library/MoEx-1_0-st-v1.r2.clf
PgfFile=Library/MoEx-1_0-st-v1.r2.pgf
ProbesetAnnotationFile=Library/MoEx-1_0-st-probeset-annot.csv
BackgroundCorrectionMethod=mat
NormalizationMethod=median_scaling
SummarizationTarget=tc
SummarizationMethod=probe_selection
# Using Meta Probeset File (recommended for HJAY/MJAY/GG-H1)
Analysis=expression
ClfFile=Library/hjay.r1.clf
PgfFile=Library/hjay.r1.pgf
MetaProbesetFile=Library/hjay.r1.mps
BackgroundCorrectionMethod=mat
NormalizationMethod=median_scaling
SummarizationTarget=mps
SummarizationMethod=probe_selection
If "SummarizationTarget" is "mps", JETTA summarizes gene expression as "MetaProbesetFile". If it is one of "tc", "exon" and "psr", JETTA summarizes as defined in "ProbesetAnnotationFile". For other options, see the description of parameters.
You can also calculate gene expression with JETTA R-package
# Using Probeset Annotation File (recommended for HuEx and MoEx)
library(jetta);
LIB = "C:/Users/Junhee Seok/Documents/Research/Microarray Libraries/HuEx/";
CELs = "C:/Users/Junhee Seok/Documents/Research/Microarray Data/HuEx_11tissues/";
CLF = paste(LIB,"HuEx-1_0-st-v2.r2.clf",sep="");
PGF = paste(LIB,"HuEx-1_0-st-v2.r2.pgf",sep="");
PSA = paste(LIB,"HuEx-1_0-st-v2.na24.hg18.probeset.csv",sep="");
param = jetta.do.expression(CELs,CLF,PGF,ProbesetAnnotationFile=PSA,SummarizationMethod="median_polish",SummarizationTarget='tc');
tcexpr = jetta.read.expression(param);
# Using Meta Probeset File (recommended for HJAY/MJAY/GG-H1)
library(jetta);
LIB = "C:/Users/Junhee Seok/Documents/Research/Microarray Libraries/GG-H1/"
CLF = paste(LIB,"hGlue1_0.r3.clf",sep="");
PGF = paste(LIB,"hGlue1_0.r3.pgf",sep="");
MPS = paste(LIB,"hGlue1_0.r3.TC.mps",sep="");
param = jetta.do.expression("CELs",CLF,PGF,MetaProbesetFile=MPS,SummarizationMethod="median_polish");
tcexpr = jetta.read.expression(param);


Alternative splicing detection

JETTA analysis with "MADS" or "ASA" option produces all calculated results needed for alternative splicing detection. Filtering function in JETTA R-package reads calculated results and selects confident candidates for alternative splicing events. Visualization functions in JETTA R-package help to show signals.

MADS

The param.conf can be configured like below.
Analysis=MADS
# Ohter options similar to expression indices calculation
MADSCutoffHigh=0.9
MADSCutoffExpression=500
MADSCutoffFoldChange=2
MADSCutoffCrossHybCorr=0.55
MADSPrecomputedCrossHybCorr=Library/moex_cross_hyb.reduced.txt
MADSTTestType=unpaired
MADSSampleAnnotationFile=Data/annotation.txt
MADS analysis implements full functions of MADS including gene and probe selection by expression level, fold-change and cross-hybridization detection. MADS class group should be noted on the annotation file. The annotation file should be plain text format with tab separator. The first column should be array name(filename without any path), and should have 'MADS_CLASS' fields. See a sample. In unpaired two classes test, negative ones make class 1 group and positive ones make class 2 group. In paired test, (-1,1) makes one pair and so on. In the both cases, 0's are not included in the analysis.

ASA

The param.conf can be configured like below.
Analysis=ASA
# Ohter options similar to expression indices calculation
ASATestType=unpaired
SampleAnnotationFile=CELs/annotation.txt
ASA analysis implements simple version of MADS (without gene/probe selection) and MIDAS together. It also needs a sample annotation file that has 'ASA_CLASS' field. The format and group settings of ASA annotation file is identical to MADS annotation file except the field name.

Gene-structure output

Both of MADS and ASA analysis produce structured output as gene structures by exons and junctions.

The fields are

Filtering for alternative splicing candidates

ASA or MADS analysis results can be imported in R, and confident candidates of alternative splicing events can be selected by filtering functions of JETTA R-package.
asa.sel = jetta.asa.filtering(asa.out,tc.annot=NULL,tc.expr.cutoff=NULL,tc.fc.cutoff=NULL,ps.fc.cutoff=NULL,dabg.cutoff=NULL,mads.cutoff=NULL,midas.cutoff=NULL,junction.support=TRUE,alternative.only=TRUE);

Plotting alternative splicing signals for a gene

JETTA provides a R-function plotting exon and junctions signals of expression, fold change and significance of alternaitive splicing.
asa.data = asa.sel$asa[asa.sel$asa$TC=='TC010006',]; jetta.plot.asa(asa.data,signal.name="PS.MADS.pv_1over2",log2.trans=TRUE,inverse.trans=TRUE,main="Example",ylab="log2(pv)");
An example of VSP39 between liver and muscle samples on Glue Grant arrays. It plots logged fold changes of normalized exon and junction expression. Each box represents exons along the genome positions. Upward signals are for exons and junctions between neighboring exons, and downward signals for junctions between apart exons. Probeset Ids are plotted on the top and under the bottom of the figure. Red is for annotated alternatives, green is for annotated constitutives, and gray is for not-annotated ones. Bold bars are for exon signals, and dotted bars are for junction signals.


R-script Examples

An example R-script for HuEx and MoEx.
# set environment variables
library(jetta);
LIB = "C:/Users/Junhee Seok/Documents/Research/Microarray Libraries/HuEx/";
CELs = "C:/Users/Junhee Seok/Documents/Research/Microarray Data/HuEx_11tissues/";
CLF = paste(LIB,"HuEx-1_0-st-v2.r2.clf",sep="");
PGF = paste(LIB,"HuEx-1_0-st-v2.r2.pgf",sep="");
PSA = paste(LIB,"HuEx-1_0-st-v2.na24.hg18.probeset.csv",sep="");
# get gene expression
param = jetta.do.expression(CELs,CLF,PGF,ProbesetAnnotationFile=PSA,SummarizationMethod="median_polish",SummarizationTarget='tc');
tcexpr = jetta.read.expression(param);
# alternative splicing analysis using MADS
param = jetta.do.mads(CELs,CLF,PGF,ProbesetAnnotationFile=PSA,SummarizationMethod="median_polish",SummarizationTarget='tc',MADSTTestType="unpaired",MADSSampleClass=c(-1,-1,-1,1,1,1));
mads = jetta.read.mads.output(param);
mads.sel = jetta.asa.filtering(mads,tc.expr.cutoff=100,tc.fc.cutoff=2,dabg.cutoff=0.01,mads.cutoff=0.001);
mads.data = mads.sel$asa[mads.sel$asa$TC==mads.sel$asa$TC[1],];
jetta.plot.asa(mads.data,signal.name='MADS.pv_1over2',inverse.trans=TRUE); # for PV, make inverse.trans be TRUE
# alternative splicing analysis using ASA
param = jetta.do.asa(CELs,CLF,PGF,ProbesetAnnotationFile=PSA,SummarizationMethod="median_polish",SummarizationTarget='tc',ASATestType="unpaired",ASASampleClass=c(-1,-1,-1,1,1,1));
asa = jetta.read.asa.output(param);
asa.sel = jetta.asa.filtering(asa,tc.expr.cutoff=100,tc.fc.cutoff=2,dabg.cutoff=0.01,midas.cutoff=0.01);
asa.data = asa.sel$asa[asa.sel$asa$TC==asa.sel$asa$TC[1],];
jetta.plot.asa(asa.data,signal.name="PS.norm_expr_fold_change);
An example R-script for HJAY, MJAY and GG.
# set environment variables
library(jetta);
CELs = "C:/Users/Junhee Seok/Documents/Research/Microarray Data/GG_LM_013009/";
LIB = "C:/Users/Junhee Seok/Documents/Research/Microarray Libraries/GG-H1/"
CLF = paste(LIB,"hGlue1_0.r3.clf",sep="");
PGF = paste(LIB,"hGlue1_0.r3.pgf",sep="");
MPS = paste(LIB,"hGlue1_0.r3.TC.mps",sep="");
ASS = paste(LIB,"hGlue1_0.r3.ASS",sep="");
PSP = paste(LIB,"hGlue1_0.r3.PSR_PS.BED",sep="");
# get gene expression
param = jetta.do.expression(CELs,CLF,PGF,MetaProbesetFile=MPS,SummarizationMethod="median_polish");
tcexpr = jetta.read.expression(param);
# alternative splicing analysis using MADS
param = jetta.do.mads(CELs,CLF,PGF,MetaProbesetFile=MPS,AlternativeSplicingStructureFile=ASS,ProbesetPositionFile=PSP,SummarizationMethod="median_polish",MADSTTestType="unpaired",MADSSampleClass=c(-1,-1,-1,-1,1,1,1,1));
mads = jetta.read.mads.output(param);
mads.sel = jetta.asa.filtering(mads,tc.expr.cutoff=100,tc.fc.cutoff=2,dabg.cutoff=0.01,mads.cutoff=0.001,junction.support=TRUE);
mads.data = mads.sel$asa[mads.sel$asa$TC==as.character(mads.sel$asa$TC[1]),];
jetta.plot.asa(mads.data,signal.name='MADS.pv_1over2',inverse.trans=TRUE);
# alternative splicing analysis using ASA
param = jetta.do.asa(CELs,CLF,PGF,MetaProbesetFile=MPS,AlternativeSplicingStructureFile=ASS,ProbesetPositionFile=PSP,SummarizationMethod="median_polish",ASATestType="unpaired",ASASampleClass=c(-1,-1,-1,-1,1,1,1,1));
asa = jetta.read.asa.output(param);
asa.sel = jetta.asa.filtering(asa,tc.expr.cutoff=100,tc.fc.cutoff=2,dabg.cutoff=0.01,midas.cutoff=0.01,junction.support=TRUE);
asa.data = asa.sel$asa[asa.sel$asa$TC==as.character(asa.sel$asa$TC[1]),];
jetta.plot.asa(asa.data);


JETTA GUI

The JETTA GUI is a JAVA-based graphical user interface for the JETTA command line applications and R-package. By co-working with R and cisGenomeBrowser, it visualizes alternative splicing signals and raw signals. The JRE and R are pre-required. The cisGenomeBrowser (Windows only) is optionally required.
After downloading the JETTA GUI, extract the zip file. By clicking "jetta.jar", user can run the JETTA GUI. If it does not work, please re-install JRE. Please keep the sub-directory structures.
For the detail usage of the JETTA GUI, please see the tutorial.




Back to top