Introduction

nf-core/phaseimpute is a bioinformatics pipeline to phase and impute genetic data.

metromap

The whole pipeline consists of five main steps, each of which can be run separately and independently. Users are not required to run all steps sequentially and can select specific steps based on their needs:

  1. QC: Chromosome Name Check: Ensures compatibility by validating that all expected contigs are present in the variant and alignment files.

  2. Simulation (--simulate): Generates artificial datasets by downsampling high-density data to simulate low-pass genetic information. This enables the comparison of imputation results against a high-quality dataset (truth set). Simulations may include:

    • Low-pass data generation by downsampling BAM or CRAM files with samtools view -s at different depths.
  3. Panel Preparation (--panelprep): Prepares the reference panel through phasing, quality control, variant filtering, and annotation. Key processes include:

    • Normalization of the reference panel to retain essential variants.
    • Phasing of haplotypes in the reference panel using Shapeit5.
    • Chunking of the reference panel into specific regions across chromosomes.
    • Position Extraction for targeted imputation sites.
  4. Imputation (--impute): This is the primary step, where genotypes in the target dataset are imputed using the prepared reference panel. The main steps are:

    • Imputation of the target dataset using tools like Glimpse1, Glimpse2, Stitch, or Quilt.
    • Ligation of imputed chunks to produce a final VCF file per sample, with all chromosomes unified.
  5. Validation (--validate): Assesses imputation accuracy by comparing the imputed dataset to a truth dataset. This step leverages the Glimpse2 concordance process to summarize differences between two VCF files.

For more detailed instructions, please refer to the usage documentation.

Usage

Note

If you are new to Nextflow and nf-core, please refer to this page on how to set-up Nextflow. Make sure to test your setup with -profile test before running the workflow on actual data.

The primary function of this pipeline is to impute a target dataset based on a phased panel. Begin by preparing a samplesheet with your input data, formatted as follows:

samplesheet.csv
sample,file,index
SAMPLE_1X,/path/to/.<bam/cram>,/path/to/.<bai,crai>

Each row represents either a bam or a cram file along with its corresponding index file. Ensure that all input files have consistent file extensions.

For certain tools and steps within the pipeline, you will also need to provide a samplesheet for the reference panel. Here’s an example of what a final samplesheet for a reference panel might look like, covering three chromosomes:

panel.csv
panel,chr,vcf,index
Phase3,1,ALL.chr1.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz,ALL.chr1.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz.csi
Phase3,2,ALL.chr2.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz,ALL.chr2.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz.csi
Phase3,3,ALL.chr3.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz,ALL.chr3.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz.csi

Running the pipeline

Run one of the steps of the pipeline (imputation with glimpse1) using the following command and test profile:

nextflow run nf-core/phaseimpute \
   -profile test, <docker/singularity/.../institute> \
   --outdir <OUTDIR>
Warning

Please provide pipeline parameters via the CLI or Nextflow -params-file option. Custom config files including those provided by the -c Nextflow option can be used to provide any configuration except for parameters; see docs.

For more details and further functionality, please refer to the usage documentation and the parameter documentation.

Pipeline output

To see the results of an example test run with a full size dataset refer to the results tab on the nf-core website pipeline page. For more details on the output files and reports, please refer to the output documentation.

Credits

nf-core/phaseimpute was originally written by Louis Le Nézet & Anabella Trigila.

We thank the following people for their extensive assistance in the development of this pipeline:

  • Saul Pierotti
  • Eugenia Fontecha
  • Matias Romero Victorica
  • Hemanoel Passarelli

Contributions and Support

If you would like to contribute to this pipeline, please see the contributing guidelines. Further development tips can be found in the development documentation.

For further information or help, don’t hesitate to get in touch on the Slack #phaseimpute channel (you can join with this invite).

Citations

If you use nf-core/phaseimpute for your analysis, please cite it using the following doi: 10.5281/zenodo.XXXXXX

An extensive list of references for the tools used by the pipeline, including QUILT, GLIMPSE, and STITCH, can be found in the CITATIONS.md file.

You can cite the nf-core publication as follows:

The nf-core framework for community-curated bioinformatics pipelines.

Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.

Nat Biotechnol. 2020 Feb 13. doi: 10.1038/s41587-020-0439-x.