2017-09-25 147 views
0

我想使用snakemake製作一個生物信息學流水線,並使用Google搜索它並閱讀文檔和其他內容,但是我仍然不知道如何使它工作。Snakemake規則

這是我的一些原始數據文件。

RAWDATA/010_0_bua_1.fq.gz,RAWDATA/010_0_bua_2.fq.gz
RAWDATA/11_15_ap_1.fq.gz,RAWDATA/11_15_ap_2.fq.gz

...他們都是配對的文件。)

這裏是我的align.snakemake

from os.path import join 


STAR_INDEX = "/app/ref/ensembl/human/idx/" 
SAMPLE_DIR = "Rawdata" 
SAMPLES, = glob_wildcards(SAMPLE_DIR + "/{sample}_1.fq.gz") 

R1 = '{sample}_1.fq.gz' 
R2 = '{sample}_2.fq.gz' 


rule alignment: 
    input: 
     r1 = join(SAMPLE_DIR, R1), 
     r2 = join(SAMPLE_DIR, R2), 
    params: 
     STAR_INDEX = STAR_INDEX 
    output: 
     "Align/{sample}.bam" 
    message: 
     "--- mapping STAR---" 
    shell:""" 
     mkdir -p Align/{wildcards.sample} 
     STAR --genomeDir {params.STAR_INDEX} --readFilesCommand zcat --readFilesIn {input.r1} {input.r2} --outFileNamePrefix Align/{wildcards.sample}/log 
""" 

這是它。我通過「snakemake -np -s align.snakemake」運行這個文件,我得到了這個錯誤。

WorkflowError: 目標規則可能不包含通配符。請指定具體文件或沒有通配符的規則。

對不起,我問這個問題,雖然有很多人使用它很好。任何幫助將真正appriciated。對不起我的英語不好。

P.S.我閱讀官方文檔和教程,但仍然不知道。

回答

1

哦,我做到了。這是我對我的問題的回答,有些人可能需要一些幫助。

from os.path import join 


STAR_INDEX = "/app/ref/ensembl/human/idx/" 
SAMPLE_DIR = "Rawdata" 
SAMPLES, = glob_wildcards(SAMPLE_DIR + "/{sample}_1.fq.gz") 

R1 = '{sample}_1.fq.gz' 
R2 = '{sample}_2.fq.gz' 


rule all: 
    input: 
     expand("Align/{sample}/Aligned.toTranscriptome.out.bam", sample=SAMPLES) 

rule alignment: 
    input: 
     r1 = join(SAMPLE_DIR, R1), 
     r2 = join(SAMPLE_DIR, R2) 
    params: 
     STAR_INDEX = STAR_INDEX 
    output: 
     "Align/{sample}/Aligned.toTranscriptome.out.bam" 
    threads: 
     8 
    message: 
     "--- Mapping STAR---" 
    shell:""" 
     mkdir -p Align/{wildcards.sample} 
     STAR --genomeDir {params.STAR_INDEX} --outSAMunmapped Within --outFilterType BySJout --outSAMattributes NH HI AS NM MD --outFilterMultimapNmax 20 --outFilterMismatchNmax 999 --outFilterMismatchNoverLmax 0.04 --alignIntronMin 20 --alignIntronMax 1000000 --alignMatesGapMax 1000000 --alignSJoverhangMin 8 --alignSJDBoverhangMin 1 --sjdbScore 1 --runThreadN {threads} --genomeLoad NoSharedMemory --outSAMtype BAM Unsorted --quantMode TranscriptomeSAM --outSAMheaderHD \@HD VN:1.4 SO:unsorted --readFilesCommand zcat --readFilesIn {input.r1} {input.r2} --outFileNamePrefix Align/{wildcards.sample}/log 
"""