【发布时间】:2020-02-11 04:34:09
【问题描述】:
我有一个很大的 DNA 序列列表 {A,C,T,G}(总共 100,000 个列表,每个列表有 3000 个字符)。我需要成对分析这些列表,从第一个列表开始,然后将其与第二个、第三个、第四个、...、第 100,000 个进行比较。然后移动到第 2 个列表并将其与第 3 个、第 4 个、...、第 100,000 个等进行比较。
在每个成对比较中,我需要找到元素的唯一组合的索引。 例如:
List1 = “A”、“C”、“A”、“G”、“T”、“A”、“C”、“T”、“C”。
List2 = "A"、"G"、"G"、"G"、"C"、"A"、"G"、"G"、"C"。
我想要的输出是:
AA = {1, 6}
CG = {2, 7}
AG = {3}
GG = {4}
TC = {5}
TG = {8}
CC = {9}
我曾尝试使用Rcpp 和for 循环和if/else 语句对此进行编码,但结果非常慢。使用R 函数,如apply, unique, etc. 似乎执行得更慢!我什至尝试使用整数对这些字符进行编码,但没有发现任何改进。
只是想知道是否有人能想到一种更快的方法......
谢谢!
【问题讨论】:
-
您的尝试到底是什么样的。 “相当慢”到底是什么意思?您的速度要求是什么?
-
您能否输入第三个列表 (
List3) 和您想要的输出? -
这将是巨大的输出:3000*100000 !!!!!
标签: r sorting rcpp dna-sequence pairwise