2016-03-04 1 views
0

Я использую BioPython для циклического открытия открытых кадров чтения в файле GenBank. Более конкретно, я рассматриваю функции, которые аннотируются как «CDS» в GenBank. Так что мой код типа:Как определить кодирующую структуру гена в BioPython

from Bio import SeqIO 
gbk_dat = SeqIO.read(genbank_filepath, 'genbank') 

for feature in gbk_dat.features: 
    if feature.type == 'CDS': 
     # Identify coding frame 

мне было интересно, можно ли определить, какой кадр кодирования гена в сравнении целого генома? То есть. если ген начинается в положении 1 генома, он будет в кодирующем кадре 1, если он начинается с 2, в кадре кодирования 2, если в 5, тогда и в кадре 2 и т. д. (я знаю, что я могу сценарировать это относительно легко но мне нравится полагаться на BioPython, поскольку он имеет тенденцию быть более чистым при совместном использовании кода позже.)

+0

Возможно, чтобы уточнить, мой вопрос связан с определением кадров двух перекрывающихся генов. В некоторых случаях это может быть утомительным, поскольку некоторые кодирующие последовательности имеют сдвиг в рамке внутри них (например, последовательность бактериальных prfA). Таким образом, кадр первого кодона, таким образом, может не соответствовать кадру последнего кодона. Мне было интересно, может ли BioPython позаботиться об этом автоматически? –

+0

Когда вы смотрите на файл genbank - есть строка, которая сообщит вам позицию codon_start. Это то, что вы ищете? – cer

ответ

0

Я не на 100% уверен, что это то, что вам нужно, но в файле genbank, регионе CDS (связанного с геном) будет выглядеть следующим образом:

gene   1012..1356 
       /locus_tag="L_00015" 
CDS    1012..1356 
       /locus_tag="L_00015" 
       /inference="ab initio prediction:Prodigal:2.6" 
       /inference="protein motif:Pfam:PF05136.7" 
       **/codon_start=1** 
       /transl_table=11 
       /product="Phage portal protein, lambda family" 
       /protein_id="C:L_00015" 
       /translation="MIGVFDKLEERVIGARGIIVEPQPLRKNGEMAAELAADIRRLWA 
       EWSVSPDVTGQYTRPVLERLLLRTWLRDGEVFAQMVSGAGNGLERTAECHSGLRRWSR 
       ILFPSPLMNPPD" 

Существует линия (/ codon_start = 1), что говорит вам рамку считывания в гена. Если вы хотите автоматически загвоздки этой информации, вы можете сделать это с помощью следующего кода:

from Bio import SeqIO 
gbk_dat = SeqIO.read(genbank_filepath, 'genbank') 

for feature in gbk_dat.features: 
    if feature.type == 'CDS': 
     print(feature.qualifiers.get('codon_start'))) 

Что касается перекрытия вопроса ... Вы можете разместить файл базы данных GenBank примера?