macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

選択的スプライシングを検出する SplAdder

 

Alternative splicing (AS)(以下、選択的スプライシング)は、成熟mRNAを高度に調節された様式で切断および再結合させ、それによって転写産物の複雑性を増加させるmRNAプロセシング機構である。生物に応じて、発現遺伝子の95%までが複数の転写産物に転写される(Pan et al、2008; Wang et al、2008)、異なる遺伝子エクソン組成を有する様々な転写物が同じ遺伝子座から生じ得る。 (この文章では、転写プロセスを通じて生成された遺伝子のバリアントを同定するために、転写産物という用語(原文 term transcript)を使用する)。これらの転写産物は、同時に存在することはないが、細胞分化、シグナル伝達過程において重要な役割を果たしている(Kornblihtt et al、2013)。したがって、計算的なトランスクリプトーム解析の2つの大きな課題は、複雑さと完全性である。 SplAdderでは、RNA-Seqデータのエビデンスを活用して、完全な転写産物の代わりに、サンプル内のスプライシング多様性のより完全な表現を計算し、複雑さに取り組んでいる。我々(著者ら)は、MATLABPythonの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で導入できる。

本体 Github

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が出る。

f:id:kazumaxneo:20180624110644j:plain

 正常に終わると、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も作成される。

f:id:kazumaxneo:20180624115242j:plain 

-T noの時の出力。

.pickleファイルははHDF5形式で、genes_graph_conf3.merge_graphs.count.pickleにはグラフのノードとエッジのそれぞれについてのリードカウント情報が含まれている。

 

 -T yesにするとスプライシングイベントの分析が自動で行われる。以下のようなファイルが出力される。

f:id:kazumaxneo:20180624132426j:plain

-T yesの時の出力。

 

ファイルに"confirmed"というラベルが付いているのは、提供したサンプルのシーケンスデータの少なくとも1つにおいてオルタナティブスプライシングイベントが確認されたデータ。confirmedされた全イベントについて、SplAdderはHDF5ファイルと.pickleファイル、gff3ファイルを追加出力する。

GFF3ファイル。

f:id:kazumaxneo:20180624132738j:plain

オルタナティブスプライシングが起きている領域が記録されている。定量値は.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.