Quickstart Guide

Install

To install iGUIDE, simply clone the repository to the desired destination.:

git clone https://github.com/cnobles/iGUIDE.git

Then initiate the install using the install script. If you would like the installed environment to be named something other than ‘iguide’, the new conda environment name can be provided to the install.sh script as provided below.:

cd path/to/iGUIDE
bash install.sh

Or:

cd path/to/iGUIDE
bash install.sh -e {env_name}

Additionally, help information on how to use the install.sh can be accessed by:

bash install.sh -h

Setup a Run

Once the config and sampleInfo files have been configured, a run directory can be created using the command below where {ConfigFile} is the path to your configuration file:

cd path/to/iGUIDE
iguide setup {ConfigFile}

The directory should look like this (RunName is specified in the ConfigFile):

> tree analysis/{RunName}
analysis/{RunName}/
├── config.yml -> {path to ConfigFile}
├── input_data
├── logs
├── output
├── process_data
└── reports

Components within the run directory:

  • config.yml - This is a symbolic link to the config file for the run

  • input_data - Directory where input fastq.gz files can be deposited

  • logs - Directory containing log files from processing steps

  • output - Directory containing output data from the analysis

  • process_data - Directory containing intermediate processing files

  • reports - Directory containing output reports and figures

As a current convention, all processing is done within the analysis directory. The above command will create a file directory under the analysis directory for the run specified in by the config (‘/iGUIDE/analysis/{RunName}’). At the end of this process, iGUIDE will give the user a note to deposit the input sequence files into the /analysis/{RunName}/input_data directory. Copy the fastq.gz files from the sequencing instrument into this directory if you do not have paths to the files specified in the config file.

iGUIDE typically uses each of the sequencing files (R1, R2, I1, and I2) for processing since it is based on a dual barcoding scheme. If I1 and I2 are concatenated into the read names of R1 and R2, it is recommended the you run bcl2fastq ... --create-fastq-for-index-reads on the machine output directory to generate the I1 and I2 files.

As iGUIDE has its own demultiplexing, it is recommend to not use the Illumina machine demultiplexing through input of index sequences in the SampleSheet.csv. If your sequence data has already been demultiplexed though, please see the User Guide for setup instructions.

List Samples in a Run

As long as the config and sampleInfo files are present and in their respective locations, you can get a quick view of what samples are related to the project. Using the iguide list_samples command will produce an overview table on the console or write the table to a file (specified by the output option). Additionally, if a supplemental information file is associated with the run, the data will be combined with the listed table.:

> iguide list_samples configs/simulation.config.yml

Specimen Info for : simulation.

 specimen   replicates       gRNA        nuclease
---------- ------------ --------------- ----------
   iGXA         1            TRAC         Cas9v1
   iGXB         1        TRAC;TRBC;B2M    Cas9v1
   iGXD         1             NA            NA

Processing a Run

Once the input_data directory has the required sequencing files, the run can be processed using the following command:

cd path/to/iGUIDE/
iguide run {ConfigFile}

Snakemake offers a great number of resources for managing the processing through the pipeline. I recommend familiarizing yourself with the utility (https://snakemake.readthedocs.io/en/stable/).

An Example Workflow

To perform a local test of running the iGUIDE informatic pipeline, run the below code after installing. This block first activates your conda environment, ‘iguide’ by default, and then creates a test directory within the analysis directory. The run information is stored in the run specific configuration file (config file). Using the -np flag with the snakemake call will perform a dry-run (won’t actually process anything) and print the commands to the terminal, so you can see what snakemake is about to perform. Then the entirety of processing can start.:

# If conda is not in your path ...

source ${HOME}/miniconda3/etc/profile.d/conda.sh

# Activate iguide environment

conda activate iguide

# After constructing the config file and having reference files (i.e. sampleinfo)
# You can check the samples associated with the run.

iguide list_samples configs/simulation.config.yml

# Create test analysis directory

iguide setup configs/simulation.config.yml

# Process a simulation dataset

iguide run configs/simulation.config.yml -- -np
iguide run configs/simulation.config.yml -- --latency-wait 30

# Processing will complete with several reports, but if additional analyses are required,
# you can re-evaluate a run by its config file. Multiple runs can be evaluated together,
# just include multiple config files.

iguide eval configs/simulation.config.yml \
  -o analysis/simulation/output/iguide.eval.simulation.test.rds \
  -s sampleInfo/simulation.supp.csv

# After evaluation, generate a report in a different format than standard.
# Additionally the evaluation and report generation step can be combined using
# config file(s) as inputs for the 'report' subcommand (using the -c flag instead of -e).

iguide report -e analysis/simulation/output/iguide.eval.simulation.test.rds \
  -o analysis/simulation/reports/report.simulation.pdf \
  -s sampleInfo/simulation.supp.csv \
  -t pdf

# When you are all finished and ready to archive / remove excess files, a minimal structure
# can be achieved with the 'clean' subcommand.

iguide clean configs/simulation.config.yml

# Or you realized you messed up all the input and need to restart

iguide clean configs/simulation.config.yml --remove_proj

# Deactivate the environment

conda deactivate

Reviewing Results

The output reports from a run are deposited under analysis/{RunName}/reports. For more informtion on output files, see User Guide!