亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解析列表列表中的項目,以三個為一組,并提取閱讀框之間的片段。(又名 DNA 外顯子轉錄)

解析列表列表中的項目,以三個為一組,并提取閱讀框之間的片段。(又名 DNA 外顯子轉錄)

茅侃侃 2023-04-18 15:05:40
我正在嘗試找到一種方法來讀取一組列表中的項目,一組三個,并找到 3 個項目(密碼子)的組合以確定片段的開頭,另一個 3 個項目的組合找到結束一個片段(終止密碼子)。因此,閱讀框架和列表應該由程序像這樣讀?。呵鍐?1:XXXXX-開始-感興趣的片段-停止-XXXXXXX我想做的只是提取感興趣的片段并將其附加到另一個列表中,然后刪除其余部分。這是一個更具體的例子:起始密碼子:ATG終止密碼子:TAGgene_1='ACGGACTATTC'gene_2= 'GGCC ATG AGTAACGCA TAG GGCCCgene_3=GGGCCC ATG ACGTAC標簽GGGCCC ATG CATTCA標簽因此,第一個列表不包含任何感興趣的片段,而第二個列表包含 1,第三個列表包含 2。我試圖擺脫這些閱讀框架之外的所有內容,并將這些感興趣的片段附加到一個應該看起來像東西的列表中像這樣。frag_int = ['AGTAACGCA', 'ACGTAC', 'CATTCA']這是我到目前為止所擁有的:#這些是str基因列表=[]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)但它并沒有真正回饋任何東西,我想知道是不是代碼太冗余了,我真的不需要在這里定義一個函數,你知道更好的方法嗎?謝謝??!
查看完整描述

2 回答

?
拉風的咖菲貓

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)


查看完整回答
反對 回復 2023-04-18
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

與其列出每個氨基酸,不如嘗試將基因轉換為字符串并使用正則表達式查找起始和結束位點?基因 3 會不會是一個多順反子基因而不是一個帶有外顯子的基因?


是這樣的:


import re


gene = 'GGGCCCATGACGTACTAGGGGCCCATGCATTCATAG'


rna = re.findall('ATG(.+?(?=TAG))', gene)


查看完整回答
反對 回復 2023-04-18
  • 2 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號