问题标签 [dna-sequence]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
25787 浏览

python - 搜索允许在字符串的任何位置出现一个不匹配的字符串

我正在处理长度为 25 的 DNA 序列(参见下面的示例)。我有一个 230,000 的列表,需要在整个基因组中寻找每个序列(弓形虫寄生虫)。我不确定基因组有多大,但比 230,000 个序列长得多。

我需要查找每个 25 个字符的序列,例如 ( AGCCTCCCATGATTGAACAGATCAT)。

基因组被格式化为一个连续的字符串,即 ( CATGGGAGGCTTGCGGAGCCTGAGGGCGGAGCCTGAGGTGGGAGGCTTGCGGAGTGCGGAGCCTGAGCCTGAGGGCGGAGCCTGAGGTGGGAGGCTT....)

我不在乎它在哪里或找到了多少次,只关心它是否存在。
这很简单,我想——

但我也找到了一个在任何位置定义为错误(不匹配)的紧密匹配,但只有一个位置,并在序列中记录该位置。我不确定如何做到这一点。我唯一能想到的是使用通配符并在每个位置使用通配符执行搜索。即,搜索 25 次。

例如,

在第 13 位出现不匹配的势均力敌的比赛。

速度不是什么大问题,因为我只做了 3 次,不过如果速度快就好了。

有一些程序可以做到这一点——查找匹配项和部分匹配项——但我正在寻找一种在这些应用程序中无法发现的部分匹配项。

这是 perl 的类似帖子,尽管它们只是比较序列而不是搜索连续字符串:

相关帖子

0 投票
1 回答
573 浏览

string - 字符串重复子序列和压缩

我想做某种“搜索和替换”算法,如果可能的话,它会以一种有效的方式识别一个字符串的子字符串,它出现了不止一次,并用一个标记替换该子字符串的所有出现。

例如,给定一个字符串“AbcAdAefgAbijkAblmnAbAb”,注意“A”重复出现,所以在第一个过程中减少到“#1bc#1d#1efg#1bijk#1blmn#1b#1b”,其中#_是一个索引模式(我们注意到索引表中的模式),然后注意“#1b”重复出现,因此减少为“#2c#1d#1efg#2ijk#2lmn#2#2”。字符串中不再出现模式,所以我们完成了。

我找到了一些关于“最长公共子序列”和压缩算法的信息,但似乎没有这样做。它们要么用于比较两个字符串,要么用于获得某种存储优化的结果。

另一方面,我的目标是将基因组简化为“单词”而不是“字母”。即,我想看到 2c1c2c 而不是 gatcatcgatc。之后我可以做一些正则表达式来找到像 "#42*#42"; 这样的东西。在 dna 中看到重复出现的括号会很酷。

如果我能在网上找到它,我会跳过自己做的,但我看不到这个问题以前用我能发现的术语回答。对于任何可以指出我正确方向的人,非常感谢。

0 投票
4 回答
627 浏览

algorithm - 在两个非常长的文本序列中查找唯一集的快速算法

我需要比较 X 和 Y 染色体的 DNA 序列,并找到 Y 染色体独有的模式(由大约 50-75 个碱基对组成)。请注意,这些序列部分可以在染色体中重复。这需要快速完成(BLAST 需要 47 天,需要几个小时或更短时间)。有没有特别适合这种比较的算法或程序?同样,速度是这里的关键。

我把它放在 SO 上的原因之一是从特定应用程序领域之外的人那里获得观点,他们可以提出他们在日常使用中用于字符串比较的算法,这可能适用于我们的使用。所以不要害羞!

0 投票
3 回答
1331 浏览

java - 比较多个子串

我正在尝试编写一个基本的 dna 测序仪。在那里,给定两个长度相同的序列,它将输出相同的字符串,最小长度为 3。所以输入

将返回

我不知道如何解决这个问题。我可以比较两个字符串,看看它们是否完全相等。从那里,我可以比较长度为 1 的字符串大小,即 if dfeabccontains abcde。但是,我怎样才能让程序执行所有可能的字符串,最小为 3 个字符?一个问题是对于上述长度为 1 的示例,我还必须执行字符串 bcdef 并进行比较。

0 投票
1 回答
1362 浏览

string - 需要有关 Excel 和 VBA 字符串处理和存储限制的信息 - 以及建议的解决方法

