标签: samtools

如何缓存读取?

我正在使用python/pysam来分析测序数据.在其教程(pysam - 读取和编写SAM文件的界面)中,命令配合说:

'这种方法对于高吞吐量处理来说太慢了.如果需要使用其配合处理读取,则从读取名称的排序文件开始工作,或者更好的是缓存读取.

你会如何"缓存读取"?

python caching bioinformatics samtools pysam

14
推荐指数
1
解决办法
329
查看次数

如何在GitHub Actions中激活conda环境?

我正在使用 GitHub Actions 设置持续集成。先决条件之一 ( samtools) 是最容易安装的conda。使用已安装软件包的标准方法是激活相应的conda环境。我正在寻找一种激活conda环境的方法。常见的激活方法均失败,详情见下文。我当前的解决方法是添加到由 . 安装的PATH硬编码路径。但如果安装的软件包数量增加,这是不可维护的。这也不是使用随.samtoolscondaconda

细节:

.github/workflows/conda.yml

name: Conda
on: [push]

jobs:
  # label of the job
  tests:
    name: Tests
    # containers must run in Linux based operating systems
    runs-on: ubuntu-latest
    # Docker Hub image that `postgres-job` executes in
    container: node:latest
    # service containers to run with `postgres-job`
    steps:
      - uses: conda-incubator/setup-miniconda@v2
        with:
          miniconda-version: "latest"
          channels: bioconda, conda-forge, defaults
          use-only-tar-bz2: true  # …
Run Code Online (Sandbox Code Playgroud)

environment installation conda samtools github-actions

9
推荐指数
1
解决办法
5640
查看次数

使找不到curses.h

我有一个名为 samtools(1.3 版)的程序,用于操作您从 DNA 测序实验中获得的文件。

下载的程序包含在一个文件夹中。为了设置程序,我在终端(在 ubuntu 计算机上)输入该文件夹。我输入突击队“制造”。

它运行打印它所做的事情,但以错误消息终止:

bam_tview_curses.o bam_tview_curses.c
bam_tview_curses.c:41:20: fatal error: curses.h: No such file or directory
 #include <curses.h>
                    ^
compilation terminated.
make: *** [bam_tview_curses.o] Error 1
Run Code Online (Sandbox Code Playgroud)

