0
쌍 샘플 (종양 및 정상)을 사용하여 gatk 재조정을 사용하고 싶습니다. 팬더를 사용하여 데이터를 구문 분석해야합니다. 그것이 내가 부른 것입니다.snakemake 쌍 분석기를 인코딩하는 방법
InputFunctionException in line 17 of /home/maurizio/Desktop/TEST_exome/rules/samfiles.rules:
KeyError: '432/432_433'
Wildcards:
sample=432/432_433
이가 samfiles.rules입니다 :이 오류가
rule gatk_RealignerTargetCreator:
input:
"mapped_reads/merged_samples/{tumor}.sorted.dup.reca.bam",
"mapped_reads/merged_samples/{normal}.sorted.dup.reca.bam",
output:
"mapped_reads/merged_samples/{tumor}/{tumor}_{normal}.realign.intervals"
params:
genome=config['reference']['genome_fasta'],
mills= config['mills'],
ph1_indels= config['know_phy'],
log:
"mapped_reads/merged_samples/logs/{tumor}_{normal}.realign_info.log"
threads: 8
shell:
"gatk -T RealignerTargetCreator -R {params.genome} {params.custom} "
"-nt {threads} "
"-I {wildcard.tumor} -I {wildcard.normal} -known {params.ph1_indels} "
"-o {output} >& {log}"
:
432,433
434,435
나는이 규칙을 썼다
expand("mapped_reads/merged_samples/{sample[1][tumor]}/{sample[1][tumor]}_{sample[1][normal]}.bam", sample=read_table(config["conditions"], ",").iterrows())
이
는 조건 파일입니다 :rule samtools_merge_bam:
"""
Merge bam files for multiple units into one for the given sample.
If the sample has only one unit, files will be copied.
"""
input:
lambda wildcards: expand("mapped_reads/bam/{unit}_sorted.bam",unit=config["samples"][wildcards.sample])
output:
"mapped_reads/merged_samples/{sample}.bam"
benchmark:
"benchmarks/samtools/merge/{sample}.txt"
run:
if len(input) > 1:
shell("/illumina/software/PROG2/samtools-1.3.1/samtools merge {output} {input}")
else:
shell("cp {input} {output} && touch -h {output}")
분명히 "432/432_433"은 설정 파일의 샘플 중에 없습니다. 이것은 오류 메시지가 우리에게 알려주는 것입니다 (구성 변수는 Python dict이며 KeyError를 던집니다). 첫 번째 규칙에는 두 개의 와일드 카드가 있고 samtools_merge_bam 규칙에는 두 개의 와일드 카드가 있습니다. 따라서이 하나의 와일드 카드는 파일 경로의'{종양}/{종양} _ {정상적인} '전체를 일치 시키려고합니다. –
@ JohannesKöster 당신의 도움에 감사드립니다 !! 이 문제를 어떻게 관리 할 수 있습니까? 이 문제를 해결하는 방법은 무엇입니까? 나랑 모범을 보이게 해줄 수 있니? –