Файл BAM: получение всех прочтений на определенной позиции с помощью pysam

У меня есть BAM-файл с определенной позицией чтения 520817 (как видно из IGV). Однако, когда я использую pysam для получения имени для чтения и связанного с ним нуклеотида в определенной позиции, я не получаю это количество далеко (только около 7000 операций чтения). Я думаю, что я получаю чтение только тогда, когда нуклеотид в этом положении отличается от эталонного генома. Есть ли обходной путь, поэтому я получаю все чтения? Я начинаю с биоинформатики... поэтому, пожалуйста, дайте мне знать, что вам нужно, чтобы помочь мне!

Большое спасибо!

Это мой код:

import pysam
import csv
import sys

#---Get a table with in the first column: read-ID; second column: SNP-location; third column: nucleotide---#
mybam = pysam.AlignmentFile("file.bam", "rb")
w = csv.writer(open("snp.csv", "wb"), delimiter=",")
w.writerow(["Read", "Loc", "Nucl"])
for pileupcolumn in mybam.pileup('chr6', 29911198,29911199):
    print ("\ncoverage at base %s = %s" %
           (pileupcolumn.pos, pileupcolumn.n))
    for pileupread in pileupcolumn.pileups:
        if not pileupread.is_del:
            if pileupcolumn.pos == 29911198:
                w.writerow((pileupread.alignment.query_name, 29911198, pileupread.alignment.query_sequence[pileupread.query_position]))             
                print ('\tbase in read %s = %s' % (pileupread.alignment.query_name, pileupread.alignment.query_sequence[pileupread.query_position]))

mybam.close()

1 ответ

Проверьте опцию IGV View ->Preference->Alignment, некоторые опции "filter xxxx" (дубликаты, вторичные выравнивания, низкое качество) могут изменить вывод.

Обычно pysam не накапливает чтения с флагами BAM_FUNMAP, BAM_FSECONDARY, BAM_FQCFAIL, BAM_FDUP, поэтому убедитесь, что параметры просмотра IGV совпадают с параметрами в pysam.AlignmentFile.pileup. В противном случае они могут генерировать разные результаты.

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