有一串dna序列存储为一个文件,名为dna.txt。写一个python程序,打印出所
有一串dna序列存储为一个文件,名为dna.txt。写一个python程序,打印出所有“ATG”的序列位置。...
有一串dna序列存储为一个文件,名为dna.txt。写一个python程序,打印出所有“ATG”的序列位置。
展开
2个回答
展开全部
破译的过程其实挺简单 现在我们知道,DNA的信息储存是由3连密码子储存的,总共四种核苷酸,在DNA里是A T C G 在RNA里是A U C G 在转录的时候T和U是对等的,所以我们可以把它也看成是一种核苷酸.它们每三个一组,通过不同的排列组合方式,表达一种氨基酸,所以基因链可以通过读取三连密码子,来进行破译.在最初破译三连密码子的时候,有一个确定的方向,就是肯定一定数量的核苷酸的排列组合,对应的一个氨基酸信息,方向确定之后,接下来的工作就是确定密码子的数量,也就是说,几个碱基对应一个氨基酸,现已知道构成蛋白质的氨基酸共20种,那么四种碱基不可能一一对应,如果是2种碱基排列,则有16种组合,也不够,那么接下来就是3种碱基的排列,总共有64种组合,可以完全覆盖20种氨基酸,如果是4种碱基,则有256种组合,虽然也完全覆盖了20种氨基酸,但是数量太过悬殊,从一切节约的生命原则来看,未免信息量过大,会造成信息储存的传递的负担.所以当初的科学家暂定是3种碱基的组合为一个密码子.说实话,这有些运气的成分.当然,这种运气是被后来的事实验证了的.接下来就是确定各种碱基组合分别对应的是哪种氨基酸,这是个繁琐的工作,其实原理很简单,就是人工合成一段DNA,然后用来表达,看这段DNA序列最后合成的是哪种氨基酸.比如 首先要确定的是密码子“AAA”的信息 那么我们就合成一段序列“AAA AAA AAA AAA AAA AAA AAA”将其翻译成蛋白之后,发现这一段序列由7个赖氨酸组成,那么就可以相信,赖氨酸是由三个A编码的.当然,用64个密码子表示20种氨基酸,肯定会有重复,这就是密码子的简并性,就是会有多个密码子表示一个氨基酸,具体就不细说了.
展开全部
给个思路
上一次用Python的2种方法遍历文件,这次参考了一下Python Promgramming 3rd 里面的代码,用os.path.walk来遍历文件,并且搜索文件里面的内容
search_content.py
import os, syslistonly = Falseskipexts = ['.gif', '.exe', '.pyc', '.o', '.a','.dll','.lib','.pdb','.mdb'] # ignore binary files def visitfile(fname, searchKey): # for each non-dir file global fcount, vcount try: if not listonly: if os.path.splitext(fname)[1] in skipexts: pass elif open(fname).read().find(searchKey) != -1: print'%s has %s' % (fname, searchKey) fcount += 1 except: pass vcount += 1 def visitor(args, directoryName,filesInDirectory): # called for each dir for fname in filesInDirectory: fpath = os.path.join(directoryName, fname) if not os.path.isdir(fpath): visitfile(fpath,args) def searcher(startdir, searchkey): global fcount, vcount fcount = vcount = 0 os.path.walk(startdir, visitor, searchkey) if __name__ == '__main__': root=raw_input("type root directory:") key=raw_input("type key:") searcher(root,key) print 'Found in %d files, visited %d' % (fcount, vcount)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |