我已将DNA代码(A,T,G,C)
的用户输入转换为RNA代码(A,U,G,C)
。这很容易
RNA_Code=DNA_Code.replace('T','U')
现在我需要做的下一件事就是将RNA_Code转换成它的赞美链。这意味着我需要用U代替A,用A代替A,用C代替C,用G代替C,但同时代替。
如果我说
RNA_Code.replace('A','U')
RNA_Code.replace('U','A')
它将所有的As转换为我们,然后将所有的Us转换为As,但我留下了所有的As。两者都是。
我需要使用AUUUGCGGCAAA
之类的内容并将其转换为UAAACGCCGUUU
。
关于如何完成这项工作的任何想法?(3.3)
答案 0 :(得分:13)
使用翻译表:
RNA_compliment = {
ord('A'): 'U', ord('U'): 'A',
ord('G'): 'C', ord('C'): 'G'}
RNA_Code.translate(RNA_compliment)
str.translate()
method采用从代码点(数字)到替换字符的映射。 ord()
function为我们提供了给定角色的代码点,使您可以轻松构建地图。
演示:
>>> RNA_compliment = {ord('A'): 'U', ord('U'): 'A', ord('G'): 'C', ord('C'): 'G'}
>>> 'AUUUGCGGCAAA'.translate(RNA_compliment)
'UAAACGCCGUUU'
答案 1 :(得分:6)
您可以使用映射字典:
In [1]: dic={"A":"U","U":"A","G":"C","C":"G"}
In [2]: strs="AUUUGCGGCAAA"
In [3]: "".join(dic[x] for x in strs)
Out[3]: 'UAAACGCCGUUU'
答案 2 :(得分:1)
如果您还没有使用它,我建议您尝试Biopython。它具有处理生物数据的各种功能,包括非常酷的Seq
对象。有一个reverse_complement()
函数可以完成您正在尝试的功能,还有一些您可能还没想过的功能。看看它,这是一个真正节省时间。
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_dna
>>> my_dna = Seq("AGTACACTGGT", generic_dna)
>>> my_dna
Seq('AGTACACTGGT', DNAAlphabet())
>>> my_dna.complement()
Seq('TCATGTGACCA', DNAAlphabet())
>>> my_dna.reverse_complement()
Seq('ACCAGTGTACT', DNAAlphabet())
答案 3 :(得分:1)
我有一个简单的解决方案:
# get the sequence from the user:
dna_seq = input("Please enter your sequence here: ")
# make a for loop to read the seq one nucleotide at a time and add each one in a new variable
compliment = ""
for n in dna_seq:
if n == "A":
compliment = compliment + "T"
elif n == "T":
compliment = compliment + "A"
elif n == "G":
compliment = compliment + "C"
elif n == "C":
compliment = compliment + "G"
print(compliment)