Извлечение операций чтения и сопряжения с вариантными позициями из файла BAM и файла vcf с использованием Python (также можно использовать PYSAM и PYSAM, bamnostics)

Я использую Python и библиотеки PYSAM и PyVCF для обработки данных. Привет! Предположим, у меня есть файл bam и файл vcf, содержащий результаты вызова вариантов. Я хочу извлечь чтения и маты, в которых есть варианты. Предположим, что в мате есть вариант чтения и вариант, я хочу извлечь такие чтения и отбросить все те чтения, у которых нет позиций вариантов, или их помощник не имеет варианта (даже если у чтения есть варианты, но у партнера нет вариант). После этого я хочу вычислить количество других шаблонов read_mate, сгенерированных из результатов.

Полный вопрос: мы должны использовать файл VCF для поиска файла bam, если позиция в файле vcf совпадает с чтениями в файлах bam, тогда проверьте, присутствует ли в той же позиции тот же alt, что и у vcf, если оба одинаковые, то считайте это и сохраняйте и двигайтесь дальше. После этого, сделав со всеми данными генов (ген за геном), мы сохраним все эти чтения и сопряжения, имеющие в нем позиции vcf. Чтение и сопряжение, имеющее позиции vcf, будут сохраняться ген за геном в переменной, информация должна быть сохранена следующим образом: изначально выходной файл с именем гена, именем контига: <позиция, основание альт>, <положение, основание альта> и так далее за каждый прочитанный и мат. следующий шаг после сохранения информации о тех чтениях и сопряжениях, имеющих только позиции vcf на них, обратите внимание:(отбросьте те чтения, у которых сопряжения не имеют позиций vcf), следующим шагом является подсчет для поддержки чтения,это означает, что если и чтение, и сопряжение имеют информацию, означающую vcf pos и тот же alt, что и на vcf, то count имеет много других операций чтения, а сопряжения имеют 100% одинаковые позиции и 100% одинаковые alt, и распечатывают его как поддержку чтения.

Следующий шаг: объединить базовые паттерны и шум: допустим, например, у нас есть следующие паттерны pos alt pos alt pos alt post alt pos alt pos alt pos alt(читай, сопрягаемый шаблон): 55 G 58 C 63 G 75 T 87 A 87 T 95 A(чтение, образец совмещения): C 63 G 75 T 87 A 87 T 95 A(чтение, образец сопряжения): 55 G 58 C 63 G 75
(чтение, образец сопряжения): 55 G 58 C 63 G 75 Т 87 А 87 Т 95 А

ТЕПЕРЬ ВСЕ ЭТИ ОБРАЗЦЫ ДОЛЖНЫ БЫТЬ ОБЪЕДИНЕНЫ В ОДИН БОЛЬШОЙ ШАБЛОН: pos alt pos alt pos alt post alt pos alt pos alt pos alt(отфильтрованный шаблон): 55 G 58 C 63 G 75 T 87 A 87 T 95 A

Итог: я хочу получить только эти чтения и сопряжения, имеющие позиции vcf, и создать шаблон для каждого чтения и его помощника, имеющего позиции vcf. И отбросить все остальные без позиции vcf.

У меня возникла проблема с отображением, и я не знаю, как использовать строку сигары для сопоставления моих данных и сравнения последовательности ДНК с ней после сопоставления с положением vcf, чтобы проверить, есть ли у нее база или нет. Любая помощь будет оценена по достоинству.

Я пробовал следующий код:

      import pysam
import vcf
#Main logics:
j=0

for ind,key in gencode_genes.iterrows():
#     print(key[0])
    i=0
#below is signature of bamnostic.fetch() function     
# def fetch(self, contig=None, start=None, stop=None, region=None,tid=None, until_eof=False, multiple_iterators=False,reference=None, end=None):
#     for read in samfile.fetch(key[0],None,None,None,None,True):
    for read in samfile.fetch(key['seqname'],key['start'],key['end'],None,None,True):
        
#         if read's position and mate's position is same than it skips
#         if(read.pos == read.next_reference_start):
#             continue
        b=vcf_df.query('POS>={} and POS<={}'.format(read.reference_start,read.reference_end))
        a=b.sort_values(by = 'POS')
#         if any position in vcf file found which matches with read names start and end position. then it proceeeds
        if(not a.empty):
            if read.read_name not in result.keys():
                
                result[read.read_name]=[]

и так далее, и так далее длинный код, но не желаемый результат. Спасибо

0 ответов

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