首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nextflow deepTools指纹

Nextflow deepTools指纹
EN

Stack Overflow用户
提问于 2020-12-24 02:45:29
回答 1查看 189关注 0票数 1

我正在尝试使用nextflow管道从deeptool中进行条纹打印(BamCoverage)。当我输入bam文件并运行脚本时。它说我没有索引文件。错误: E::idx_find_and_load无法检索'Kasumi_NCOR1.genome.sorted.bam‘的索引文件E::idx_find_and_load无法检索'Kasumi_NCOR1.genome.sorted.bam’的索引文件'Kasumi_NCOR1.genome.sorted.bam‘似乎没有索引。您必须先对文件进行索引!

代码语言:javascript
复制
process fingerprint_cov {

    publishDir "${params.outdir}/fingerprint_cov", mode: 'copy'

    input:
    set val(sample_id), file(samples) from sorted_bam_sample_control_ch.samples
    set val(sample_id_c), file(controls) from sorted_bam_sample_control_ch.controls

    output:
    set val(sample_id), file("${sample_id}.cov.bedgraph") into sample_cov_ch
    set val(sample_id_c), file("${sample_id_c}.cov.bedgraph") into control_cov_ch

    script:
    """

    bamCoverage -b ${samples} -o ${sample_id}.cov.bedgraph -of bedgraph -bs 1000 -p 10
    bamCoverage -b ${controls} -o ${sample_id_c}.cov.bedgraph -of bedgraph -bs 1000 -p 10

    """
}

sorted_bam_sample_control_ch.samples拥有所有的示例bam文件,而sorted_bam_sample_control_ch.control拥有控制bam文件。如何输入bam.bai文件?我也看到过将bam和bam.bai输出到通道,但是如何处理这些步骤呢?

这是我的样例输入。但当我运行该进程时,它只运行一个示例

代码语言:javascript
复制
[Kasumi_H3K36, [/mnt/Data/cut_and_tag/work/0c/24e138a92a1eb0d906e1e9fad9ba4b/Kasumi_H3K36.genome.sorted.bam, /mnt/Data/cut_and_tag/work/0c/24e138a92a1eb0d906e1e9fad9ba4b/Kasumi_H3K36.genome.sorted.bam.bai]]
[Kasumi_H4K5, [/mnt/Data/cut_and_tag/work/7e/a740e11ce39f2a310b749603c785a4/Kasumi_H4K5.genome.sorted.bam, /mnt/Data/cut_and_tag/work/7e/a740e11ce39f2a310b749603c785a4/Kasumi_H4K5.genome.sorted.bam.bai]]
[Kasumi_NCOR1, [/mnt/Data/cut_and_tag/work/b8/e91ff7c7aea0fa3a0814530ab07972/Kasumi_NCOR1.genome.sorted.bam, /mnt/Data/cut_and_tag/work/b8/e91ff7c7aea0fa3a0814530ab07972/Kasumi_NCOR1.genome.sorted.bam.bai]]
[Kasumi_JMJD1C, [/mnt/Data/cut_and_tag/work/49/99ebe402d2b1953a95968525e258f6/Kasumi_JMJD1C.genome.sorted.bam, /mnt/Data/cut_and_tag/work/49/99ebe402d2b1953a95968525e258f6/Kasumi_JMJD1C.genome.sorted.bam.bai]]

下面是控制输入

代码语言:javascript
复制
[Kasumi_IgG, [/mnt/Data/cut_and_tag/work/0e/1cd7aefd90105205e58fb6ef912aa4/Kasumi_IgG.genome.sorted.bam, /mnt/Data/cut_and_tag/work/0e/1cd7aefd90105205e58fb6ef912aa4/Kasumi_IgG.genome.sorted.bam.bai]]
EN

回答 1

Stack Overflow用户

发布于 2020-12-24 12:22:37

如果索引(.bai)文件不存在,则需要首先对BAM文件进行索引。您可以使用samtools index <bam>来实现这一点。

然后,您需要做的就是以某种方式将这些输入到您的流程中。与在每个输入集/元组中都有一个单独的变量不同,我发现将BAM文件及其索引分组为以下形式的元组是非常有效的:tuple( bam, bai )

那么您的流程可能如下所示:

代码语言:javascript
复制
process fingerprint_cov {

    publishDir "${params.outdir}/fingerprint_cov", mode: 'copy'

    input:
    set val(test_sample_id), file(indexed_test_bam) from sorted_bam_sample_control_ch.samples
    set val(control_sample_id), file(indexed_control_bam) from sorted_bam_sample_control_ch.controls

    output:
    set val(test_sample_id), file("${test_sample_id}.cov.bedgraph") into sample_cov_ch
    set val(control_sample_id), file("${control_sample_id}.cov.bedgraph") into control_cov_ch

    script:
    def test_bam = indexed_test_bam.first()
    def control_bam = indexed_control_bam.first()

    """
    bamCoverage -b "${test_bam}" -o "${sample_id}.cov.bedgraph" -of bedgraph -bs 1000 -p 10
    bamCoverage -b "${control_bam}" -o "${sample_id_c}.cov.bedgraph" -of bedgraph -bs 1000 -p 10
    """
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65429377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档