真核生物のスモールRNA(sRNA)は、長さ200bp未満の、通常は翻訳されていないRNAとして定義されている。これらのRNAは、細胞生活の多くの側面に関与していることが示されている[1, 2]。
一般的には、特定の大きさの範囲、生合成、機能パスウェイによって分類されている。その中でも特にマイクロRNA(miRNA)が最も研究されている。成熟したmiRNAは、長い一次転写産物であり、primary transcriptsによって認識されるPre-miRNAステムループ二次構造へと折り畳まれる。他のsRNAクラスもまた、それらがよく特徴づけられた構造の一部:small nucleolar RNAs(snoRNA)、small nuclear RNAs(snRNAまたはU-RNA)、および tRNA-derived small RNAs(tsRNA)であるため、正確に同定することができる。
逆に、他のsRNAは構造が知られていない。いくつかのクラスは、タンパク質をコードする遺伝子、または長いノンコーディングRNAとの相対的な位置関係によってのみ定義されている[3]。いくつかのsRNAは、TSSの近く、エクソン/イントロンジャンクション部の近く、遺伝子のプロモーター内、または下流領域に蓄積することが知られている。最後に、いくつかのクラス:small interfering RNAs(siRNAs)、piwi-associated RNAs(piRNAs)、およびリピートassociated siRNAs(rasiRNAs)は、非常に少数の特徴的なパターン(明確な二次構造を持たず、一次転写産物を容易に検出できない)を持っている。
非常に多様であるが、これらのsRNAは単一の実験で捕捉することができ、このタスクを実行するためにいくつかのプロトコルが考案されている[4]。簡単に言えば、プロトコルには、RNAの精製、サイズ選択、場合によっては末端5'リン酸分子の濃縮、および配列決定が含まれている。使用する技術やマルチプレックスにもよるが、数十から数百万のリードが生成される。その後、各sRNAクラスの豊富さを評価するのが一般的である。これを行う最も簡単な方法は、リードをゲノムにマッピングし(通常は BWA [5] または bowtie [6] を使用)、マッピングされたリードをゲノム上の既知のアノテーションされた sRNA の位置を含むアノテーションファイルと比較することである。これが、各リードに対して実行されるアノテーションステップである。次に、各クラスのメンバーと共局在するリードの数をカウントすることにより、sRNAのクラスを定量化する。シンプルで広く使われている手法だが、この手法はいくつかの曖昧なケースでは機能しない。
- ゲノムの2つの異なる領域が同一である場合(通常はgenome duplicationの後)、1つのリードが異なる位置でも同じようにマップされることがある(論文図1A)。
- ゲノム内の2つの異なるアノテーション位置が部分的に重なっていて、その両方にヒット(すなわち、リードマッピング)が重なっている場合。この場合、ヒットはどちらかのアノテーションに起因している可能性がある(論文図1B)。
- アノテーションが重なっていないがタンデムに並んでいる場合。ヒットは通常、アノテーションの境界線上にある(論文図1C)。
最初の曖昧さの原因は、おそらく最もよく知られていて、取り組むのが難しいものである。いくつかのsRNAは、重複領域(piRNAやsiRNAなど)と共局在したり、重複遺伝子(miRNAやtsRNA)に含まれたりすることが知られている。これらの問題を回避するために、いくつかの戦略が使用された。
- マルチマッピングリードを廃棄する。
- ランダムヒットを使う
- 各ヒットに重み付けをする(リードがn回マップされた場合、各ヒットは1/nとしてカウント)。
しかし、すべての戦略には明らかなバイアスがある。最初のストラテジーは通常はかなりの割合のリードを破棄し、2番目のストラテジーはランダムな推測を行い、最後のストラテジーは間違ったクラスを過大評価することがあるが、真のクラスは過小評価する。遺伝子がduplicateされていて、リードがduplicateされた遺伝子の両方に一意にマップされている場合、最後の2つの戦略は機能し、期待された定量化を提供することに注意する。
原則として、MMR [7]のようなツールによって実装された第4の戦略がある。MMRは、putative lociの発現に基づいて、リードのための最適なマッピング位置を推測する。しかし、MMRはロングRNAシーケンスのために開発されたもので、リードの分布が転写物全体にわたってある程度一定であることを前提としている。これは、ショートRNA-Seqの現実の状況とはかけ離れており、特に小さな領域のみが標的とされるsRNAs silencing genesでは、真実とは程遠いものである。第二に、MMRの本当の利点は、曖昧でない領域から観察されたカバレッジを使用して、曖昧な領域にわたるリードの分布を推論することである。この戦略は、各リードが成熟したトランスクリプトの全長を占めるmiRNAに対しては単純に機能しない。
ShortStack [8]で実装された最終的な戦略は、以前のアイデアをsRNA-Seqに適用したものである。ここでは、プロファイルの発現の推定が不規則な発現プロファイルをモデル化し、マルチマッピングリードを割り当てるために使用される。
[9]のようないくつかの論文では、根本的に異なるパイプラインを使用している。彼らはまず、異なるヌクレオチドデータベース(通常はクラスごとに1つずつ)を収集し、そのデータベースにリードをマッピングする。あるクラスのデータベースにマッピングされたリードは、そのリードがそのクラスに属していることを示唆している。しかし、このパイプラインでは、1つのリードが複数のデータベースにマッピングされる可能性があるため、複数のリードがマッピングされているという問題を解決することはできない。
2つ目の曖昧さの原因は、複数のアノテーションが重なっている場合、2つの原因が考えられる。第一に、アノテーションに矛盾があるかもしれない。例えば、miRNAがsnoRNAと共局在することは知られていない。しかし、snoRNAがmiRNAとして検出されることがあることがわかったので、同じアノテーションデータセットの中で2つのアノテーションが競合している可能性がある。第二に、アノテーションのレベルが異なる場合がある。例えば、miRNAはイントロンの内部に局在している場合がある。ユーザーがイントロン上のmiRNAとオーバーラップするリードを見つけた場合、そのリードはおそらくイントロンではなくmiRNAに起因するものと思われる。
最後の曖昧さの原因は、アノテーションが正しく定義されていない場合に生じる可能性がある。このような曖昧さは(長い)RNA-Seqのコンテキストでは存在するが、通常のRNA-Seqの定量ツール、例えばfeatureCounts [10]のようなものは容易に使用することができない。第一に、これらの定量化ツールは遺伝子ごとのリード数をカウントするものであり、クラスごとのリード数をカウントするものではない。第二に、イントロンや遺伝子のフランキング領域のような小さなRNAを産生する領域は、アノテーションファイルには存在しないため、これらのツールでは無視される。第三に、定量化ツールは、通常、ライブラリがstrandedであること、またはunstrandedであることを期待する。したがって、遺伝子に対してアンチセンスであるリードや、任意の方向(例えば、フランキング領域)を採用できるリードを一回の実行で定量化することは(直接的に)不可能である。最後に、マルチマッピングされたリードは通常破棄されるか(これがデフォルトの動作である)、または遺伝子ごとに一度だけカウントされる。
これらの曖昧さを解決するために、著者らはmmannotと呼ばれるsRNAクラス定量ツールに実装された新しい戦略を提案する。ここでは紹介した5つの手法と比較した。
GIthubより
mmannotはscRNA seqのデータでmiRNA、rRNA、tRNAなどのシークエンスを何回行ったかを調べるツールである。リードの膨大な割合が、実際には複数の場所でマップされている可能性がある。このような複数のマップを持つリードは、通常、類似の定量ツールではうまく処理できない。mmannotは、あるリードが複数の場所にマッピングされている場合、これらのすべての場所を検査する。
インストール
macos10.14でテストした。
ビルド依存
Compile everything with make.
- You will need a C++11 compiler, and zlib.
git clone https://github.com/mzytnicki/mmannot.git
cd mmannot/
make -j
> ./mmannot
$ ./mmannot
Usage: mmannot [options]
Compulsory options:
-a file: annotation file in GTF format
-r file1 [file2 ...]: reads in BAM/SAM format
Main options:
-o output: output file (default: stdout)
-c config_file: configuration file (default: config.txt)
-n name1 name2...: short name for each of the reads files
-s strand: string (U, F, R, FR, RF, FF, defaut: F) (use several strand types if the library strategies differ)
-f format (SAM or BAM): format of the read files (default: guess from file extension)
-l integer: overlap type (<0: read is included, <1: % overlap, otherwise: # nt, default: -1)
-d integer: upstream region size (default: 1000)
-D integer: downstream region size (default: 1000)
-y string: quantification strategy, valid values are: default, unique, random, ratio (default: default)
-e integer: attribute a read to a feature if at least N% of the hits map to the feature (default: 100%)
Output options:
-p: print progress
-m file: print mapping statistics for each read (slow, only work with 1 input file)
-M file: print mapping statistics for each interval (slow, only work with 1 input file)
-t integer: # threads (default: 1)
-h: this help
テストラン
bam、gtf、そしてconfigファイルを指定する。
cd mmannot/
mmannot -a test_dataset.gtf -r test_dataset.bam -c configHS38.txt -o output
> cat output
引用
mmannot: How to improve small–RNA annotation?
Matthias Zytnicki , Christine Gaspin
PLoS One. 2020; 15(5)