Package: outrigger
Large-scale detection and calculation of alternative splicing withOutriggerOutriggeris a program which uses junction reads from RNA seq data, and
a graph database to create ade novoalternative splicing annotation
with a graph database, and quantify percent spliced-in (Psi) of the
events.Free software: BSD licenseDocumentation is available here:http://yeolab.github.io/outrigger/FeaturesFinds novel splicing events, including novel exons!
(outrigger index) from.bamfiles(optional) Validates that exons have correct splice sites, e.g. GT/AG
and AT/AC for mammalian systems (outrigger validate)Calculate “percent spliced-in” (Psi/Ψ) scores for all your samples
given the validated events (or the original events if you opted not
to validate) viaoutrigger psiInstallationTo installoutrigger, we recommend using theAnaconda Python
Distributionand creating an environment.You’ll want to add thebiocondachannel to make installingbedtoolsand
its Python wrapper,pybedtoolseasy (these programs are necessary for bothoutrigger indexandoutrigger validate).conda config --add channels r
conda config --add channels biocondaCreate an environment calledoutrigger-env. Python 2.7, Python 3.4, Python 3.5, and Python 3.6 are supported.conda create --name outrigger-env outriggerNow activate that environment:source activate outrigger-envTo check that it installed properly, try the command with the help
option (-h),outrigger-h. The output should look like this:$ outrigger -h
usage: outrigger [-h] [--version] {index,validate,psi} ...

outrigger (1.0.0dev). Calculate "percent-spliced in" (Psi) scores of
alternative splicing on a *de novo*, custom-built splicing index -- just for
you!

positional arguments:
  {index,validate,psi}  Sub-commands
    index               Build an index of splicing events using a graph
                        database on your junction reads and an annotation
    validate            Ensure that the splicing events found all have the
                        correct splice sites
    psi                 Calculate "percent spliced-in" (Psi) values using the
                        splicing event index built with "outrigger index"

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exitBleeding edge code from Github (here)For advanced users, if you havegitandAnaconda Pythoninstalled, you
can:Clone this repositoryChange into that directoryCreate an environment namedoutrigger-envwith the necessary packages
from Anaconda and the Python Package Index (PyPI).Activate the environmentThese steps are shown in code below.git clone https://github.com/YeoLab/outrigger.git
cd outrigger
conda env create --file environment.yml
source activate outrigger-envQuick startIf you just want to know how to run this on your data with the default
parameters, start here. Let’s say you performed your alignment in the
folder called~/projects/tasic2016/analysis/tasic2016_v1, and that’s
where yourSJ.out.tabfiles from the STAR aligner are (they’re
output into the same folder as the.bamfiles). First you’ll need to
change directories to that folder withcd.cd ~/projects/tasic2016/analysis/tasic2016_v1Then you need find all alternative splicing events, which you do by
runningoutrigger indexon the splice junction files and the gtf.
Here is an example command:Input:.SJ.out.tabfilesoutrigger index --sj-out-tab *SJ.out.tab \
    --gtf /projects/ps-yeolab/genomes/mm10/gencode/m10/gencode.vM10.annotation.gtfInput:.bamfilesIf you’re using.bamfiles instead ofSJ.out.tabfiles, never despair!
Below is an example command. Keep in mind that for this program to work, the
events must be sorted and indexed.outrigger index --bam *sorted.bam \
    --gtf /projects/ps-yeolab/genomes/mm10/gencode/m10/gencode.vM10.annotation.gtfNext, you’ll want to validate that the splicing events you found follow
biological rules, such as being containing GT/AG (mammalian major
spliceosome) or AT/AC (mammalian minor splicesome) sequences. To do
that, you’ll need to provide the genome name (e.g.mm10) and the
genome sequences. An example command is below:outrigger validate --genome mm10 \
    --fasta /projects/ps-yeolab/genomes/mm10/GRCm38.primary_assembly.genome.faFinally, you can calculate percent spliced in (Psi) of your splicing
events! Thankfully this is very easy:outrigger psiIt should be noted that ALL of these commands should be performed in the
same directory, so no moving.Quick start summaryHere is a summary the commands in the order you would use them for
outrigger!cd ~/projects/tasic2016/analysis/tasic2016_v1
outrigger index --sj-out-tab *SJ.out.tab \
    --gtf /projects/ps-yeolab/genomes/mm10/gencode/m10/gencode.vM10.annotation.gtf
outrigger validate --genome mm10 \
    --fasta /projects/ps-yeolab/genomes/mm10/GRCm38.primary_assembly.genome.fa
