Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Contributors Forks Stargazers Issues MIT License LinkedIn


bcRflow logo

bcRflow

A Nextflow Pipeline for Characterizing B-cell Receptor Repertoires from Non-targeted Transcriptomic Data
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Pipeline Framework
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

  • The bcRflow pipeline (©️ 2023) was developed by the team at the Bioinformatics Core @ the UPMC Children's Hospital of Pittsburgh, with additional support from the University of Pittsburgh Center for Research Computing.

  • The use of MiXCR and IMGT in this pipeline are for strictly non-commerical, academic purposes. In order to obtain a non-commercial license to use MiXCR, please see: https://licensing.milaboratories.com/

  • For inquiries or technical assistance, please open a new Issue.

  • Any reproductions or publications utilizing this pipeline should attribute all proper credit for development to the Development team (see above).

(back to top)

Built With

  • MiXCR (Version 4.6)
  • Nextflow (Version 23.04.2, DSL2 enabled)
  • R (Version 4.3.0)
  • Docker / Docker Hub

(back to top)

Getting Started

bcRflow utilizes nf-core configurations for wide availability to run on multiple institutional computing resources and cloud-based utilities like AWS. For additional information on available configurations and how to use them, see: https://nf-co.re/configs. Users must install Nextflow, Docker or Singularity, and squashfs-tools (for building the Singularity container in a linux environment). All other software dependencies are handled behind the scenes with our precompiled Docker container. Users must generate a unique academic MiXCR license in order to run MiXCR, see https://mixcr.com/mixcr/getting-started/milm/ for details.

Prerequisites

  • Nextflow >= 23.04.2
  • Docker or Singularity
  • squashfs-tools (available on most systems)
  • For HPC jobs, nodes require internet access for MiXCR license validation
    • Offline use: MiXCR requires internet access to periodically validate license key. For running MiXCR in the environment with restricted internet access, please add the following MiXCR IPs to the whitelist in the firewall settings:
      IPv4:
      75.2.96.100
      99.83.215.63
      
      IPv6:
      2600:9000:a403:55e8:f9c1:f443:773b:4192
      2600:9000:a51b:2483:639d:d5a9:270f:6439

Installation

  1. Get a free MiXCR Academic License at https://licensing.milaboratories.com/, and activate the license.
  2. Clone the repo
    git clone https://github.com/Bioinformatics-Core-at-Childrens/bcRflow/tree/main/workflow.git
  3. Install Nextflow: https://www.nextflow.io/docs/latest/getstarted.html
  4. Enter your MiXCR License in nextflow.config
    mixcr_license = 'ENTER YOUR LICENSE';

(back to top)

Usage

  • Set your sample metadata file according to the following structure (comma-separated):

    | SampleID  | R1                            | R2                            | Group     |
    |---------- |------------------------------ |------------------------------ |--------   |
    | Sample1   | /path/to/fastq/Sample1_R1.fq  | /path/to/fastq/Sample1_R2.fq  | Group1    |
    | (...)     | (...)                         | (...)                         | (...)     |
    | SampleN   | /path/to/fastq/SampleN_R1.fq  | /path/to/fastq/SampleN_R2.fq  | GroupN    |

    (see /db/sampleslist.csv for a template)

  • Edit the nextflow.config file:

      input     	  = "/path/to/samplesList.csv" // path to sample metadata file
      project_name  = "project_name" // name your project
      species       = 'hsa' // species should be one of 'hsa' or 'mmu'
      chain         = "IGH" // chain of interest (default of IGH)
      indir         = "/path/to/fastq" // path to FASTQ files
      outdir        = '/path/to/outdir/bcRflow-out' // path to desired output directory
      is_sc         = false // true if 10X 5' GEX samples, false if bulk
      downsample    = false // whether or not to downsample the data to the size of the smallest repertoire
      threshold     = 0.7 // sequence similarity threshold for clonal clustering (impacts downstream analyses)
      imgt          = './db/imgt.202214-2.sv8.json' // don't change this 
      mixcr_license = 'ENTER YOUR LICENSE' // paste your MiXCR license here (the string, not the file path)
      custom_config_base = '../configs' // path to folder containing nf-core institutional configs (typically don't need to change)
  • If using the Slurm workflow, adjust the script for your submission node accordingly, and submit:

      cd ./bcRflow/workflow # enter the bcRflow directory
      nextflow run ./main.nf -profile slurm -resume -work-dir ./work #set the relative paths according to your directory

(back to top)

Pipeline Framework

framework

  • Nextflow Configuration and Submission
  • MiXCR Alignment and Assembly
    • Alignment (bulk or 10X 5' GEX)
    • Partial Assembly (2 rounds)
    • Clonotype Assembly (by CDR3)
    • Contig Assembly (by VDJ)
    • Export IGH clones
  • Downstream Analysis
    • Repertoire Diversity (Immunarch and Vegan)
    • Variable Gene Usage (IGH-V and IGH-V/J pairs)
    • Somatic Hypermutation (MiXCR)
    • Class-Switch Recombination (BrepPhylo and DNApars)
    • Convergent Clustering and Clonal Networks (identify shared clonal sequencees)

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

(back to top)

Acknowledgments

  • Dhivyaa Rajasundaram, PhD
  • Michael Morikone, PhD
  • Fangping Mu, PhD
  • Wan-Yee Tang, PhD
  • Gary Kohanbash, PhD

(back to top)