问题标签 [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 投票
1 回答
1354 浏览

dna-sequence - 需要脚本或软件从配对末端读取中删除未配对读取

我想使用 AMOScmp 来分析 illumina 配对端数据。AMOScmp 需要相同数量的配对文件来构建 .afg 文件。原始 fq 文件已配对。在我通过质量、重复序列和人类 DNA 控制分别传递 fq 文件后,我发现配对的末端 fa 文件具有不同的读取数。我想从配对的末端读取中删除未配对的读取,以获得两个具有相同读取数的 fa 文件。有人有脚本或知道什么软件可以帮助我解决问题吗?

0 投票
1 回答
840 浏览

c - C中与二维字符数组的连接

我正在将文本文件逐行读取到二维数组中。我想连接 char 数组,所以我有一个长 char 数组。我遇到了麻烦,我可以让它与两个 char 数组一起工作,但是当我尝试做很多时,我出错了。

目前 char 数组如下所示:

我想得到这样的东西:

我已经包含了一些我的代码。

0 投票
2 回答
233 浏览

python - 在较大列表中处理可变大小的子列表

我是一名生物工程博士生,试图自学 Python 编程以用于自动化我的部分研究,但我遇到了处理更大列表中的子列表的问题,我似乎无法解决。

基本上,我要做的目标是编写一个小脚本,该脚本将处理一个 CSV 文件,其中包含我正在使用各种 DNA 组装方法构建的质粒序列列表,然后吐出我需要的引物序列订购以构建质粒。

这是我正在处理的场景:

当我想构建一个质粒时,我必须在我的 Excel 电子表格中输入该质粒的完整序列。我必须在称为“Gibson”和“iPCR”的两种 DNA 组装方法之间进行选择。每个“iPCR”组装只需要列表中的一行,所以我已经知道如何处理这些人,因为我只需将我正在尝试构建的质粒的完整序列放入一个单元格中。另一方面,“Gibson”组装要求我必须将完整的 DNA 序列分成更小的块,所以有时我需要 Excel 电子表格中的 2-5 行来完整描述一个质粒。

所以我最终得到了一个看起来像这样的电子表格:

构造......策略......名称

1.....Gibson.....P(OmpC)-cI::P(cI)-LacZ 控制器
1.....Gibson.....P(OmpC)-cI::P(cI )-LacZ 控制器
1......Gibson......P(OmpC)-cI::P(cI)-LacZ 控制器
2......iPCR.......P(cpcG2)-带 K1F 位置的 K1F 控制器。反馈
3 .....Gibson .....P(cpcG2)-K1F 控制器与交换启动子位置
3 .....Gibson .....P(cpcG2)-K1F 控制器与交换启动子位置
4.. ...iPCR.......P(cpcG2)-K1F 控制器,具有更强的 K1F RBS 库

我认为这个长度的列表具有足够的代表性。

所以我遇到的问题是,我希望能够遍历列表并处理吉布森,但我似乎无法让代码以我想要的方式工作。这是我到目前为止编写的代码:

(我知道代码可能看起来很菜鸟 - 除了介绍性 Java,我从未做过任何编程课程。)

这段代码的问题在于,如果我有 n 个试图通过“Gibson”组装构建的“构造”(又名质粒),它将处理前 n-1 个质粒,但不会处理最后一个。然而,我也想不出任何更好的方法来编写这段代码,但我可以看到,对于我试图实现的工作流程,知道如何处理列表中的“n”个事物,但每个“事物“可变数量的行,对我来说真的很方便。

我真的很感谢这里的任何人的帮助!非常感谢!

0 投票
2 回答
330 浏览

awk - 计算传递闭包

我的成对 DNA 序列数据以下列方式显示相似性。

以上是一个示例输入文件,原始文件是几百万行。我希望输出根据行之间的公共元素对重叠的 id 进行聚类,并将它们输出到每个聚类的一行,如下所示

我目前正在尝试使用mclsilix对它们进行集群,但我没有成功运行 silix。但是 mcl 目前正在进行中,我想知道在 awk 或 perl 中是否有其他聪明的方法可以做到这一点。我很感激一些解决方案,谢谢。(这是我的第一篇文章,如果我犯了一些错误,我很抱歉)

只是为了让它更简单......很容易说我的输入是,

我希望输出是,

0 投票
2 回答
105 浏览

python - 遍历一个列表,我必须从第一个项目中获取数据以在最后一个项目中使用

这是我之前提出的问题的后续: 在更大的列表中处理可变大小的子列表

我设法使用 itertools 取出 DNA 片段组,但现在我面临一个不同的问题。

我需要根据这些 DNA 片段组设计引物。通过包括来自不同 DNA 片段的重叠来设计引物。假设我在一个列表中有三个 DNA 片段,片段 A、B 和 C。我需要提取:

  • C的最后20个核苷酸(nt)与A的前40个核苷酸(按顺序)连接,
  • B 的前 20 个 nt 的反向补码 (RC) 按顺序与 A 的最后一个 nt 的 RC 连接,
  • A 的最后 20 nt 与 B 的前 40 nt 连接,
  • C 的前 20 nt 的 RC 与 B 的最后 40 nt 的 RC 连接,
  • C 的最后 20 nt 与 A 的前 40 nt 连接,
  • A 的前 20 nt 的 RC 与 C 的后 40 nt 的 RC 连接。

我似乎无法解决这个问题,而且我不确定从哪里开始最适合我......

到目前为止,我已经编写的代码仅输出“第 1 组”(故意这样,我可以最大限度地减少我正在处理的视觉输出量)。这里是:

任何帮助将不胜感激!

0 投票
3 回答
1100 浏览

python - 如何在python中进行子排序?

非常感谢 SO 社区帮助我解决了我之前遇到的问题。喜欢这里的帮助!

我现在还有另一个问题。我有一个与“构造编号”和“部件编号”相关联的 DNA 序列的平面列表。就目前的情况而言,从我之前的代码中,我将它作为一个 csv 文件打开,读取并导入为字典对象列表。所有内容都已按“构造编号”排序,但我需要按“零件编号”排序。(这有点像在 Excel 中,他们说“首先按然后排序_。”

有人知道如何完成这项工作吗?到目前为止,我写的都是这样的:

到目前为止,输出的一个子集如下,用于可视化我正在使用的数据:

0 投票
2 回答
137 浏览

python - 在列表中的多个元素上重复一个函数

我写了这段代码

它生成一个看起来像这样的列表 -

['TAAAACACCC', 'TCAATTCAAG', 'GGTTTTTGAG', 'CGAGCTTTTT', 'ACTCAAAGAA', 'TCCAAGATAG', 'CGTTTAAAAA', 'TTTAGGGGTG', 'TTAGGCTCAG', 'CATAGAGTTT']

现在下一步是读取列表中每个元素中字母GC(或 can be )的出现次数。CG有没有办法以输出文件看起来像这样的方式遍历列表:

由于文件太大,而且'TAAGATATA'我将获得的段数(列表中的每个单独元素,如在输出文件中。另外,由于我是 python(和编程)的新手,所以我不太擅长使用函数。

0 投票
1 回答
283 浏览

algorithm - 计算两个序列之间相似性的复杂性

用于计算两个序列之间相似性的最著名算法的计算复杂度是多少(如在 DNA 或蛋白质比对/近似字符串匹配中)?

相似性基于:

  1. 使用替换评分矩阵对对齐进行评分(用于蛋白质字母表中 20 个符号或 DNA 字母表中 4 个符号的全局或特定位置替换)

  2. 差距罚球

BowtieBWA短读对齐器中使用的Burrows-Wheeler 变换的线性时间是实际最先进的,还是有解决相同问题的亚线性算法?

[编辑]:考虑应用LSH进行近似匹配,假设参考数据集的预处理/索引将是次线性的

0 投票
3 回答
1699 浏览

python - 正则表达式 python Fasta

感谢您之前的建议,

我有另一个正则表达式问题:

现在我有一个带有这种模式的列表:

以及 Fasta 格式的 DNA 测序文件:

编辑重新格式化的行

我需要在 Fasta 文件(例如,>OCTU7 和 >OCTU33)中找到带有*(例如,7 或 33)的列表中的数字,并仅将列表中存在的 Fasta 序列复制到另一个文件中,这个是我的脚本:

脚本似乎可以工作,但我认为模式不正确,因为创建的文件是空的。

提前感谢您的宝贵建议。

0 投票
1 回答
189 浏览

c++ - C++ 不兼容的类型:计算等位基因频率

这是输入文件的样子:

1-1_Sample 1 GCCCATGGCT 2-1_Sample 1 GAGTGTATGT 3-1_Sample 1 TGTTCTATCT 1-1_Sample 2 GCTTAGCCAT 2-1_Sample 2 TGTAGTCAGT 3-1_Sample 2 GGGAACCAAG 1-1_Sample 3 TGGAAGCGGT 2-1_Sample 3 CGGGAGGAG


背景:我对 C++ 非常陌生,并试图自学用它来补充我的研究生研究。我是遗传学博士候选人,试图模拟不同的进化历史,以及它们如何影响人群中等位基因的频率。

问题:我正在尝试从我从输入文件创建的“dna”数组中提取某些数据部分。例如,在这里我创建了另一个数组“Af”,我试图在其中提取 dna 数组的第一个“细胞”的计数。这样做的目的是让我可以通过将某些细胞组中的计数与整个 dna 阵列中的计数进行比较来计算频率。我不知道该怎么做。我不断收到错误消息:“将'FLOAT'分配给'FLOAT [1] [1]'的类型不兼容”

我花了很多时间在不同的论坛上研究这个,但我似乎无法理解这个错误意味着什么,以及如何实现我想要实现的目标。

所以我正在可视化的 dna 数组是由输入文件制成的,因此有 4 行(A、C、G、T)。然后是 10 列(系列中的每个核苷酸一列)。然后将该“网格”堆叠 3 次(输入文件中列出的每个样本(这里样本表示总体,每个总体有 3 个个体)一个“表”)。因此,我想从这堆网格中提取,例如,第一个单元格(样本 1 中位置 1 的 A 数。然后我想将此数字与所有样本中位置 1 的 A 总数进行比较。对于我正在测试的模型,这个频率将是一个有意义的数字。

问题是,我不知道如何提取 dna 数组的一部分——一旦我弄清楚这个精简的例子,我将把它应用到非常大的输入文件中,并且一次要提取多个单元格。