下面的代码给出了所有可能的DNA组合。有没有一种更有效、更清洁的方法来做到这一点?另外,对于任何生物信息学或生物技术程序员,我应该最熟悉哪些模块?
DNA = 'a', 't', 'g', 'c'
lis = []
def all_combos():
for a in A:
for t in A:
for g in A:
for c in A:
lis.append([a, t, g, c])
return lis
print(all_combos())发布于 2017-03-23 21:12:23
我想我在尝试这个的时候被打败了..。只是为了我的统计。
如果你想要的实际上是所有可能的排列(例如,aaag,aaat,aaag,aaac.),您可以以这种方式使用迭代工具:
from itertools import product
print(list(product('atgc', repeat=4)))发布于 2017-03-23 21:13:50
有一个python函数,用于从列表中生成组合:
itertools.combinations
在这篇文章中,一个人试图列出一个列表的所有组合,每次两个:Python - list the combination pair for a function value。
发布于 2017-03-24 10:09:09
作为一个学生的练习,你的代码是可读的,做你想做的事。
我想问题是,为什么你需要所有这些组合?除其他外,实用的生物信息学是文件类型和格式的混乱,您可能会遇到一些输入数据,它们使用的是与您正在使用的不同的字母表。
关于模块,我会提到两个通用的用途。剩下的则取决于你想要完成的具体任务。Biopython是更成熟和更广泛的支持,但代码基础是它显示它的年龄。scikit-bio是代码块上的新一代,具有漂亮的、经过充分测试的代码,但功能较少,对晦涩的文件格式的支持也较少。
https://stackoverflow.com/questions/42986985
复制相似问题