Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged

Conversation

athos
Copy link
Contributor

@athos athos commented Jan 13, 2021

このプルリクエストでは、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オプションに指定する値)を指定する必要があります。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants