问题标签 [samtools]

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 投票
2 回答
424 浏览

perl - works on the command line but not in a shell script

I have this line

the dash between the -S and the -b is supposed to indicate to the program that it is from STDIN. I can run it from a perl script on the command line but as soon as I try to move it into a shell script it just creates the file without outputting any data. Any ideas would be greatly appreciated.

0 投票
2 回答
801 浏览

database - Perl:为具有两列的选项卡文件创建索引

我有一个巨大的制表符分隔文件,其中包含多达 2 亿行(通常约为 2000 万)和两列:第一列包含一个最多 40 个字符的 ASCII 字,第二列包含一个整数。

我想做以下步骤:

  1. 按第一列排序
  2. 删除重复行以使所有行唯一
  3. 读出第一列中给定条目的所有行

我有 3 GB 的内存限制(因此将所有数据读入散列将不起作用),无限的硬盘空间并希望在单核上运行脚本。我打算并行运行几个脚本,所以对硬盘的读写操作不应该太高。

考虑到文件的大小,应该如何继续执行我的脚本(在 Perl 中)?

考虑到文件的大小,您建议第一步使用哪种算法?

第 3 步是我认为最复杂的部分。我该如何处理?我不熟悉索引算法。你能推荐一个最适合这个问题的吗?有没有我可以使用的 Perl 模块?

首先将文件转换为二进制文件是否有意义(例如将 SAM 转换为 BAM)?如果是,您是否有任何转换和处理此类文件的说明或算法?

0 投票
1 回答
1318 浏览

debian - 如何在 Debian 中安装 tophat?

我试过搜索和尝试一切。我的系统中安装了 bowtie、samtools 和 libbam-dev。运行./configure时出现此错误:

如何解决此错误并安装 tophat?

0 投票
1 回答
1967 浏览

linux - 在哪里将 samtools 二进制文件复制到某些目录

我在我的 Mac OS X 上安装袖扣,下面是说明:

http://cufflinks.cbcb.umd.edu/tutorial.html

安装 SAM 工具下,我按照以下说明进行操作

  1. 下载 SAM 工具
  2. 将 SAM 工具 tarball 和 cd 解压到 SAM 工具源目录。
  3. 通过在命令行键入 make 来构建 SAM 工具。
  4. 选择您希望将 SAM 工具二进制文件、包含的库 libbam.a 和库头文件复制到其中的目录。一个常见的选择是 /usr/local/。
  5. 将 libbam.a 复制到您在上面选择的文件夹中的 lib/ 目录(例如 /usr/local/lib/)
  6. 在 include/ 目录中创建一个名为“bam”的目录(例如 /usr/local/include/bam)
  7. 将标头(以 .h 结尾的文件)复制到您在上面创建的 include/bam 目录(例如 /usr/local/include/bam)
  8. 将 samtools 二进制文件复制到 PATH 中的某个目录。

