シーケンス番号に基づいて大きな行チャンクを削除する

シーケンス番号に基づいて大きな行チャンクを削除する

次のように構成された次世代シーケンスデータでfastqファイルを処理しています。

  • シーケンサー、レーン、「タイル」、および読み取り数に関する行1情報
  • シーケンスのライン2情報
  • 3行目は+記号で区切り記号として使用されます。
  • 読み取り品質に関する4行情報

最初の行の5番目の位置(黒)の特定の数値範囲内のすべての読み取り値を削除したいと思います。

以下は、1101と1103の間の読み出しを削除する例です。入力する:

@ST-E00204:114:HHKTJALXX:4:1101:22962:1538_1:N:0:1/1
NGTTTGTTAATTATTAAGTTTTTTTTTTTTAAGGATTTTTATAGTAGTAATAGAAATTTAATTAAGATAGAAAATTTTAAGTGTGGTTAGGATTGTAGTTTTGTTGGTATTATGTTGATTTAGTATAAGTAAAGTTTTGATTTT
+
AAAAJJJJFJJAJJJAJAJJJJJJJJAJJ-FJJJJF--FJJJJFJJJFFJJJFFJ-JJJJFFFFJ-AJ7AJJJJJJJFJJJJFJFAJFFJJF-AAFAJFJJ7AJAJJFJFJJJ7FFFFFJFJJ-7F-77A JF--7FJ 제이


@ST-E00204:114:HHKTJALXX:4:1102:7101:2012 2:N:0:1
NATTTAAAAATACCCACTATAAAACATAAAATATAACAAAAAAAAATATAAAAAAATAAAAAAAATCCACTTCACGTCTTTTAACAATTTCGTCATTTTTAACATCCTCAAATAAATTATTCTCATTTTCCATAACTTCCAATTTTT
+
!AA-FJJJJJJ-FJAJFJJJJFJJAJJJJJJ-F-AJJJJJJ-F-FJJFJJFJFFFFFF<-F<FJJJF-<7<JF<-7AAFFJ--A<A77--7FAAF-A----7FF-7-7<F -7--<F7---77<----7-<<FA---7<<---7---

@ST-E00204:114:HHKTJALXX:4:1103:7141:2012 2:N:0:1
NAAAACATAAAATATAACAAACAAACTAAAAATCATAAAAAATAAAAAAACATCCACTTAACAACTTAAAAAATAACAAATCACTAATTATAATAAAAAATAAAAAATAACACACTCTAACACCTAAAACAACCAAAAAAACTAAAACTCC
+
!AAFFFFJJJJA-F--AFFJJ-F<JJF<AJFJ<JF-7<JJAA7-J-FFFJ7JJJFJ-F<AJJJJFFJ-AF-AJ<FF-JFFF-77<JJ---777<7--7 -A <JA-7<<FFF<--7--7-FFFF-<---7---7A-<A7FA------7-

@ST-E00204:114:HHKTJALXX:4:1104:7101:2012 2:N:0:1
NATTTAAAAATACCCACTATAAAACATAAAATATAACAAAAAAAAATATAAAAAAATAAAAAAAATCCACTTCACGTCTTTTAACAATTTCGTCATTTTTAACATCCTCAAATAAATTATTCTCATTTTCCATAACTTCCAATTTTT
+
!AA-FJJJJJJ-FJAJFJJJJFJJAJJJJJJ-F-AJJJJJJ-F-FJJFJJFJFFFFFF<-F<FJJJF-<7<JF<-7AAFFJ--A<A77--7FAAF-A----7FF-7-7<F -7--<F7---77<----7-<<FA---7<<---7---

希望の出力:

@ST-E00204:114:HHKTJALXX:4:1104:7101:2012 2:N:0:1
NATTTAAAAATACCCACTATAAAACATAAAATATAACAAAAAAAAATATAAAAAAATAAAAAAAATCCACTTCACGTCTTTTAACAATTTCGTCATTTTTAACATCCTCAAATAAATTATTCTCATTTTCCATAACTTCCAATTTTT
+
!AA-FJJJJJJ-FJAJFJJJJFJJAJJJJJJ-F-AJJJJJJ-F-FJJFJJFJFFFFFF<-F<FJJJF-<7<JF<-7AAFFJ--A<A77--7FAAF-A----7FF-7-7<F -7--<F7---77<----7-<<FA---7<<---7---

1つのアイデアは、次を使用することです。

split -l 4 myfile.fq

次に、5番目の位置の数字に基づいて各ファイルを削除します。たとえば、次のようになります。

grep -v ":1104"
grep -v ":1105"

ちょっと待って、ところで問題はファイルが大きすぎるということです。また、1000 ~ 2000 など、各数字が多くの読み取り数に対応するように、より大きな間隔を削除する必要がありました。

ベストアンサー1

アッ解決策:

awk -F':' -v RS="@" 'NR>1 && ($5<1101 || $5>1103){ print RS$0 }' myfile.fq

出力:

@ST-E00204:114:HHKTJALXX:4:1104:7101:2012 2:N:0:1
NATTTAAAAATACCCACTATAAAACATAAAATATAACAAAAAAACTAAAAATCATAAAAAATAAAAAAAATCCACTTCACGTCTTTTAACAATTTCGTCATTTTTAACATCCTCAAATAAATTATTCTCATTTTCCATAACTTCCAATTTT
+
!A-A-FJJJJJJ-FJAJFJJJJJFJJAJJJJJJ-F-AJJJJJJ-F-FJJFJJFJFFFFF<-F

詳細:

  • -F':'- フィールド区切り記号:

  • -v RS="@"-@レコード区切り文字と見なされます。

  • ($5<1101 || $5>1103)- 必須項目が基準に合っていることを確認してください。」1101~1103の間の削除

おすすめ記事