20-mer生成所有变化,1到4的不匹配
26日视图(30天)
显示旧的评论
我们考虑一个
公里
。一个的下结论
k
组成的DNA序列,只有{A、C、G、T}。
例如,“ACTGGTCATTTGGGCTGGTA”。我们叫它
内核
。
我们需要生成从内核的数组
所有
独特kmers,每个不同于内核由1到n的位置。
n通常是少数- 5。
我写了一个解决方案,但是它有点慢——大约需要1.7秒20-mer生成所有变化,最多4不匹配了。
更快Matlab解决方案将是非常有用的,没有去实现一个墨西哥人文件的兔子洞。
谢谢!
接受的答案
马特·J
2023年5月23日在3:58
编辑:马特·J
2023年5月23日在第四章第十节
使用
blkColon
从这个FEX下载,
公里=“ACTGGTCATTTGGGCTGGTA”;
k =长度(公里);
n = 4;
抽搐;
v = nchoosek (1: k, n);
清晰的c
[c {1: n}] = ndgrid (“AGCT”);
c =重塑(猫(n + 1 c {:}), [], n);
p =高度(c);
idx = repmat (((1: k) = =排列(v, [2、3、1]), 1), p, 1, 1);
Kmers = repmat(公里,p, 1,身高(v));
Kmers (idx) = repmat (c, 1, 1,大小(idx, 3));
Kmers = blkColon (Kmers [1, k]);
Kmers(所有(公里= = Kmers, 2):) = [];%的结果
toc;
运行时间是0.164970秒。