根据这篇微软博客文章对于 MS Office 2010,每个单元格的最大字符串长度为 32k;我也通过测试证实了这一点。问题是我的字符串(DNA 序列)远高于该长度,并且我正在匹配整个 32k+ 序列上的 DNA 子序列,这些子序列可以匹配主序列上的任何位置;这意味着我不能简单地将主序列分解为 32k 块,因为我需要能够将“子字符串序列”与整个“主字符串序列”进行字符串匹配。不清楚的一件事是 VBA 是否支持处理大于 32k 的字符串,如果 VBA 支持超过 32k 的字符串连接,这可能是一种解决方法;这意味着我将“主字符串序列”分成 32k 块,连续到第 N 列,

所以,基本上问题是 MS-Office 2010 仅支持每个单元格长度不超过 32k 的字符串,而且我的字符串比需要以整个形式处理的字符串要大得多,以便字符串匹配工作。

0 投票
2 回答
1217 浏览

javascript - 多序列比对

我知道这可能看起来有点奇怪,但我想知道是否有人见过一些用于多序列对齐问题的 javascript 代码。如果不是(我想),一些易于移植的代码(即我不需要厨房水槽)也可以。请记住,我不会对齐超过 4-5 个长度小于 100-200 个符号的序列。

注意:我知道 javascript 并不是这类事情的最佳选择。相信我,我必须用 javascript 来做这件事是有充分理由的。

0 投票
1 回答
4330 浏览

perl - 从 DNA 到 RNA 并使用 Perl 获取蛋白质

我正在研究一个读取 DNA 并找到其 RNA 的项目(我必须在 Perl 中实现它,但我不擅长它)。将该 RNA 分成三联体,以获得它的等效蛋白质名称。我将解释步骤:

1)将以下DNA转录为RNA,然后利用遗传密码将其翻译为氨基酸序列

例子:

2) 要转录 DNA,首先将每个 DNA 替换为其对应物(即,G 替换 C,C 替换 G,T 替换 A,A 替换 T):

接下来,请记住胸腺嘧啶 (T) 碱基变成了尿嘧啶 (U)。因此我们的序列变为:

使用遗传密码就是这样

然后在遗传密码表中查找每个三元组(密码子)。所以AGU变成了丝氨酸,我们可以写成Ser,或者只是S。AUU变成异亮氨酸(Ile),我们写成I。这样继续下去,我们得到:

我将给出蛋白质表:

在此处输入图像描述

那么如何在 Perl 中编写该代码呢?我将编辑我的问题并编写我所做的代码。

0 投票
6 回答
4216 浏览

matlab - 如何绘制 DNA 序列的基因图,例如 ATGCCGCTGCGC?

鉴于病毒的碱基对序列为 2k 碱基对,我需要根据病毒的 DNA 序列生成随机游走。该序列看起来像“ATGCGTCGTAACGT”。路径应向右转 A,向左转 T,向上转 G,向下转 C。为此,我如何使用 Matlab、Mathematica 或 SPSS?

0 投票
2 回答
688 浏览

c - 76 个字符长的字符串的单义哈希函数

这是我的问题(我正在用 C 编程):

我有一些包含 DNA 序列的巨大文本文件(每个文件大约有 6500 万行,大小约为 4~5 GB)。在这些文件中有很多重复项(还不知道有多少,但应该有数百万个),我想在输出中返回一个只有不同值的文件。每个字符串都有一个相关的质量值,所以如果我有 5 个具有不同质量值的相等字符串,我将保留最好的一个并丢弃其他 4 个。

尽可能减少内存需求并提高速度效率是至关重要的。我的想法是使用哈希函数创建一个 JudyHS 数组,以便将字符串 DNA 序列(长 76 个字母,有 7 个可能的字符)转换为整数,以减少内存使用量(4 或 8 个字节,而不是 76 个字节数以百万计的条目应该是一个相当大的成就)。这样我就可以使用整数作为索引并只存储该索引的最佳质量值。问题是我找不到一个 UNIVOCALLY 定义这么长的字符串并产生一个可以存储在整数甚至 long long 内的值的哈希函数!

我对哈希函数的第一个想法类似于 Java 中的默认字符串哈希函数:s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[ n-1],但我可以获得最大值 8,52*10^59.. 太大了。做同样的事情并将其存储在双重中怎么样?计算会变得慢很多吗?请注意,我想要一种统一定义字符串的方法,避免冲突(或者至少它们应该非常罕见,因为我必须在每次冲突时访问磁盘,这是一个相当昂贵的操作......)

0 投票
1 回答
134 浏览

c - Need help reading in from information from a file

So I have chains of DNA letters (A,G,T,C) in linked list, and am supposed to read in from a file that looks like this:

where the single letters is what you get from the 3 a,t,g,c combination. I figured out how to start where I need to start (at the AGT), but can't formulate how to read the string and compare with the file to see what matches. This is what I have so far: