我有興趣確定哪些特徵(即基因/ cds)位於基因組的特定位置。例如,哪個基因(如果有的話)包含2,000,000個位置。我知道如何通過for
循環完成此操作,並循環遍歷基因組中的每個功能(下面包含的代碼),但這是我想要做數百萬次隨機化研究的一部分,這將花費比我想要的要長得多。如何確定哪些特徵位於基因組的特定位置
代碼下面包括了什麼,我試圖做更具體的例子:
from Bio import SeqIO
import random
GenomeSeq = SeqIO.read(open("reference_sequence.gbk", "r"), "genbank")
interesting_position = random.randint(0, len(GenomeSeq))
for feature in GenomeSeq.features: # loop each position through whole genome
# In this particular case I'm interested in focusing on cds, but
# in others, I may be interested in other feature types?
if feature.type == "CDS":
if (feature.location._start.position <= interesting_position and
feature.location._end.position >= interesting_position):
try:
print feature.qualifiers['gene']
except KeyError:
print feature
我想過做一個字典,對應於按鍵的基因內的每個位置,功能ID作爲值,作爲查找會比循環快,但它只是好像應該有辦法做到GenomeSeq[interestion_position].qualifiers['gene']
類似'GenomeSeq [interesting_position] .features()',也許? – verbsintransit
@verbsintransit是的,這將是偉大的,但它似乎沒有工作,我得到一個屬性錯誤('str'對象沒有屬性'功能')。這是否有用,或只是你想看到工作的東西? – ded