20-mer生成所有变化,1到4的不匹配

32视图(30天)
我们考虑一个 公里 。一个的下结论 k 组成的DNA序列,只有{A、C、G、T}。
例如,“ACTGGTCATTTGGGCTGGTA”。我们叫它 内核
我们需要生成从内核的数组 所有 独特kmers,每个不同于内核由1到n的位置。
n通常是少数- 5。
我写了一个解决方案,但是它有点慢——大约需要1.7秒20-mer生成所有变化,最多4不匹配了。
更快Matlab解决方案将是非常有用的,没有去实现一个墨西哥人文件的兔子洞。
谢谢!
2的评论
什洛莫Geva
什洛莫Geva 2023年5月23日21
编辑:什洛莫Geva 2023年5月23日21
谢谢你的回应。
成千上万次单独的应用程序。数不清的基因组数据生成应用程序的速度。我不能估计多长时间才掉出来使用。Hpoefully使用它…我试图击败SOTA工具。顺便说一句,柯达和诺基亚未能估计多久之前他们的产品使用。下载188bet金宝搏因为当这是唯一考虑,甚至考虑吗?是一个人的好奇心没有足够的动机?

登录置评。

接受的答案

马特·J
马特·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秒。
3评论
什洛莫Geva
什洛莫Geva 2023年6月12日14:13)
@Matt J 最后,我在c++编写一个墨西哥人文件。大约需要0.02秒。
我试过了,但不可能得到类似的有效的递归实现Matlab因为参数传递的价值似乎慢下来。
总之这是c++函数(忽略pack20mer(),无关紧要的):
/ /函数生成变化与0到4替换给定20 mer远离
无效 generateVariations ( 性病 :: 字符串 &序列, 性病 :: 向量 < uint64_t > &变化, int 更换= 0 , int 位置= 0 ){
如果 (更换> 4 ){
返回 ;
}
字符 originalBase;
变化。 push_back方法 ( pack20mer (序列));
( int 我=位置;我< 20. ;我+ +){
( 字符 基础:{ “一个” , “C” , ‘G’ , “T” }){
如果 (序列[我]! =基地){
originalBase =序列[我]; / /存储原始基础价值
序列[我]=基地; / /修改基地“modifiedSequence”
generateVariations (序列变化,置换+ 1 ,我+ 1 );
序列[我]= originalBase; / /恢复原来的基值
}
}
}
}

登录置评。

更多的答案(0)

下载188bet金宝搏


释放

R2022b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!