2 回答
![?](http://img1.sycdn.imooc.com/545863b500014e4602200220-100-100.jpg)
TA贡献1995条经验 获得超2个赞
这是做我在问题中描述的最基本的方法,但是,请注意,如果有人试图找到 ORFS 和转录基因,在使用 python 的程序中,有一些生物学规则需要考虑,阅读和停止应该考虑密码子,但是,这只是一个关于如何开始构建代码的示例:另外,请注意此代码使用 biopython
从 Bio.Seq 导入 Seq 从 Bio.Seq 导入转录
genelist=[]
gene_1= 'A','C','G','G','A','C','T','A','T','T','C'
gene_2= 'G','G','C','C','A','T','G','A','G','T','A','A','C','G','C','A','T','A','G','G','G','C','C','C'
gene_3='G','G','G','C','C','C','A','T','G','A','C','G','T','A','C','T','A','G','G','G','G','C','C','C','A','T','G','C','A','T','T','C','A','T','A','G'
genelist.append(gene_1)
genelist.append(gene_2)
genelist.append(gene_3)
def transcription(ORF):
mRNA= ''
foundStart = False
foundEnd = False
for i in range(0, len(ORF), 3):
codon= "".join(ORF[i:i+3])
if codon == 'ATG' and not foundStart:
foundStart = True
if foundStart and not foundEnd:
cc=transcribe(codon)
mRNA = mRNA + transcribe(codon)
if codon == 'TAG':
foundEnd = True
return(mRNA)
mRNAs=[]
for gene in genelist:
mRNA = transcription(gene)
mRNAs.append(mRNA)
print(mRNAs)
![?](http://img1.sycdn.imooc.com/545862120001766302200220-100-100.jpg)
TA贡献1802条经验 获得超6个赞
与其列出每个氨基酸,不如尝试将基因转换为字符串并使用正则表达式查找起始和结束位点?基因 3 会不会是一个多顺反子基因而不是一个带有外显子的基因?
是这样的:
import re
gene = 'GGGCCCATGACGTACTAGGGGCCCATGCATTCATAG'
rna = re.findall('ATG(.+?(?=TAG))', gene)
添加回答
举报