Skip to content
Snippets Groups Projects
relatedness_ancestry.smk 3.01 KiB
Newer Older
rule somalier_extract:
        bam=PROJECT_PATH / "{sample}" / "bam" / "{sample}.bam",
        bam_index=PROJECT_PATH / "{sample}" / "bam" / "{sample}.bam.bai",
        sites=config["somalier"]["sites"],
        ref_genome=config["ref"],
        protected(OUT_DIR / "project_level_qc" / "somalier" / "extract" / "{sample}.somalier"),
    message:
        "Running somalier extract. Sample: {wildcards.sample}"
    singularity:
        "docker://brentp/somalier:v0.2.12"
        outdir=lambda wildcards, output: Path(output[0]).parent,
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
        r"""
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
            --sites {input.sites} \
            --fasta {input.ref_genome} \
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
            --out-dir {params.outdir} \
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
        """
rule somalier_relate:
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
        extracted=expand(OUT_DIR / "project_level_qc" / "somalier" / "extract" / "{sample}.somalier", sample=SAMPLES),
        ped=PEDIGREE_FPATH,
        out=protected(expand(
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
            OUT_DIR / "project_level_qc" / "somalier" / "relatedness" / "somalier.{ext}",
            ext=["html", "pairs.tsv", "samples.tsv"],
    message:
    singularity:
        "docker://brentp/somalier:v0.2.12"
        log=OUT_DIR / "project_level_qc" / "somalier" / "relatedness" / "somalier.log",
        outdir=lambda wildcards, output: Path(output["out"][0]).parent,
        infiles=lambda wildcards: str(OUT_DIR / "project_level_qc" / "somalier" / "extract" / f"{{{','.join(SAMPLES)}}}.somalier")
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
        r"""
        echo "Heads up: Somalier is run on all samples in the input directory; Not just the files mentioned in the rule's input."
            --ped {input.ped} \
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
            --infer \
            --output-prefix {params.outdir}/somalier \
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
        """
rule somalier_ancestry:
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
        extracted=expand(OUT_DIR / "project_level_qc" / "somalier" / "extract" / "{sample}.somalier", sample=SAMPLES),
        labels_1kg=config["somalier"]["labels_1kg"],
        somalier_1kg=directory(config["somalier"]["somalier_1kg"]),
        out=protected(expand(
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
            OUT_DIR / "project_level_qc" / "somalier" / "ancestry" / "somalier.somalier-ancestry.{ext}",
            ext=["html", "tsv"],
    message:
    singularity:
        "docker://brentp/somalier:v0.2.12"
        log=OUT_DIR / "project_level_qc" / "somalier" / "ancestry" / "somalier.log",
        outdir=lambda wildcards, output: Path(output["out"][0]).parent,
        infiles=lambda wildcards: str(OUT_DIR / "project_level_qc" / "somalier" / "extract" / f"{{{','.join(SAMPLES)}}}.somalier")
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
        r"""
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
            --output-prefix {params.outdir}/somalier \
            --labels {input.labels_1kg} \
            {input.somalier_1kg}/*.somalier ++ \
Manavalan Gajapathy's avatar
Manavalan Gajapathy committed
        """