1

我有一个Genbank包含许多序列的文件。我在 TSV 中有第二个文本文件,其中包含这些序列的名称以及有关它们的一些其他信息,我将其作为 pandas 数据框读取。我使用 .sample 函数从该数据中随机选择一个名称,并为其分配了变量n_name,如下面的代码块所示。

n = df_bp_pos_2.sample(n = 1)
n_value = n.iloc[:2]
n_name = n.iloc[:1]

n_name等于genbank文件中的轨迹名称,并且大小写准确。我正在尝试解析genbank文件并提取具有locus = n_name. 该genbank文件名为all.gb. 我有:

from Bio import SeqIO
for seq_record in SeqIO.parse("all.gb", "genbank"):

但我不太确定下一行或 2 应该是什么,按轨迹解析?有任何想法吗?

4

1 回答 1

0

您还可以使用基因座标记列表,而不仅仅是一个基因座标记。

from Bio import SeqIO

locus_tags = ["b0001", "b0002"] # Example list of locus tags
records = []

for record in SeqIO.parse('all.gb', 'genbank'):
    for feature in record.features:
        tag = feature.qualifiers.get('locus_tag')
        if tag:
            if tag[0] in locus_tags:
                # Here you need to either extract the feature sequence from the record (using the extract method) if you only want the feature dna sequence, or alternatively get the translation for the protein by accession the 'translation' field in qualifiers, or make a translation of the feature on the fly. Afterwards you canappend the resulting record to `records`.

您可以在Biopython Cookbook中找到有关该extract方法和特征限定符的更多信息。

于 2019-11-28T22:21:58.470 回答