搜索
查看: 819|回复: 3

ROSALIND上的题(18.开放阅读框架)求完整注释

[复制链接]

1

主题

10

帖子

80

积分

注册会员

Rank: 2

积分
80
发表于 2018-5-16 13:00:52 | 显示全部楼层 |阅读模式

解题思路
  • 开放阅读框[open reading frame,ORF] 是结构基因的正常核苷酸序列,从起始密码子到终止密码子的阅读框可编码完整的多肽链,其间不存在使翻译中断的终止密码子。
  • 在mRNA序列中,每三个连续碱基(即三联“ 密码子”) 编码相应的氨基酸。其中有一个起始密码子AUG和三个终止密码子UAA,UAG,UGA。核糖体从起始密码子开始翻译,沿着mRNA序列合成多肽链并不断延伸,遇到终止密码子时,多肽链的延伸反应终止。由于读写位置不同,ORF在两条链上具有六种可能性。

https://www.jianshu.com/p/3bc5202ab5b4
求大神们给出第18题代码的完整注释,看的实在是模模糊糊的



上一篇:850k甲基化芯片的结果怎么看
下一篇:GATK4运行BaseRecalibrator时报错
回复

使用道具 举报

4

主题

51

帖子

327

积分

中级会员

Rank: 3Rank: 3

积分
327
发表于 2018-5-17 16:14:44 | 显示全部楼层
以为你阶梯思路都这么清楚了,应该是做出来了,结果还看都迷迷糊糊。。凯哥的代码有注释,感觉意思挺明确的??
回复 支持 反对

使用道具 举报

2

主题

8

帖子

139

积分

注册会员

Rank: 2

积分
139
发表于 2018-9-4 16:34:35 | 显示全部楼层
import re
def orf(sequence):
        #rev_seq = sequence[::-1].replace('C','g').replace('G','c').replace('T','a').replace('A','t').upper()
        codonTable = { 'ATA':'I', 'ATC':'I', 'ATT':'I', 'ATG':'M', 'ACA':'T', 'ACC':'T', 'ACG':'T', 'ACT':'T', 'AAC':'N', 'AAT':'N', 'AAA':'K', 'AAG':'K', 'AGC':'S', 'AGT':'S', 'AGA':'R', 'AGG':'R', 'CTA':'L', 'CTC':'L', 'CTG':'L', 'CTT':'L', 'CCA':'P', 'CCC':'P', 'CCG':'P', 'CCT':'P', 'CAC':'H', 'CAT':'H', 'CAA':'Q', 'CAG':'Q', 'CGA':'R', 'CGC':'R', 'CGG':'R', 'CGT':'R', 'GTA':'V', 'GTC':'V', 'GTG':'V', 'GTT':'V', 'GCA':'A', 'GCC':'A', 'GCG':'A', 'GCT':'A', 'GAC':'D', 'GAT':'D', 'GAA':'E', 'GAG':'E', 'GGA':'G', 'GGC':'G', 'GGG':'G', 'GGT':'G', 'TCA':'S', 'TCC':'S', 'TCG':'S', 'TCT':'S', 'TTC':'F', 'TTT':'F', 'TTA':'L', 'TTG':'L', 'TAC':'Y', 'TAT':'Y', 'TAA':'Stop', 'TAG':'Stop', 'TGC':'C', 'TGT':'C', 'TGA':'Stop', 'TGG':'W', }

        start_codon = ['ATG']
        #stop_codons = ['TGA','TAG','TAA']
        start_position = []
        #stop_position = []

        for i in range(len(sequence)):
                codon = sequence[i:i+3]
                if codon in start_codon:
                        start_position.append(i)
        for j in start_position:
                protein = ''
                for k in range(j, len(sequence)-2,3):
                        if codonTable[sequence[k:k+3]] == 'Stop':
                                print(protein)
                                break
                        else:
                                protein += codonTable[sequence[k:k+3]]



#date='AGCCATGTAGCTAACTCAGGTTACATGGGGATGACCCCGCGACTTGGATTAGAGTCTCTTTTGGAATAAGCCTGAATGATCCGAGTAGCATCTCAG'

f = open('rosalind_orf.txt','r')
s = f.readlines()
dateset= ''
for line in s[1:]:
        line=line.rstrip()
        dateset+=line

rev_seq = dateset[::-1].replace('C','g').replace('G','c').replace('T','a').replace('A','t').upper()#proteins = orf(dateset)

#print(dateset)
proteins2 = orf(rev_seq)
proteins = orf(dateset)
回复 支持 反对

使用道具 举报

2

主题

8

帖子

139

积分

注册会员

Rank: 2

积分
139
发表于 2018-9-4 16:35:41 | 显示全部楼层
做出来答案是这个:
MLSGTDERPH
MKDHIKSYNGPVEYLARRA
MHIRHPICMS
MS
MT
MCIGRDPAMLDKLAWSRSPRDMQPVLG
MLDKLAWSRSPRDMQPVLG
MEPVST
MQPVLG
MNVVLP
MVGRRSFRILLRRMICSSIIWHNQYCEWVLLSDRCAT
MICSSIIWHNQYCEWVLLSDRCAT
MGLTIRSLRDIKPGSFSTSGNGGAGVNMNVTGGAGGT
MNVTGGAGGT
M
MRDGTA
MFAID
MLLISIDSEHPMWGV
MWGV
MNRHLYLLTLCPTGVDLNDVDLSQRQLRL
MSSPPSSTCHIHVHTRPTVARRGE
MFTPAPPLPDVENDPGFMSRNDLIVRPIRNTDYAR
MTRVLCRATI
MSRNDLIVRPIRNTDYAR
MPDNARTDHSP
MLEQIIRRSKILNERRPTIAMVGRRSYSLYSVIEPSLKLAACHVETGSMQVYLA
MNVVLP
MVGRRSYSLYSVIEPSLKLAACHVETGSMQVYLA
MSRGDRLHASLSSIAGSLPMHILCRHR
MQVYLA
MHILCRHR
MGCRICIRTVVVSLPGCSRQEVSEGRPHGKREL
MHSYGGGKPAGMFEARSIRRPPPRQTRTLGSSR
MFEARSIRRPPPRQTRTLGSSR
MWSFISPGEHQDWGSRGGISSKRCTVLW
然后把一模一样的蛋白质序列删掉
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树    

GMT+8, 2018-12-12 05:22 , Processed in 0.074784 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.