Giter Site home page Giter Site logo

arrakis's Introduction

GitHub Actions CI Status GitHub Actions Linting StatusCite with Zenodo nf-test

Nextflow run with conda run with docker run with singularity Launch on Seqera Platform

Introduction

mskcc/arrakis is a bioinformatics pipeline that performs reallignment and Base Quality Score Recalibration on bams.

  1. Reallignment (ABRA)
  2. Base Quality Score Recalibration (GATK_BQSR)
  3. PrintReads (GATK_PrintReads)
  4. Generate Metrics (PICARD_CollectMultipleMetrics)

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.

First, prepare a samplesheet with your input data that looks as follows:

samplesheet.csv:

pairId,tumorBam,normalBam,assay,normalType,bedFile
foo_sample,foo_tumor.rg.md.bam,foo_normal.rg.md.bam,IMPACT505,MATCHED,foo_tumor.foo_normal.fci.bed
bar_sample,bar_tumor.rg.md.bam,bar_normal.rg.md.bam,IMPACT505,MATCHED,bar_tumor.bar_normal.fci.bed

Now, you can run the pipeline using:

nextflow run mskcc/arrakis \
   -profile <docker/singularity/.../institute>,test_juno \
   --input samplesheet.csv \
   --outdir <OUTDIR>

Note

You must include test_juno as your profile for the workflow to run properly

The test_juno parameter file does not need to be modified if you are using grch_37 and do no want to modify the known_sites used by BQSR.

Modifying the config

  • If you would like to add more known sites you can modify the config file here
  • If you would like to use a diffrent genome you need to first add your genome files here and then add your genome key here

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.

Output structure

The output of the pipeline will be organized by the pairId provided. For the example above the output will look like:

├── bar_sample
│   ├── bar_normal.rg.md.abra.bai
│   ├── bar_normal.rg.md.abra.bam
│   ├── bar_normal.rg.md.abra.bam.bai
│   ├── bar_normal.rg.md.abra.printreads.bai
│   ├── bar_normal.rg.md.abra.printreads.bam
│   ├── bar_normal.rg.md.abra.printreads.qmetrics.quality_by_cycle.pdf
│   ├── bar_normal.rg.md.abra.printreads.qmetrics.quality_by_cycle_metrics
│   ├── bar_sample.recal.matrix
│   ├── bar_tumor.rg.md.abra.bai
│   ├── bar_tumor.rg.md.abra.bam
│   ├── bar_tumor.rg.md.abra.bam.bai
│   ├── bar_tumor.rg.md.abra.printreads.bai
│   ├── bar_tumor.rg.md.abra.printreads.bam
│   ├── bar_tumor.rg.md.abra.printreads.qmetrics.quality_by_cycle.pdf
│   ├── bar_tumor.rg.md.abra.printreads.qmetrics.quality_by_cycle_metrics
│   └── versions.yml
├── foo_sample
│   ├── foo_normal.rg.md.abra.bai
│   ├── foo_normal.rg.md.abra.bam
│   ├── foo_normal.rg.md.abra.bam.bai
│   ├── foo_normal.rg.md.abra.printreads.bai
│   ├── foo_normal.rg.md.abra.printreads.bam
│   ├── foo_normal.rg.md.abra.printreads.qmetrics.quality_by_cycle.pdf
│   ├── foo_normal.rg.md.abra.printreads.qmetrics.quality_by_cycle_metrics
│   ├── foo_sample.recal.matrix
│   ├── foo_tumor.rg.md.abra.bai
│   ├── foo_tumor.rg.md.abra.bam
│   ├── foo_tumor.rg.md.abra.bam.bai
│   ├── foo_tumor.rg.md.abra.printreads.bai
│   ├── foo_tumor.rg.md.abra.printreads.bam
│   ├── foo_tumor.rg.md.abra.printreads.qmetrics.quality_by_cycle.pdf
│   ├── foo_tumor.rg.md.abra.printreads.qmetrics.quality_by_cycle_metrics
│   └── versions.yml
└── pipeline_info
    ├── execution_report_2024-03-08_12-44-35.html
    ├── execution_timeline_2024-03-08_12-44-35.html
    ├── execution_trace_2024-03-08_12-44-35.txt
    ├── nf_core_pipeline_software_mqc_versions.yml
    ├── params_2024-03-08_12-44-37.json
    └── pipeline_dag_2024-03-08_12-44-35.html

Credits

mskcc/arrakis was originally written by Nikhil Kumar (@nikhil).

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

Contributions and Support

If you would like to contribute to this pipeline, please see the contributing guidelines.

Citations

  • Lisle E Mose, Charles M Perou, Joel S Parker, Improved indel detection in DNA and RNA via realignment with ABRA2, Bioinformatics, Volume 35, Issue 17, September 2019, Pages 2966–2973, https://doi.org/10.1093/bioinformatics/btz033
  • “Picard Toolkit.” 2019. Broad Institute, GitHub Repository. https://broadinstitute.github.io/picard/; Broad Institute
  • Van der Auwera, G. A., Carneiro, M. O., Hartl, C., Poplin, R., Del Angel, G., Levy-Moonshine, A., Jordan, T., Shakir, K., Roazen, D., Thibault, J., Banks, E., Garimella, K. V., Altshuler, D., Gabriel, S., & DePristo, M. A. (2013). From FastQ data to high confidence variant calls: the Genome Analysis Toolkit best practices pipeline. Current protocols in bioinformatics, 43(1110), 11.10.1–11.10.33. https://doi.org/10.1002/0471250953.bi1110s43

An extensive list of references for the tools used by the pipeline can be found in the CITATIONS.md file.

This pipeline uses code and infrastructure developed and maintained by the nf-core community, reused here under the MIT license.

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.

arrakis's People

Contributors

nikhil avatar soccin avatar

Watchers

 avatar  avatar Neeraj avatar  avatar  avatar

arrakis's Issues

"Bug" in how input bams channel is formed

I am still new to all this nextflow/channel stuff but I think there is a bug here:

#LINE 44 of realignment.nf
ch_indexed_bams = normal_index.out.bam.join(tumor_index.out.bam)

should be

ch_indexed_bams = tumor_index.out.bam.join(normal_index.out.bam)

because in the gatk_bqsr the first input tuple read:

tuple val(meta), path(tumor_bam), path(tumor_bam_index), path(normal_bam), path(normal_bam_index)

tumor first, normal second. I do not think it matters though for this step as those two bams are treated equally but it is confusing.

https://github.com/mskcc/Arrakis/blob/a13d58c4cbd1f332759b04ef1717753f57fc2181/subworkflows/local/reallignment.nf#L44

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.