Почему определенная строка «samtools view» не работает после grep?

Я хочу извлечь список имен чтения, один из которых однозначно сопоставлен, а другой - мультисопоставлен.

Однако после некоторых проб и ошибок я нашел

1-й ряд

      samtools view -@ 6 XXX.sorted.bam | if grep -q XS:i: ; then awk '{print $0}' ;else:;fi | head

всегда ломается так:

      1       28543   1       25M     =       29133   615     CTTCAATGCATTCCACAAATACCTA                                                                                                        GGAGGIGGGIGGGGIIGGIGIGIGG        AS:i:0  XS:i:0  XN:i:0  XM:i:0  XO:i:0  XG:i:0 NM:i:0                                                                                                    MD:Z:25  YS:i:0  YT:Z:CP

или вот так:

      AS:i:-6 XS:i:-6 YS:i:0  YT:Z:CP

(т.е. неполный ряд файлов sam)

Я сомневаюсь, что сам файл bam поврежден, тогда я

      samtools view -@ 6 XXX.sorted.bam| grep CTTCAATGCATTCCACAAATACCTA

но возвращается нормально

      SRR11074254.925964      99      chr1    28543   1       25M     = 28926 408    CTTCAATGCATTCCACAAATACCTA                                                                                                                                                                                                                                                                                                                              GAGGGIIIIIIIIIIIIIIIIIIII        AS:i:0  XS:i:0  XN:i:0  XM:i:0  XO:i:0  XG:i:0 NM:i:0

Есть ли причина вставлять «конец предложения» или какой-то другой персонал?

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

[Измененный вопрос]

Спасибо за добрые ориентиры и пояснения.

Хорошо, я еще раз объясню ситуацию. Поскольку исходный файл тяжелый, и я не мог понять весь процесс, многие инструменты это сделали, поэтому позвольте мне просто объяснить.

Команда «samtools view» принимает файл .bam или .sam и возвращает более 11 полей с \t в качестве разделителя.

Я хотел бы извлечь строки с "XS:i:", так что оба "grep XS:i:" и awk '/XS:i:/' в порядке.

Хотя ожидается, что будет выведена каждая полная строка, появилась строка с полным набором полей.

Из другого испытания я понимаю, что строка не нарушена, мне интересно, это из-за samtools или grep и/или awk.

Возможно ли частичное извлечение слишком длинной строки с помощью grep или awk '/?' ? Благодаря вам всем я понимаю, что grep -q не подходит для моей цели.

0 ответов

Другие вопросы по тегам