Day36-Rosalind练习题学习(2)

2019-08-25  本文已影响0人  腐草为嘤

    又来做Rosalind题目啦~


2.Counting DNA Nucleotides

    这题也比较简单,就是给出一段DNA序列,将它翻译成RNA,本质上也就是将T碱基替换成U碱基。

Question 2
    python里面也有一个特殊的方法replace()可以对字符串中的子字符串进行替换,直接在命令行中执行即可。
>>> str="GATGGAACTTGACTACGTAAATT"
>>> print(str.replace("T","U"))
GAUGGAACUUGACUACGUAAAUU

    这题好像没有看到什么特殊的解法。


3.Complementing a Strand of DNA

    给出一个DNA序列,需要打印出其互补链上的序列,本质上实际上是字符串倒置加上替换的一个操作。

Question 3
    这里需要用到python中一个反向输出字符串的小技巧seq[::-1]能够将seq非常方便地倒置,再加上上面介绍的replace(),可以很轻松地完成需求。
>>> s="AAAACCCGGT"
>>> print(s[::-1].replace("A","M").replace("C","N").replace("T","A").replace("G","C").replace("M","T").replace("N","G"))
ACCGGGTTTT

    我这里替换使用了临时替代“M”“N”,还看到了一种写法是利用大小写的不同,最后用upper()转换大小写,这样会比我少写两个replace(),比较巧妙。

seq = 'AAAACCCGGT'
rev_seq=seq[::-1].replace('C', 'g').replace('G', 'c').replace('T', 'a').replace('A', 't').upper()
print(rev_seq)
上一篇 下一篇

猜你喜欢

热点阅读