- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
家庭作业辅导
我需要编写一个函数,能够从用户处获取包含 DNA 密码子的字符串,例如
'ACATTTGCTTCTGACACAACTGTGTTCACTAGCAACCTCAAAC'
将字符串分成 3 组,然后将每组与字典项进行匹配。但程序必须只打印出键,而不打印出值。
输入:ATTGHIATGTTTTTCTYU
分离:[ATT] [GHI] [ATG] [TTT] [TTC] [TYU]
输出:IMFF
这就是我目前所拥有的
dna_codons = {'I': 'ATT' 'ATC' 'ATA',
'L': 'CTT' 'CTC' 'CTA' 'CTG' 'TTA' 'TTG',
'V': 'GTT' 'GTC' 'GTA' 'GTG',
'F': 'TTT' 'TTC',
'M': 'ATG',
}
def translate(sequence):
n = 3
MyList = [sequence[i:i+n] for i in range(0, len(sequence), n)]
for codon in MyList:
for slc in dna_codons.keys():
if codon == slc:
print slc
print translate(raw_input('type in DNA sequence: '))
最佳答案
您可以使用列表理解和生成器将输入字符串拆分为 block 更轻松地实现目标。
尝试这样的事情:
in_seq = 'ATTGHIATGTTTTTCTYU' # change this to input()
_codes = { # your original dict is incorrect
'ATT': 'I', 'ATC': 'I', 'ATA': 'I',
'CTT': 'L', 'CTC': 'L', 'CTA': 'L', 'CTG': 'L', 'TTA': 'L', 'TTG': 'L',
'GTT': 'V', 'GTC': 'V', 'GTA': 'V', 'GTG': 'V',
'TTT': 'F', 'TTC': 'F',
'ATG': 'M',
}
def split_seq(s, n=2):
""" split string to chunks of size n """
i = 0
while i < len(s):
yield s[i:i + n]
i += n
out_codes = [_codes[z.upper()] for z in split_seq(in_seq, 3) if z.upper() in _codes]
result = ''.join(out_codes)
print(result)
输出:
IMFF
如果您想查看分隔列表,请输入 print(list(split_seq(in_seq, 3)))
:
<小时/>
['ATT', 'GHI', 'ATG', 'TTT', 'TTC', 'TYU']
如果您不想使用生成器,请将其替换为以下普通函数:
def split_seq(s, n=2):
res = []
i = 0
while i < len(s):
res.append(s[i:i + n])
i += n
return res
关于python - 生物信息学:将列表项与字典键匹配并打印匹配键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50513662/
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我在 BioJava 中搜索一种方法以从 PDB 文件中获取 Atom 序列。我看了 BioJava API,但对于 getAtomSequence() 它捕获了氨基酸。我在 BioJava 中尝试了
我有两个字符串 A 和 B,比如说 A = AATCGGATATAG B = CGATA 你们中的一些人可能知道两种类型的对齐: Global Alignment Local Alignment 但我
设计并编写一个可以检测跨膜域的程序,称为TMscanner.py。该程序应调用您编写的其他两个函数: getProteinRegion 应返回十个氨基酸窗口(最初抓取氨基酸 1-10,下次抓取 2-2
生物学家使用字母 A、C、T 和 G 的序列来模拟基因组。基因是基因组的子序列,起始于三联体 ATG 之后,结束于三联体 TAG、TAA 或 TGA 之前。此外,基因串的长度是3的倍数,并且该基因不包
我安装了生物信息学工具Picard 2.20在我的 HPC 集群中对我的基因组对齐文件运行一些指标。 Picard 2.20 需要 JDK 1.8,而我们的集群有 1.6,所以我安装了 JDK 1.8
我是一名优秀的程序员,十分优秀!