【发布时间】:2014-05-11 01:01:55
【问题描述】:
我正在努力从蛋白质序列中提取不同氨基酸字母的频率。 我还在研究字母表的不同“简化”表示(即,我想让一些字母等效于 [K]、[R] -> [KR] 等,而不是 20 个字母)。
什么是有效的方法:1)从蛋白质序列中提取不同 k-mers 的频率计数(即,序列中长度为 1、2、3 的字母的重叠计数),最好使用内置的 scikit学习工具(比如countvectorizer之类的)? (我可以自己生成可能的组合并从字符串中计数,但这效率很低,我不想在我的管道中使用 scikit learn 的工具,但这些工具是用于单词的,而不是单个长单词中的多个字母..)
2) 有没有一种有效的方法来获取 k-mer 字母计数/频率,使用 scikit 的 countVectorizer 等,用于不同的字母? (即,将翻译表提供给该方法,并直接获取缩减库的 2-mer 频率,而不是低效地重新计算每个序列的可能组合及其频率)。
订单等的维护也很重要,因为我还需要在最后获取特征“名称”(用于作为特征列的名称附加到输出)。 非常感谢!
【问题讨论】:
-
我知道 CountVectorizer 可用于获取 n-gram,但我想要重叠计数..(并且我需要计数的特征/k-mers 在不同样本之间保持一致)。
-
您能发布到目前为止您尝试过的内容吗?我不确定我是否理解这个问题,没有任何代码很难说。如果您可以过去输入、所需输出和您当前的代码,我可以试一试。
-
我使用 itertools 实现它以获取所有可能的组合,并使用 defaultdict 以重叠方式迭代序列/字符串。
-
也许有人可以提高你代码的效率,而不是从头开始考虑一切......
标签: python scikit-learn bioinformatics biopython feature-extraction