outrigger psiThis will create a folder calledoutrigger_output, which at the end
should look like the one below. Each file and folder is annotated with which command
produced it.$ tree outrigger_output
outrigger_output..........................................................index
├── index.................................................................index
│   ├── gtf...............................................................index
│   │   ├── gencode.vM10.annotation.gtf...................................index
│   │   ├── gencode.vM10.annotation.gtf.db................................index
│   │   └── novel_exons.gtf...............................................index
│   ├── exon_direction_junction_triples.csv...............................index
│   ├── mxe...............................................................index
│   │   ├── event.bed.....................................................index
│   │   ├── events.csv....................................................index
│   │   ├── exon1.bed.....................................................index
│   │   ├── exon2.bed.....................................................index
│   │   ├── exon3.bed.....................................................index
│   │   ├── exon4.bed.....................................................index
│   │   ├── intron.bed....................................................index
│   │   ├── splice_sites.csv...........................................validate
│   │   └── validated..................................................validate
│   │       └── events.csv.............................................validate
│   └── se................................................................index
│       ├── event.bed.....................................................index
│       ├── events.csv....................................................index
│       ├── exon1.bed.....................................................index
│       ├── exon2.bed.....................................................index
│       ├── exon3.bed.....................................................index
│       ├── intron.bed....................................................index
│       ├── splice_sites.csv...........................................validate
│       └── validated..................................................validate
│           └── events.csv.............................................validate
├── junctions.............................................................index
│   ├── metadata.csv......................................................index
│   └── reads.csv.........................................................index
└── psi.....................................................................psi
    ├── mxe.................................................................psi
    |   ├── psi.csv.........................................................psi
    │   └── summary.csv.....................................................psi
    ├── outrigger_psi.csv...................................................psi
    └── se..................................................................psi
        ├── psi.csv.........................................................psi
        └── summary.csv.....................................................psi

10 directories, 26 filesHistoryv1.1.0 (June 28th, 2017)This is a minor release to`outrigger.Bug fixesFixedUNIQUE IDerror that happened somewhat stochastically when adding new exons to the databaseMiscellaneousExplicitly added Python 3.6 compatibilityChange logo location tologo/instead oflogo/v1since there’s only one
version anyway…v1.0.0 (April 3rd, 2017)This is the first major release ofoutrigger!!!v1.0.0 New featuresParallelized event across chromosomesAdded--low-memoryflag forindex,validate, andpsicommands
to use a smaller memory footprint when reading CSV files.Added--splice-typesoption to specify only one kind of splicing you’d
like to findSo the user can double-check the Psi calculation, create asummary.csvfile indicating the number of reads found at each junction, for all samples
- This also shows which “Case” corresponds to each event in each sample, so you can see whether there were sufficient or insufficient reads on the junctions of each event, and howoutriggerjudged it.Added functions to extract constitutive and alternative exons separatelyv1.0.0 Bug fixesFixed a bug that stalled on.bamfiles while counting the junctionsv1.0.0 MiscellaneousAddedGC/AGto valid splice sitesv0.2.9 (November 11th, 2016)This is a non-breaking release with many speed improvements, and upgrade is
recommended.v0.2.9 New featuresAddbamalignment files as input optionMiscellaneousParallelized Psi calculation, the exact number of processors can be specified
with--n-jobs, and by default,--n-jobsis-1, which means use as
many processors as are available.v0.2.8 (October 23rd, 2016)Updated README/HISTORY filesv0.2.7 (October 23rd, 2016)v0.2.7 New featuresAddedoutrigger validatecommand to check for canonical splice sites
by default:GT/AG(U1, major spliceosome) andAT/AC(U12, minor spliceosome). Both of these are user-adjustable as they are only
the standard for mammalian genomes.v0.2.7 API changesAdded--resumeand--forceoptions tooutrigger indexto prevent
the overwriting of interrupted indexing operations, or to force overwriting.
By default,outriggercomplains and cowardly exits.v0.2.7 Bug fixesSupport ENSEMBL gtf files which specify chromsome names with a number, e.g.4instead ofchr4. Thank you tolcscs12345for pointing this out!v0.2.7 MiscellaneousAdded version info withoutrigger--versionSped up gffutils queries and event finding by runningANALYZEon SQLite
databases.v0.2.6 (September 15th, 2016)This is a non-breaking patch releasev0.2.6 Bug fixesWasn’t concatenating exons properly after parallelizingv0.2.6 MiscellaneousClarified.gtffile example for directory outputv0.2.5 (September 14th, 2016)v0.2.5 Bug fixesAddedjoblibto requirementsv0.2.4 (September 14th, 2016)This is a non-breaking patch release ofoutrigger.v0.2.4 New featuresActuallyparallelized exon finding for novel exons. Before had written the code and tested the non-parallelized version but now using actually parallelized version!v0.2.4 Bug fixesDon’t need to turn on--debugcommand for outrigger to even runv0.2.3 (September 13th, 2016)This is a patch release of outrigger, with non-breaking changes from the
previous one.Bug fixesSubfolders get copied when installingAdd test for checking thatoutrigger-hcommand worksv0.2.2 (September 12th, 2016)This is a point release which includes theindexsubmodule in the__all__statement.v0.2.1 (September 12th, 2016)This is a point release which actually includes therequirements.txtfile that specifies which packagesoutriggerdepends on.v0.2.0 (September 9th, 2016)This is the second release ofoutrigger!New featuresParallelized exon finding for novel exonsAddedoutrigger validatecommand to check that your new exons have proper splice sites (e.g. GT/AG and AT/AC)Added more test data for other event types (even though we don’t detect them yet)v0.1.0 (May 25, 2016)This is the initial release ofoutrigger