我最初的反应(在互联网上搜索后)是没有安装 curses,我尝试使用 sudo 来解决这个问题(显然我的用户不在 sudoers 列表中。

所以我试着看看curses是否已经安装,在查阅互联网后我尝试了

ldconfig -p | grep ncurses
Run Code Online (Sandbox Code Playgroud)

这给出了输出:

libncursesw.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libncursesw.so.5
libncurses.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libncurses.so.5
Run Code Online (Sandbox Code Playgroud)

我认为这是因为安装了诅咒。但这让我不知所措。但这至少应该意味着存在诅咒,对吗?我在使用 ubuntu 或 C 程序方面不是很有经验(很久以前我在 C 方面上了一个较小的课程,虽然我已经使用了相当多的 linux 计算机,但我主要使用终端进行导航)

乐于助人!

curses ubuntu samtools

7
推荐指数
3
解决办法
2万
查看次数

如何在python中将两个子进程的stdout和管道连接到新子进程的stdin

假设我从shell运行以下命令

{ 
samtools view -HS header.sam;           # command1
samtools view input.bam 1:1-50000000;   # command2
} | samtools view -bS - > output.bam    # command3
Run Code Online (Sandbox Code Playgroud)

对于那些不熟悉samtools视图的人(因为这是stackoverflow).这实际上是在创建一个具有新标头的新bam文件.bam文件通常是大型压缩文件,因此即使在某些情况下通过文件也可能非常耗时.一种替代方法是进行command2,然后使用samtools reheader来切换标头.这会两次通过大文件.上面的命令一次性通过bam,这对于较大的bam文件是有用的(即使在压缩时它们也会大于20GB - WGS).

我的问题是如何使用subprocess在python中实现这种类型的命令.

我有以下内容:

fh_bam = open('output.bam', 'w')
params_0 = [ "samtools", "view", "-HS", "header.sam" ]
params_1 = [ "samtools", "view", "input.bam", "1:1-50000000"]
params_2 = [ "samtools", "view", "-bS", "-" ]
sub_0 = subprocess.Popen(params_0, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
sub_1 = subprocess.Popen(params_1, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
### SOMEHOW APPEND sub_1.stdout to sub_0.stdout
sub_2 = subprocess.Popen(params_2, stdin=appended.stdout, stdout=fh_bam)
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏.谢谢.

python subprocess samtools

6
推荐指数
1
解决办法
978
查看次数

在生物信息学中,什么是单身?

我很快意识到,生物信息学不是一个明确定义且易于获取的术语的主题.我的一些结果明显不一致.

我用过samtools view -b -h -f 8 fileName.bam > mateUnmapped.bam几个BAM文件.我的印象是这个命令只提取其伙伴不与草图基因组对齐的读数(也包括标题;输出是BAM格式)

当我samtools 'flagstat'在生成的文件上使用时,我得到一个有趣的结果:"单例"的数量与读取的总数不匹配......这对我来说似乎很奇怪.

我能找到的唯一对比是:

http://seqanswers.com/forums/showthread.php?t=46711

回答本论坛提出的问题的一个人声称,单身人士有时被定义为根本没有伴侣阅读的序列.但是,这仍然无法解释我的结果.弗拉格斯塔特说我的读书中大约有40%是单身,但我觉得我根据我使用的"观察"命令,他们应该都是单身人士.

经验丰富的生物信息学家可以帮助我吗?

bioinformatics samtools

5
推荐指数
1
解决办法
4742
查看次数

samtools - dyld:未加载库:@rpath/libcrypto.1.0.0.dylib

我在其他地方看到过一些类似的问题,但我似乎找不到适合我的解决方案。我正在尝试在 anaconda 上使用 python 运行 samtools。我正在运行 macOS Catalina。这是错误代码

dyld: Library not loaded: @rpath/libcrypto.1.0.0.dylib
  Referenced from: /Users/me/anaconda3/bin/samtools
  Reason: image not found
zsh: abort      samtools
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种努力通过anaconda安装早期版本的openssl,但它仍然显示我安装了openssl版本1.1.1。

感谢您提供有关如何(a)通过 anaconda 安装早期版本的 openssl 或(b)直接 samtools 评估早期版本的不同路径或(c)任何其他解决方案的指导。

python openssl anaconda samtools

5
推荐指数
1
解决办法
2740
查看次数

从字符串中间删除字符

我有一个带有RX:的SAM文件:字段包含12个碱基,中间用-ie 隔开RX:Z:CTGTGC-TCGTAA

我想从此字段中删除连字符,但是我不能简单地从整个文件中删除所有连字符,因为读取的名称包含它们,例如 1713704_EP0004-T

大多数情况下都在尝试,tr,但这只是从文件中删除所有连字符。

tr -d '"-' < sample.fq.unaln.umi.sam > sample.fq.unaln.umi.re.sam
Run Code Online (Sandbox Code Playgroud)

输入是一个大于10,000,000行的大型SAM文件,如下所示:

1902336-103-016_C1D1_1E-T:34    99  chr1    131341  36  146M    =   131376  182 GGACAGGGAGTGTTGACCCTGGGCGGCCCCCTGGAGCCACCTGCCCTGAAAGCCCAGGGCCCGCAACCCCACACACTTTGGGGCTGGTGGAACCTGGTAAAAGCTCACCTCCCACCATGGAGGAGGAGCCCTGGGCCCCTCAGGGG  NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  MC:Z:147M   MD:Z:83T62cD:i:4    cE:f:0  PG:Z:bwa    RG:Z:A  MI:Z:34 NM:i:1  cM:i:3  MQ:i:36 UQ:i:45 AS:i:141    XS:i:136    RX:Z:CTGTGC-TCGTAA
Run Code Online (Sandbox Code Playgroud)

所需的输出(即最后一个字段)

1902336-103-016_C1D1_1E-T:34    99  chr1    131341  36  146M    =   131376  182 GGACAGGGAGTGTTGACCCTGGGCGGCCCCCTGGAGCCACCTGCCCTGAAAGCCCAGGGCCCGCAACCCCACACACTTTGGGGCTGGTGGAACCTGGTAAAAGCTCACCTCCCACCATGGAGGAGGAGCCCTGGGCCCCTCAGGGG  NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  MC:Z:147M   MD:Z:83T62cD:i:4    cE:f:0  PG:Z:bwa    RG:Z:A  MI:Z:34 NM:i:1  cM:i:3  MQ:i:36 UQ:i:45 AS:i:141    XS:i:136    RX:Z:CTGTGCTCGTAA
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

regex sed bioinformatics samtools

2
推荐指数
1
解决办法
137
查看次数

如何从 SRA 下载 BAM 文件?我有 SRA 工具包,但我很困惑

我正在尝试从 GEO/SRA 下载 BAM 格式的数据集,我可以使用它在 RStudio 中进行分析。

我尝试使用这种方法:我下载了 .sra 并将其转换为 .bam

prefetch GSM269238
sam-dump C:\Users\Desktop\sratoolkit.2.10.8-win64\bin\ncbi\SRA\sra\GSM2692389.sra --output-file GSM2692389.bam
Run Code Online (Sandbox Code Playgroud)

然而,在 RStudio 中这不起作用,并返回一个错误,说它无法读取 bam 文件这是我的 R 代码;我正在使用 RSamTools

> bamfiles <- list.files("directory redacted due to privacy", ".bam")
> file.exists(bamfiles)
[1] TRUE
> 
> 
> #---> Define bam files for count step on Rsamtools
> 
> library("Rsamtools")
> bamfiles <- BamFileList(bamfiles, yieldSize=2000000)
> seqinfo(bamfiles)
Error in value[[3L]](cond) : 
  failed to open BamFile: SAM/BAM header missing or empty
  file: 'GSM2692389.bam'
Run Code Online (Sandbox Code Playgroud)

有谁知道如何帮助我将 SRA 数据下载到可读的 .bam 文件中?任何帮助或指导将不胜感激,因为我真的很努力在截止日期前完成这件事。

r bioinformatics samtools bam

0
推荐指数
1
解决办法
6328
查看次数