Обрезка первых символов строки для соответствия длине второй строки

Я играю с некоторыми файлами fastq, обрезая определенные последовательности из 2-й строки последовательности fastq:

Пример ввода:

@D00733:159:CA65UANXX:8:1214:11297:78554
GTTTTACACAATTATACGGACTTTATCCGCTTTTGTGCCTCTTTAATTTC
+
BBCCCEGGGGGGGFGEGGGDGGGGGGGGGGGGGGFGGGGGGGGGGGGEGG
@D00733:159:CA65UANXX:8:1214:11297:78555
TATGATTAGATGCGGATTGATCTGATCGGGACTGATTTTTTTTAGGGATT
+
BBCCCEGGGGGGGFGEGGGDGGGGGGGGGGGGGGFGGGGGGGGGGGGEGG

Я вырезаю из последовательности подпоследовательность «TTATACGGACTTTATC» и все, что перед ней:

sed 's/^.*TTATACGGACTTTATC//' in.fastq > in2.fastq

Результат выглядит так:

@D00733:159:CA65UANXX:8:1214:11297:78554
CGCTTTTGTGCCTCTTTAATTTC
+
BBCCCEGGGGGGGFGEGGGDGGGGGGGGGGGGGGFGGGGGGGGGGGGEGG
@D00733:159:CA65UANXX:8:1214:11297:78555
TATGATTAGATGCGGATTGATCTGATCGGGACTGATTTTTTTTAGGGATT
+
BBCCCEGGGGGGGFGEGGGDGGGGGGGGGGGGGGFGGGGGGGGGGGGEGG

Какой может быть эффективный способ обрезать начало 4-й строки в записи (качество), чтобы она соответствовала длине 2-й строки (последовательности)? Каждая строка разделена символами \n, а каждая запись состоит из 4 строк (идентификатор, последовательность, +, качество).

Ожидаемый результат:

@D00733:159:CA65UANXX:8:1214:11297:78554
CGCTTTTGTGCCTCTTTAATTTC
+
GGGGGGGFGGGGGGGGGGGGEGG
@D00733:159:CA65UANXX:8:1214:11297:78555
TATGATTAGATGCGGATTGATCTGATCGGGACTGATTTTTTTTAGGGATT
+
BBCCCEGGGGGGGFGEGGGDGGGGGGGGGGGGGGFGGGGGGGGGGGGEGG

Заранее спасибо!


person Mastodon    schedule 10.04.2017    source источник
comment
Для тех из нас, кто не занимается био-физио-фасткатизмом (это я), ваши реплики всегда состоят из четырех строк. Первая группа начинается с @. Вы хотите найти что-то (которое варьируется от одного прогона к другому) в строке 2 любой группы и, если вы это найдете, удалить это вместе со столькими символами, сколько необходимо, с начала 4-й строки, чтобы сделать длину 4-й строки совпадают со 2-й строкой группы. Правильный? Или безнадежно?   -  person Mark Setchell    schedule 11.04.2017
comment
Отличное объяснение проблемы!   -  person Mastodon    schedule 11.04.2017
comment
Превосходно! @EdMorton должен решить это для нас сейчас ;-)   -  person Mark Setchell    schedule 11.04.2017


Ответы (1)


person    schedule
comment
Вау, это потрясающе - person Mastodon; 11.04.2017
comment
Я не хочу быть критичным, теперь, когда вы так любезно и кратко решили это, но вы, кажется, просто ищете 2-ю из каждых 4-х строк, а не вторую строку, начинающуюся с одной, начинающейся с @, так что не будет что пойдет не так, если где-нибудь в файле есть пустая строка или одна строка заголовка? Ничего страшного, если это сложно - я просто спрашиваю. - person Mark Setchell; 11.04.2017
comment
Правильный. Если это может случиться, нам нужно, чтобы OP исправил их пример ввода. - person Ed Morton; 11.04.2017