用Python求DNA互补序列的方法及代码是什么
Admin 2022-08-04 群英技术资讯 438 次浏览
ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT
求其互补DNA序列。
在生物上DNA互补序列简述表达可以表示为:A与T,C与G互补,可以理解为将上述序列中现有的A用T代替,C用G代替,T用A代替,G用C代替,则其互补序列为:
TGACTAGCTAATGCATATCATAAACGATAGTATGTATATATAGCTACGCAAGTA
根据上述表述,我可以利用replace()函数进行替换,将A用T替换,T用A替换,C用G替换,G用C替换,
my_dna = "ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT" # replace A with T sequence1 = my_dna.replace('A', 'T') # replace T with A sequence2 = sequence1.replace('T', 'A') # replace C with G sequence3 = sequence2.replace('C', 'G') # replace G with C sequence4 = sequence3.replace('G', 'C') # print the result of the final replacement print(sequence1) print(sequence2) print(sequence3) print(sequence4)
其输出结果如下:
TCTGTTCGTTTTCGTTTTGTTTTTGCTTTCTTTCTTTTTTTTCGTTGCGTTCTT
ACAGAACGAAAACGAAAAGAAAAAGCAAACAAACAAAAAAAACGAAGCGAACAA
AGAGAAGGAAAAGGAAAAGAAAAAGGAAAGAAAGAAAAAAAAGGAAGGGAAGAA
ACACAACCAAAACCAAAACAAAAACCAAACAAACAAAAAAAACCAACCCAACAA
显然结果是不正确的,我们在sequence1到sequence2中就已经出现错误,误把sequence1中A被替换之后变为T的序列,在sequence2中又被替换掉了,因此我们要转变思路,保持只替换原本的序列,不进行多次替换,避免错误,我们可以尝试每次只在原始序列上进行替换,尝试代码如下:
my_dna = "ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT" # replace A with T sequence = my_dna.replace('A', 'T') # replace T with A sequence2 = my_dna.replace('T', 'A') # replace C with G sequence3 = my_dna.replace('C', 'G') # replace G with C sequence4 = my_dna.replace('G', 'C') print(sequence1) print(sequence2) print(sequence3) print(sequence4)
其输出结果如下:
TCTGTTCGTTTTCGTTTTGTTTTTGCTTTCTTTCTTTTTTTTCGTTGCGTTCTT
ACAGAACGAAAACGAAAAGAAAAAGCAAACAAACAAAAAAAACGAAGCGAACAA
AGTGATGGATTAGGTATAGTATTTGGTATGATAGATATATATGGATGGGTTGAT
ACTCATCCATTACCTATACTATTTCCTATCATACATATATATCCATCCCTTCAT
显然结果也是不正确的,因此,我们要引入中间变量,最后再把它做一个回环,
也就是说引入四个临时字母,然后每个变换2次,最后把最终结果输出,其代码可以为:
my_dna = "ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT" sequence1 = my_dna.replace('A', 'H') sequence2 = sequence1.replace('T', 'J') sequence3 = sequence2.replace('C', 'K') sequence4 = sequence3.replace('G', 'L') sequence5 = sequence4.replace('H', 'T') sequence6 = sequence5.replace('J', 'A') sequence7 = sequence6.replace('K', 'G') sequence8 = sequence7.replace('L', 'C') print(sequence8)
其结果为:
TGACTAGCTAATGCATATCATAAACGATAGTATGTATATATAGCTACGCAAGTA
至此得到了我们想要的结果,但这种方法显然是有些复杂了,我们可以利用字符的大小写来完成我们的工作,也就是利用小写字母为临时变量,最终利用upper()输出大写的结果就行了,其代码和结果如下:
my_dna = "ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT" sequence1 = my_dna.replace('A', 't') print(sequence1) sequence2 = sequence1.replace('T', 'a') print(sequence2) sequence3 = sequence2.replace('C', 'g') print(sequence3) sequence4 = sequence3.replace('G', 'c') print(sequence4) print(sequence4.upper())
其结果为:
tCTGtTCGtTTtCGTtTtGTtTTTGCTtTCtTtCtTtTtTtTCGtTGCGTTCtT
tCaGtaCGtaatCGatatGataaaGCataCtatCtatatataCGtaGCGaaCta
tgaGtagGtaatgGatatGataaaGgatagtatgtatatatagGtaGgGaagta
tgactagctaatgcatatcataaacgatagtatgtatatatagctacgcaagta
TGACTAGCTAATGCATATCATAAACGATAGTATGTATATATAGCTACGCAAGTA
至此我们的互补DNA序列得到了,也许有更好更简洁的代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python可视化神器pyecharts绘制仪表盘,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
什么是模板匹配?模板匹配,就是在一幅图像中寻找另一幅模板图像最匹配(也就是最相似)的部分的技术。
这篇文章主要介绍了Python Django搭建文件下载服务器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
AUC(Area under curve)是机器学习常用的二分类评测手段,直接含义是ROC曲线下的面积。本文将利用Python语言实现计算AUC,感兴趣的可以学习一下
这篇文章主要介绍了python 中defaultdict()对字典进行初始化,一般情况下,在使用字典时,先定义一个空字典(如dict_a = {}),然后往字典中添加元素只需要 dict_a[key] = value即可,本文通过实例代码介绍具体用法,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008