问题标签 [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.
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.
database - Perl:为具有两列的选项卡文件创建索引
我有一个巨大的制表符分隔文件,其中包含多达 2 亿行(通常约为 2000 万)和两列:第一列包含一个最多 40 个字符的 ASCII 字,第二列包含一个整数。
我想做以下步骤:
- 按第一列排序
- 删除重复行以使所有行唯一
- 读出第一列中给定条目的所有行
我有 3 GB 的内存限制(因此将所有数据读入散列将不起作用),无限的硬盘空间并希望在单核上运行脚本。我打算并行运行几个脚本,所以对硬盘的读写操作不应该太高。
考虑到文件的大小,应该如何继续执行我的脚本(在 Perl 中)?
考虑到文件的大小,您建议第一步使用哪种算法?
第 3 步是我认为最复杂的部分。我该如何处理?我不熟悉索引算法。你能推荐一个最适合这个问题的吗?有没有我可以使用的 Perl 模块?
首先将文件转换为二进制文件是否有意义(例如将 SAM 转换为 BAM)?如果是,您是否有任何转换和处理此类文件的说明或算法?
debian - 如何在 Debian 中安装 tophat?
我试过搜索和尝试一切。我的系统中安装了 bowtie、samtools 和 libbam-dev。运行./configure
时出现此错误:
如何解决此错误并安装 tophat?
linux - 在哪里将 samtools 二进制文件复制到某些目录
我在我的 Mac OS X 上安装袖扣,下面是说明:
http://cufflinks.cbcb.umd.edu/tutorial.html
在安装 SAM 工具下,我按照以下说明进行操作
- 下载 SAM 工具
- 将 SAM 工具 tarball 和 cd 解压到 SAM 工具源目录。
- 通过在命令行键入 make 来构建 SAM 工具。
- 选择您希望将 SAM 工具二进制文件、包含的库 libbam.a 和库头文件复制到其中的目录。一个常见的选择是 /usr/local/。
- 将 libbam.a 复制到您在上面选择的文件夹中的 lib/ 目录(例如 /usr/local/lib/)
- 在 include/ 目录中创建一个名为“bam”的目录(例如 /usr/local/include/bam)
- 将标头(以 .h 结尾的文件)复制到您在上面创建的 include/bam 目录(例如 /usr/local/include/bam)
- 将 samtools 二进制文件复制到 PATH 中的某个目录。
我已经完成了前 7 个步骤,但我不确定如何继续最后一步(#8):我应该使用命令:
或进入其他目录?步骤 8中的PATH表示什么?谢谢!
alignment - 使用 Tablet 对齐查看器的多 BAM 可视化
我一直在使用 Tablet 对齐查看器 ( http://bioinf.scri.ac.uk/tablet/ ) 来可视化我的 bam 对齐文件。因为要比较不同的个体,所以需要在同一个窗口中同时打开 2 个或 3 个 BAM。但平板电脑似乎没有提供多 BAM 查看选项,或者我还没有找到它!
有人知道这个选项在平板电脑中是否可用吗?如果不是,至少对于比较 bam 文件,那么平板电脑对我来说没那么有用。问题是我找到了一些其他的可视化工具,比如 MagicViewer,但平板电脑界面要好得多。
当然,如果有人知道具有多视图选项和漂亮界面的查看器,请告诉我!
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
错误信息仍然存在,请帮助..
c - 为什么 popen2() 在 write 和 read 调用之间挂起?
我正在尝试将使用集成samtools
到 C 程序中。此应用程序以称为 BAM的二进制格式读取数据,例如:stdin
(我意识到这是cat
对samtools
.
在 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()
更好地完成这项任务?
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 不同的东西吗?
提前感谢您能给我的任何帮助。
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 的潜在问题?
谢谢。