首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在三组列表中解析项目,并在读取框架之间提取片段。(即DNA外显子转录)

在三组列表中解析项目,并在读取框架之间提取片段。(即DNA外显子转录)
EN

Stack Overflow用户
提问于 2020-07-31 12:15:22
回答 2查看 122关注 0票数 0

我试图找到一种方法来读取列表列表中的项目,在一组三项中,并找到由3项(密码子)组成的组合来确定片段的开头,并找到另一种组合来查找片段的末尾(停止密码子)。

因此,阅读框架和列表应该由程序读取如下:

清单1: XXXXX-开始-兴趣片段-停止-XXXXXXX

我想要做的只是提取感兴趣的片段,并把它附加到另一个列表中,然后去掉剩下的部分。

这是一个更具体的例子:

起始密码子: ATG

停止密码子:标记

gene_1= 'ACGGACTATTC‘

gene_2= 'GGCCATGAGTAACGCATAGGGCCC

gene_3=GGGCCCATGACGTACTAGGGGCCCATGCATTCATAG

因此,第一个列表不包含任何感兴趣的片段,而第二个列表包含1个,第三个列表包含2个。我试图摆脱这些阅读框架之外的所有内容,并将这些感兴趣的片段附加到一个应该类似于这样的列表中。

frag_int =“AGTAACGCA”、“ACGTAC”、“CATTCA”

到目前为止,这就是我所拥有的:

#这些是str genelist=[]

代码语言:javascript
复制
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= ''
    for i in range(0, len(ORF), 3):
        codon= ORF[i:i+3]
        if codon != 'ATG':
            next(codon)
            if codon == 'ATG':
                mRNA=codon.transcribe()
                if codon == 'TAG':
                    break
    return(mRNA)

mRNAs=[]
for gene in genelist:
    for codon in gene:
        mRNA= transcription(codon)
        mRNAs.append(mRNA)
print(mRNAs)

但是它并没有回报任何东西,我想知道代码--它是不是太多余了--我真的不需要在这里定义一个函数,您知道有什么更好的方法吗?塔兰克斯!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-11 14:04:49

谢谢大家的评论,我去了生物信息学部分,并从@terdon获得了帮助。这是我在问题中描述的最基本的方法,但是请注意,如果有人试图寻找ORFS和转录基因,在python的程序中有一些生物规则需要考虑,并且应该考虑读取和停止密码子,然而,这只是如何开始构建代码的一个例子:另外,请注意,这段代码使用了生物编码。

从Bio.Seq导入Seq从Bio.Seq导入转录

代码语言:javascript
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2020-07-31 12:38:11

与其列出每种氨基酸的清单,不如尝试将基因转化为字符串,并使用regex找到起始和结束位置。基因3不是多顺反子基因而不是外显子基因吗?

就像这样:

代码语言:javascript
复制
import re

gene = 'GGGCCCATGACGTACTAGGGGCCCATGCATTCATAG'

rna = re.findall('ATG(.+?(?=TAG))', gene)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63191655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档