从GenBank文件输出基因位置

时间:2015-09-23 15:34:15

标签: skbio

是否可以输出CDS功能的基因位置,或者我是否需要解析位置'或者'补充'我自己?

例如,

seq = Sequence.read(genbank_fp, format='genbank')
for feature in seq.metadata['FEATURES']:
    if feature['type_'] == 'CDS':
        if 'location' in feature:
            print 'location = ', feature['location']
        elif 'complement' in feature:
            print 'location = ', feature['complement']
        else:
            raise ValueError('positions for gene %s not found' % feature['protein_id'])

会输出:

location =< 1..206

location = 687..3158

用于this样本GenBank文件。

BioPython中可以使用此功能(参见this thread),我可以输出已经解析的位置(例如,start = 687,end = 3158)。

谢谢!

1 个答案:

答案 0 :(得分:1)

对于该示例,您可以使用以下代码仅获取该功能的Sequence对象:

# column index in positional metadata
col = feature['index_']
loc = seq.positional_metadata[col]
feature_seq = seq[loc]
# if the feature is on reverse strand
if feature['rc_']:
    feature_seq = feature_seq.reverse_complement()

注意:GenBank解析器是在开发分支中新添加的。