对于有关蛇形制作的新手问题,我感到抱歉:
一般来说: 结合使用两种不同的输入类型来生成工作流的最优雅的方法是什么。
比方说,我有许多具有不同输入类型的样本。类型a)是fastq格式的原始数据。 b)类型已经组装好了。
现在我想要一个为所有类型为a的样本进行组装的管道。接下来,它应该对所有样本(a和b)进行注释。
更多示例: 目前,我有一个配置文件,其中包含“样本”(a型)和“基因组”(b型)条目。
我可以为样本生成规则黑桃,并为样本生成后续规则prokka。 我当然可以为基因组添加第二条规则prokka2,但是如何为两种类型的组合规则prokka?
答案 0 :(得分:0)
Snakemake会自行确定一些样本已被部分处理,并将根据需要将其转发。例如,给定这些输入文件:
touch s1.fq.gz s2.fq.gz s3.bam s4.bam
此工作流程将仅将规则“汇编”应用于s1.fq.gz
和s2.fq.gz
,并将规则annotate
应用于所有四个:
samples= ['s1', 's2', 's3', 's4']
rule all:
input:
expand('{sample}.annotated.bam', sample= samples)
rule assemble:
input:
fq= '{sample}.fq.gz'
output:
bam= '{sample}.bam'
shell:
r"""
my_assembler {input.fq} > {output.bam}
"""
rule annotate:
input:
bam= '{sample}.bam'
output:
bam= '{sample}.annotated.bam'
shell:
r"""
my_annotator {input.bam} > {output.bam}
"""
您可以使用Snakemake -p -n
答案 1 :(得分:0)
这是我的config.yaml的样子。我只是不知道如何用一条规则来处理样品和基因组中的文件(或者找到更好的配置解决方案)
samples:
SRR653893:
fw: SRR653893_1.fastq.gz
rv: SRR653893_2.fastq.gz
genomes:
GCF:
fasta: GCF_000008985.1_ASM898v1_genomic.fna
答案 2 :(得分:0)
@user:1114453
该示例可以正常工作,显然是因为示例3和4的规则“汇编”的输出文件是预先创建的。
我试图对输入数据和结果进行一些结构化。这是我的输入文件夹
.
`-- input
|-- s1.fq.gz
|-- s2.fq.gz
|-- s3.bam
`-- s4.bam
使用snakemak(下面的示例),我尝试为rule assemble
和s1
制作程序集s2
并复制已经组装的rule cp_assemblies
s3
和{{ 1}}到Assembly文件夹。然后从Assembly文件夹运行所有样本的注释。我如何改进代码来处理这种情况?
s4