反向补体DNA

Mic*_*ley 5 python bioinformatics dna-sequence

我有这个方程式反向补充python中的DNA:

def complement(s): 
    basecomplement = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A'} 
    letters = list(s) 
    letters = [basecomplement[base] for base in letters] 
    return ''.join(letters)
def revcom(s):
    complement(s[::-1])
print("ACGTAAA")
print(complement("ACGTAAA"[::-1]))
print(revcom("ACGTAAA"))
Run Code Online (Sandbox Code Playgroud)

但是线条:

print(complement("ACGTAAA"[::-1]))
print(revcom("ACGTAAA"))
Run Code Online (Sandbox Code Playgroud)

彼此不相等.只有顶线给出答案.底部只打印"无"

任何帮助为什么这是?

mdm*_*dml 7

你忘记了return陈述revcom.试试这个:

def revcom(s):
    return complement(s[::-1])
Run Code Online (Sandbox Code Playgroud)

如果没有从Python中的函数显式返回值,则函数返回None.


cor*_*nna 5

Python3,包括核苷酸的整个 IUPAC 字母表:

def revcomp(seq):
    return seq.translate(str.maketrans('ACGTacgtRYMKrymkVBHDvbhd', 'TGCAtgcaYRKMyrkmBVDHbvdh'))[::-1]
Run Code Online (Sandbox Code Playgroud)

在 Python2 中:

from string import maketrans

def revcomp(seq):
    return seq.translate(maketrans('ACGTacgtRYMKrymkVBHDvbhd', 'TGCAtgcaYRKMyrkmBVDHbvdh'))[::-1]
Run Code Online (Sandbox Code Playgroud)