2017-09-11 2 views
0

스타를 사용하여 정렬하고 싶습니다. 정렬을 위해 프록시 파일을 사용합니다. 프록시 파일이 없으면 별표도없이 실행됩니다. 그래서 내가 정렬 프로세스의 제약 조건을 입력하면 정렬 프로세스가 시작될 수 있습니다. 이 상황을 어떻게 관리 할 수 ​​있습니까?snakemake 코드의 프록시 파일

rule star_index: 
    input: 
     config['references']['transcriptome_fasta'] 
    output: 
      genome=config['references']['starindex_dir'], 
      tp=touch("database.done") 
    shell: 
      'STAR --limitGenomeGenerateRAM 54760833024 --runMode genomeGenerate --genomeDir {output.genome} --genomeFastaFiles {input}' 




rule star_map: 
    input: 
     dt="trim/{sample}/", 
     forward_paired="trim/{sample}/{sample}_forward_paired.fq.gz", 
     reverse_paired="trim/{sample}/{sample}_reverse_paired.fq.gz", 
     forward_unpaired="trim/{sample}/{sample}_forward_unpaired.fq.gz", 
     reverse_unpaired="trim/{sample}/{sample}_reverse_unpaired.fq.gz", 
     t1p="database.done", 
    output: 
     out1="ALIGN/{sample}/Aligned.sortedByCoord.out.bam", 
     out2="ALIGN/{sample}/", 
     # out2=touch("Star.align.done") 
    params: 
     genomedir = config['references']['basepath'], 
     sample="mitico", 
     platform_unit=config['platform'], 
     cente=config['center'] 
    threads: 12 
    log: "ALIGN/log/{params.sample}_star.log" 
    shell: 
     'mkdir -p ALIGN/;STAR --runMode alignReads --genomeDir {params.genomedir} ' 
     r' --outSAMattrRGline ID:{params.sample} SM:{params.sample} PL:{config[platform]} PU:{params.platform_unit} CN:{params.cente} ' 
     '--readFilesIn {input.forward_paired} {input.reverse_paired} \ 
     --readFilesCommand zcat 
     --outWigType wiggle \ 
     --outWigStrand Stranded --runThreadN {threads} --outFileNamePrefix {output.out2} 2> {log} ' 

이전의 모든 기능이 완료된 후에 만 ​​모듈을 시작하는 방법. 내 말은. 색인을 생성 한 다음 내 데이터를 정리 한 다음 정렬을 시작합니다. 나는 finishis 후에 모든 샘플을위한 모든 sstep이 fastqc와 같은 새로운 기능을 시작하기를 바란다. 어떻게 snakemake에서 이것을 디코딩 할 수 있습니까? 인내심을 가져 주셔서 고맙습니다.

답변

1

"star_map"의 필수 입력 사항으로 게놈에 대한 언급이 없으면 규칙이 너무 일찍 시작한다고 생각합니다.

게놈 참조를 "매개 변수"에서 star_map의 "입력"요구 사항으로 이동하십시오. Snakemake는 매개 변수를 기다리지 않고 입력 만 기다립니다. 모든 참조 게놈은 입력으로 나열되어야합니다. 사실, 모든 필수 파일은 입력 요구 사항으로 표시되어야합니다. Param은 대부분 편의를위한 것입니다. 임시 문자열과 사물을 즉시.

파일 전체에 대한 연결이 확실하지 않은데, 이러한 참조 중 일부는 제공하지 않은 YAML 파일에 대한 것이므로 코드가 작동하는지 보증 할 수 없습니다.

Snakemake는 쉘 명령이 어떤 파일을 수정하고 수정하는지 확인하지 않습니다. Snakemake는 "입력"및 "출력"지시문에 설명 된 파일 만 조정할 수 있습니다.

+0

대단히 감사합니다 !! 마지막 문장을 위해 .. snakemake 코드를 인코딩 할 때 규칙을 시작할 때 어떻게 인코딩 할 수 있습니까? 필자는 모든 다른 단계가 실행 된 후에 만 ​​fastqc를 실행하려고한다는 사실 위에 썼습니다 (정렬, 인덱스 정렬 후). –

+0

"시간"은 지정하지 않고 "종속성"을 지정합니다. star_map (bam 파일)의 출력이 fastqc 파일의 입력 요구 사항에 포함되어 있는지 확인하십시오. [내 Snakemake fastq 파일보기] (https://github.com/tboyarski/BCCRC-Snakemake/blob/master/modules/fastqUtil/fastqc). fastqc의 지시문 경로가 여러 개의 와일드 카드를 사용하기 때문에 좀 더 까다 롭습니다. 적어도 아직이 수준의 보편성을 구현하지 않는 것이 좋습니다. – TBoyarski

관련 문제