Alternative splicing (AS)(以下、選択的スプライシング)は、成熟mRNAを高度に調節された様式で切断および再結合させ、それによって転写産物の複雑性を増加させるmRNAプロセシング機構である。生物に応じて、発現遺伝子の95%までが複数の転写産物に転写される(Pan et al、2008; Wang et al、2008)、異なる遺伝子エクソン組成を有する様々な転写物が同じ遺伝子座から生じ得る。 (この文章では、転写プロセスを通じて生成された遺伝子のバリアントを同定するために、転写産物という用語(原文 term transcript)を使用する)。これらの転写産物は、同時に存在することはないが、細胞分化、シグナル伝達過程において重要な役割を果たしている(Kornblihtt et al、2013)。したがって、計算的なトランスクリプトーム解析の2つの大きな課題は、複雑さと完全性である。 SplAdderでは、RNA-Seqデータのエビデンスを活用して、完全な転写産物の代わりに、サンプル内のスプライシング多様性のより完全な表現を計算し、複雑さに取り組んでいる。我々(著者ら)は、MATLABとPythonのSplAdderのオープンソースの実装を提供している。これらの実装には、以下に説明するすべての機能が含まれており、同じ結果が得られる。しかし、今後の開発では、アクセシビリティ上の理由からPythonの実装に焦点を当てている。すべての入力は、BAMやGFFなどのアラインメントや標準化されたアノテーションフォーマットに従る。完全な例、使用例、およびユーザーインターフェイスに関する情報については、補足ウェブサイトを提供している。ユーザマニュアルは、ソースコードリポジトリのwikiセクションにある。
シミュレートされたデータの評価では、SplAdderは新規イベントの検出においてより正確であり、テストされた競合のいずれよりも差異分析においてより良い性能を示すことを示す。これらのメソッドは、提示されたSplAdderパイプラインに最も近いため、JuncBase、rMATS、およびSpliceGrapherに対してSplAdderを比較した。
SplAdder wiki
https://github.com/ratschlab/spladder/wiki
インストール
centos7のpython2.7.14環境でテストした。
依存
- developed in python 2.7
- scipy (version >= 0.12 tested)
- pysam (version >= 0.7 required)
- h5py (version >= 2.2.0 tested)
- matplotlib (for the visualization code only; version >= 1.4.0 tested)
- intervaltree
全てpipで導入できる。
git clone https://github.com/ratschlab/spladder.git
cd spladder/python/
> python spladder.py -h
$ python spladder.py -h
Usage: spladder.py [options]
Options:
-h, --help show this help message and exit
MANDATORY:
-b FILE1,FILE2,..., --bams=FILE1,FILE2,...
alignment files in BAM format (comma separated list)
-o DIR, --outdir=DIR
output directory
-a FILE, --annotation=FILE
file name for annotation in GTF/GFF3 or format
INPUT OPTIONS:
-P y|n, --primary_only=y|n
only use primary alignments [n]
-X y|n, --var_aware=y|n
alignment files are variation aware (presence of XM
and XG tags) [n]
-L STRING, --label=STRING
label for current experiment [-]
-S STRING, --ref_strain=STRING
reference strain [-]
-n INT, --readlen=INT
read length (used for automatic confidence levele
settings) [36]
-x y|n, --same_genome=y|n
input alignments share the same genome [y]
-F FILE, --spladderfile=FILE
use existing SplAdder output file as input (advanced)
[-]
--filter_overlap_genes=y|n
remove genes from annotation that overlap each other
[off]
OUTPUT OPTIONS:
-l FILE, --logfile=FILE
log file name [stdout]
-v y|n, --verbose=y|n
verbosity
-d y|n, --debug=y|n
use debug mode [n]
--compress_text=y|n
compress text output [y]
GRAPH OPTIONS:
-c INT, --confidence=INT
confidence level (0 lowest to 3 highest) [3]
-I INT, --iterations=INT
number of iterations to insert new introns into the
graph [5]
-M <STRAT>, --merge_strat=<STRAT>
merge strategy, where <STRAT> is one of: merge_bams,
merge_graphs, merge_all [merge_graphs]
-i y|n, --insert_ir=y|n
insert intron retentions [y]
-e y|n, --insert_es=y|n
insert cassette exons [y]
-E y|n, --insert_ni=y|n
insert new intron edges [y]
-r y|n, --remove_se=y|n
remove short exons [n]
-V y|n, --validate_sg=y|n
validate splice graph [n]
-s y|n, --re-infer_sg=y|n
re-infer splice graph [n] (advanced)
SPLICE OPTIONS:
-T y|n, --extract_as=y|n
extract alternative splicing events [y]
-D INT, --detect_edge_limit=INT
max number of edges in the graph to still extract
events [500]
-A y|n, --curate_alt_prime=y|n
curate alt prime events [y]
-t STRING, --event_types=STRING
list of alternative splicing events to extract [exon_s
kip,intron_retention,alt_3prime,alt_5prime,mult_exon_s
kip]
EXPERIMENTAL - BETA STATE:
-p y|n, --pyproc=y|n
use parallel implementation [n]
-R 1,1,2,2,..., --replicates=1,1,2,2,...
replicate structure of files (same number as alignment
files) [all 1 - no replicated]
-U y|n, --intron_cov=y|n
count intron coverage [n]
--sparse_bam=y|n store BAM content as sparse representation for later
use [n]
--ignore_mismatches=y|n
ignore mismatches - does not filter by edit operations
- does not require NM in BAM [n]
--output_struc=y|n outputs events in structured splicing syntax similar
to astalavista [n]
--parallel=<INT> use multiple processors [1]
-q y|n, --quantify_graph=y|n
quantify graph - implicilty set then -T is set [n]
ラン
0、データ(gtfや.bam)をダウンロードし、テストランを実行する。
./example_run.sh
正常に終わると、All results are correctが出る。
正常に終わると、All results are correctが出る。
テストではこの時点ですでにWTとMTのbamファイルが準備できている。実際はRNA seqデータからマッパーを使いsamを作り、samtoolsでbamに変換する必要がある。オーサーらは以下の3つのマッパーで動作を確認している(リンク)。
1、ダウンロードしたbamを使い、 splicing graphを構築する。-bフラグでWT2データのbamとMT2データのbam、合計4つを指定する。
cd spladder/python/
python spladder.py -a examples/TAIR10_GFF3_genes.tiny.gff \
-b examples/NMD_WT1.tiny.bam,examples/NMD_WT2.tiny.bam,examples/NMD_DBL1.tiny.bam,examples/NMD_DBL2.tiny.bam \
-o tutorial -T y
- -T extract alternative splicing events [y]
- -c confidence level (0 lowest to 3 highest) [3]
"-T no"だと、spladder/にsplicing graphファイルのみが作成される。個々のRNA seqデータのsplicing graphからマージして1つにしたファイルgenes_graph_conf3.merge_graphs.count.pickleも作成される。
-T noの時の出力。
.pickleファイルははHDF5形式で、genes_graph_conf3.merge_graphs.count.pickleにはグラフのノードとエッジのそれぞれについてのリードカウント情報が含まれている。
-T yesにするとスプライシングイベントの分析が自動で行われる。以下のようなファイルが出力される。
-T yesの時の出力。
ファイルに"confirmed"というラベルが付いているのは、提供したサンプルのシーケンスデータの少なくとも1つにおいてオルタナティブスプライシングイベントが確認されたデータ。confirmedされた全イベントについて、SplAdderはHDF5ファイルと.pickleファイル、gff3ファイルを追加出力する。
GFF3ファイル。
てオルタナティブスプライシングが起きている領域が記録されている。定量値は.gz圧縮されたテキストデータに出力される。
HDF5出力フォーマットの詳細については、オーサーの準備したフォーマット説明ページを確認してください。
https://github.com/ratschlab/spladder/wiki/File-Format-Descriptions
引用
SplAdder: identification, quantification and testing of alternative splicing events from RNA-Seq data
Kahles A, Ong CS, Zhong Y, Rätsch G
Bioinformatics. 2016 Jun 15;32(12):1840-7.