Newer
Older
get_targets('somalier') if {'all', 'somalier'}.intersection(MODULES_TO_RUN) else [],
bam = PROJECTS_PATH / PROJECT_NAME / "analysis" / "{sample}" / "bam" / "{sample}.bam",
bam_index = PROJECTS_PATH / PROJECT_NAME / "analysis" / "{sample}" / "bam" / "{sample}.bam.bai",
somalier_tool = config['somalier']['tool'],
sites = config['somalier']['sites'],
ref_genome = config['ref'],
OUT_DIR / "somalier/extract/{sample}.somalier",
"Running somalier extract. Sample: {wildcards.sample}"
outdir = lambda wildcards, output: Path(output[0]).parent,
r"""
{input.somalier_tool} extract \
--sites {input.sites} \
extracted = expand(str(OUT_DIR / "somalier" / "extract" / "{sample}.somalier"),
somalier_tool = config['somalier']['tool'],
output:
out = expand(str(OUT_DIR / "somalier" / "relatedness" / "somalier.{ext}"),
ext=['html', 'groups.tsv', 'pairs.tsv', 'samples.tsv']),
log = OUT_DIR / "somalier" / "relatedness" / "somalier.log",
"Running somalier relate"
outdir = lambda wildcards, output: Path(output['out'][0]).parent,
indir = lambda wildcards, input: Path(input[0]).parent,
echo "Heads up: Somalier is run on all samples in the input directory; Not just the files mentioned in the rule's input."
--infer \
--output-prefix {params.outdir}/somalier \
extracted = expand(str(OUT_DIR / "somalier" / "extract" / "{sample}.somalier"),
somalier_tool = config['somalier']['tool'],
labels_1kg = config['somalier']['labels_1kg'],
somalier_1kg = directory(config['somalier']['somalier_1kg']),
out = expand(str(OUT_DIR / "somalier" / "ancestry" / "somalier.somalier-ancestry.{ext}"),
log = OUT_DIR / "somalier" / "relatedness" / "somalier.log",
"Running somalier ancestry."
outdir = lambda wildcards, output: Path(output['out'][0]).parent,
indir = lambda wildcards, input: Path(input[0]).parent,
echo "Heads up: Somalier is run on all samples in the input directory; Not just the files mentioned in the rule's input."
{input.somalier_tool} ancestry \
--output-prefix {params.outdir}/somalier \
--labels {input.labels_1kg} \
{params.indir}/*.somalier \
> {output.log} 2>&1