Добавление заголовка FASTQ обратно к чтению последовательности

grep desc -A 1 /etc/rc.d/init.d/network
# description: Activates/Deactivates all network interfaces configured to \
#               start at boot time.

DHCP и т. д.

3
14.06.2021, 20:37
2 ответа

Я сделаю следующие предположения:

  1. Во всех ваших записях ровно 4 строки. Это не , требуемое форматом fastq, но часто имеет место при чтении коротких -данных.

  2. Ваш штрих-код всегда является последней строкой букв после последней :в каждой 4-й строке, начиная с первой.

Если эти предположения верны, вы можете сделать:

awk -F':' 'NR % 4 == 1 {seq=$NF}
     NR % 4 == 2 { $0=$0 seq}1' R1test.fq > R1test_new.fq

Это похоже на ту же идею, что и ваш код, я просто удалил некоторые ненужные шаги и исправил некоторые проблемы. 1в конце является сокращением awk для «напечатать эту строку».

Ваш код не работал, потому что вы не можете использовать -Fдля установки разделителя полей внутри вашего кода awk, -Fявляется опцией двоичного файла awk, а не функцией awk язык. Чтобы изменить разделитель полей в сценариях awk, вы должны использовать переменную FS(, например.BEGIN{FS=":"}). Далее, даже если бы вам удалось изменить разделитель полей, это было бы неважно, поскольку строка разбивается до выполнения любого кода. Вы можете установить разделитель только в блоке BEGIN{}. Если вы установите его в другом месте,вам также нужно сообщить awk, чтобы он перепарсил строку. И вообще, вы хотели :в качестве разделителя полей, а не ;.

Внимание:

Это, скорее всего, нарушит любую последующую обработку, которую вы хотите выполнить, поскольку длина последовательности не будет соответствовать длине показателей качества phred. Вы действительно уверены, что это хорошая идея?

5
28.07.2021, 11:25

Одним из способов выполнения требований к файлу fasta является использование потокового редактора GNU sed.

Здесь sed просматривает строку, начинающуюся с @, и добавляет к ней следующую строку. Затем к добавленной строке добавляются последние 12 символов строки @.

sed -Ee '
  /^@/N
  s/(.{12})\n.*/&\1/
' R1test.fq > R1test_new.fq
2
28.07.2021, 11:25

Теги

Похожие вопросы