Genomon-Project / fusionfusion

script for detecting fusion genes from several transcript alignment tools
GNU General Public License v3.0
9 stars 8 forks source link

近距離の融合遺伝子を検出するためのフィルタの実装 #12

Closed athos closed 3 years ago

athos commented 3 years ago

このプルリクエストでは、STARを用いた解析時にChimeric.out.samだけからでは検出できない融合遺伝子の検出を、STARのSJ.out.tabおよびAligned.out.bamを用いることで補完するフィルタを実装します。

隣接する遺伝子間での融合遺伝子のように比較的近距離で生じたキメラ遺伝子はChimeric.out.samに捕捉されないことがあります(たとえば、STIL-TALなど)。SJ.out.tabはSTARによって検出されたスプライシングジャンクションがリストアップされた出力ファイルで、Chimeric.out.samに捕捉されない融合遺伝子がスプライシングジャンクションとしてSJ.out.tabに捕捉されることがあります。

このフィルタの実装では、以下の5ステップによりSJ.out.tabから融合遺伝子候補のスプライシングジャンクションを抽出し、そのスプライシングジャンクション付近にマッピングされたアライメントをAligned.out.bamから読み込み解析することで融合遺伝子検出を補完します(これらの主な処理はShortRangeChimeraFilterクラスで実装しています):

  1. SJ.out.tabに出力されたスプライシングジャンクションのうち、始端と終端の遺伝子が異なるものを融合遺伝子候補のスプライシングジャンクションとして抽出
  2. 融合遺伝子候補のスプライシングジャンクション付近にマッピングされたアライメントをAligned.out.bamから読み込み、スプライシングと同じ位置にギャップを持つアライメントを融合遺伝子をサポートするアライメントとして抽出
  3. 融合遺伝子をサポートするアライメントをギャップの位置で2つに分割し、それぞれSAMに書き出す
  4. 融合遺伝子をサポートするアライメントのペアであるアライメントを収集し、SAMに書き出す
  5. ステップ3および4により生成したSAMをChimeric.out.samと同様にparseJunctionInfo.parseJuncInfo_STARに入力として渡し、その結果をChimeric.out.samの結果とマージする(以降は従来と同じ処理)

ステップ3および4は、fusionfusionにアライメントの3つ組(primary, supplementaryおよびそれらのペア)が融合遺伝子をサポートしていると認識させるために必要です。

なお、この変更では--starオプションの意味を変更しているため、ユーザレベルの後方互換性が維持されません。従来、--starオプションはChimeric.out.samのファイルパスを指定していましたが、この変更によりSTARの出力結果ファイル群のプレフィックス(STARの--outFileNamePrefixオプションに指定する値)を指定する必要があります。