我已经完成了前 7 个步骤,但我不确定如何继续最后一步(#8):我应该使用命令:

或进入其他目录?步骤 8中的PATH表示什么?谢谢!

0 投票
1 回答
657 浏览

alignment - 使用 Tablet 对齐查看器的多 BAM 可视化

我一直在使用 Tablet 对齐查看器 ( http://bioinf.scri.ac.uk/tablet/ ) 来可视化我的 bam 对齐文件。因为要比较不同的个体,所以需要在同一个窗口中同时打开 2 个或 3 个 BAM。但平板电脑似乎没有提供多 BAM 查看选项,或者我还没有找到它!

有人知道这个选项在平板电脑中是否可用吗?如果不是,至少对于比较 bam 文件,那么平板电脑对我来说没那么有用。问题是我找到了一些其他的可视化工具,比如 MagicViewer,但平板电脑界面要好得多。

当然,如果有人知道具有多视图选项和漂亮界面的查看器,请告诉我!

0 投票
1 回答
3921 浏览

cygwin - 如何使用 cygwin 编译和使用 samtools

我需要一些帮助来解决这个问题。在 Cygwin(Windows 8 64 位)下编译 Samtools 时出现错误。

我收到以下消息:

管理员@用户 ~/samtools-0.1.19

请告诉我出了什么问题以及我需要如何纠正它。我尝试对 Makefile 进行一些更改,例如将 -D_CURSES_LIB=1 更改为 -D_CURSES_LIB=0 将 "LIBCURSES= -lcurses # -lXCurses" 更改为 "LIBCURSES= # -lcurses # -lXCurse

错误信息仍然存在,请帮助..

0 投票
2 回答
441 浏览

c - 为什么 popen2() 在 write 和 read 调用之间挂起?

我正在尝试将使用集成samtools到 C 程序中。此应用程序以称为 BAM的二进制格式读取数据,例如stdin

(我意识到这是catsamtools.

在 C 程序中,我想将unsigned char字节块写入samtools二进制文件,同时samtools在处理这些字节后捕获标准输出。

因为我不能使用popen()同时写入和读取进程,所以我研究了使用公开可用的实现popen2(),它似乎是为了支持这一点而编写的。

我编写了以下测试代码,它尝试将write()位于同一目录中的 BAM 文件的 4 kB 块字节发送到samtools进程。然后它read()从输出的 s 字节samtools到一个行缓冲区,打印到标准错误:

(对于 的本地副本foo.bam,这里是我用于测试的二进制文件的链接。但任何 BAM 文件都可以用于测试目的。)

编译:

问题是程序在write()调用后挂起:

如果close()在调用infp后立即调用变量write(),则循环在挂起之前再进行一次迭代:

随着close()声明:

通过此更改,如果我在命令行上运行,我会得到一些我希望得到的输出samtools,但如前所述,该过程再次挂起。

如何popen2()将数据以块的形式写入和读取到内部缓冲区?如果这是不可能的,是否有替代方案可以popen2()更好地完成这项任务?

0 投票
1 回答
585 浏览

java - 在具有多个 RG 的 BAM 文件上运行 GATK DepthOfCoverage

我正在尝试对我从两个原始文件合并的一些 BAM 文件运行 GATK DepthOfCoverage(相同的样本在两个通道上测序以最大化读取次数)。我意识到我的合并文件读取了不同的读取组(如每个读取的 RG 字段所反映的那样),并且我的两个原始文件的标题在它们的 @RG 字段中有所不同。

我尝试运行 samtools reheader 在标题中添加一个新的@RG 字段,但是当我合并两个文件时,每个读取组都基于两个 BAM 文件的名称,而不是标题中@RG 的名称两个 BAM 文件。

例如,我的两个起始样本是:

但是当我使用 samtools 合并它们时

生成的 merge.bam 在标头中具有与两者中的一个相同的 @RG 字段,并且每个读取都具有基于它来自的文件的名称的读取名称,如下所示:

阅读 1

RG:Z:27091.pe.markdup

阅读 2

RG:Z:27163.pe.markdup

等等。对于 BAM 中的其余读取

难道我做错了什么?在合并之前我应该​​重新检查每个原始文件吗?或者只是在合并到与 GATK 兼容的东西后重新开始?似乎无论标题中的 @RG 字段在合并之前是什么,合并后的文件将始终根据两个输入文件的名称具有不同 RG 的读取。

我也不确定 GATK DepthOfCoverage 想要作为读取组的输入。它是否需要一个 RG 用于所有读取?在那种情况下,我应该使用与 samtools merge 不同的东西吗?

提前感谢您能给我的任何帮助。

0 投票
1 回答
147 浏览

c - gcc在cygwin中找不到phtread

我正在尝试在 cygwin 上安装 samtools ()。我在这里这里遵循了各种技巧,但看起来我的问题是我无法正常工作pthread。gcc 已安装并正常工作,zlib已安装并正常工作,并且ncurses已安装并正常工作+所有内容都已添加到 $PATH ...但是当我运行时make,它会到达 Makefile 中的以下行:

然后它会抛出一个错误,因为它无法识别 unix 命令 -pthread。现在... pthread 应该是 cygwin 中默认安装的一部分,所以我不明白为什么这不起作用...

任何提示都会很棒!

0 投票
1 回答
52 浏览

installation - Samtools 安装中的警告

我最近通过在 linux 中使用 gcc 和命令“make”编译它来安装 samtools。

除了出现 2 个警告外,一切都很顺利:

(1) bam_reheader.c:36:19: 警告:变量“旧”设置但未使用 [-Wunused-but-set-variable]

(2) kprobaln.c:78:21: 警告:变量 'is_diff' 已设置但未使用 [-Wunused-but-set-variable]

有谁知道这些警告是什么意思,如果它们可能成为运行 samtools 的潜在问题?

谢谢。