私は DNA シーケンス ファイル (FASTQ ファイル) に取り組んでいます。
@Read1-良い
NAAAGTGAGATTCGAAATAAATACATCTGTGGCTTCACTTTGAACGGAACGATGTTCTCGTAT
+
1D=DDADEHHHHHIGIJJJJGGFGHIHIJJIJJJJJIIIIGG99BDGHHHEGHJJIHHJJGIH
@Read2- 2 つの悪い場所があります。
NTTCGTAAAGCAGTGAACGAAATACATCTGTGGCTTCACTATGTTCTCGTATGCCGGAACGTC
+
2#1=DFFFFHHHGHGHIJHJIJJJJJJJJJJJJJJJJJGIIHJJJJIIIGGHIIJJIHIIIIJG
@Read3 : 1 つ良い、1 つ早い
NCAGGATCTGCATCGTGAACGATACATCTGTGGCTTCACTAGAACGTGTTCTCGTATGCCGTC
+
B#1:BDDDDFFHDH@AHIGCHIIIIIIIIIIIIIIIIIIIIGIIFHBGGGFGIIIIGGHIIIIG
@Read4 : 1 つ良い、1 つ後
NGCCCTTGACCGCAGGTTAGTGCTAAATACATCTGTGTACTGAACGTCACTATGTTCTCGTAT
+
E#1:A?==@@B>AC<7,2A@ABBBBCBCBCCBCCBBBBBBBB<<?AA?AA)8>ABBAAABABBA
シーケンス (@ で始まる行の下の行) 内で 6 文字の長さのパターン (GAACG) を探したい。
重要なことは、パターンが文字列内の 42 の位置にあることです。
その位置にパターンが見つかった場合は、シーケンスをその前の行とその次の 2 行と共に新しいファイルにコピーします。awk でこれを試すと、すべての index()、match() 関数は最初のオカレンスのみを調べ、それ以上は調べないため、機能しませんでした。そのため、位置 41 の前にパターンが見つかった場合、データはコピーされません。新しいファイル。
基本的に、私のスクリプトは読み取り 1、3、および 4 を返す必要があります...
FASTQ ファイルのパターンをスクリーニングし、パターンが見つかったすべての位置を評価し、パターンが他の位置にも存在するかどうかに関係なく、位置 42 にある配列のみを考慮するにはどうすればよいですか?