This workflow performs various analyses of illumina paired-end RNA-Sequencing data:
- Quality control of fastq reads with FASTQC
- QC metrics integrated into one final QC report with multiQC
- Differential expression analysis with Kallisto at the gene level (DESeq2) and transcript level (Sleuth)
- Variant calling with freebayes, and an Fst and Population branch statistic (PBS) analysis, both in windows and at the gene-level (Scikit-allel).
- Various summary statistics are calculated (Wattersons Theta, Sequence Diversity etc)
- Differential SNP testing with the R package kissDE, which accounts for allele-specific expression.
- Gene Set Enrichment analyses and Venn diagrams.
- Allele counts at pre-specified loci of choice.
- Anopheles gambiae s.l - Analysis of Ancestry Informative Markers (AIMs) to determine relative ancestry of An.gambiae/coluzzii/arabiensis.
- Anopheles gambiae s.l - Reports if DE genes are found underneath known selective sweep signals in the Ag1000g.
- Anopheles gambiae s.l - Determines Karyotype of chromosome 2 inversions using compkaryo - GH
The workflow is generalised, and will function with any trimmed Illumina paired-end RNA-sequencing. However, certain modules, such as the AIMs analysis, are only appropriate for specific species. These can be activated in the configuration file (config.yaml). The workflow works with pooled samples, or diploid or haploid individuals.
The workflow is still in construction, and not yet ready for release. If you have any feedback on how the workflow may be improved, please get in touch, or feel free to fork the github repo and create a pull request for any additional features you would like to implement. If you are using the workflow and would like to give feedback or troubleshoot, consider joining the discord server here
- Sanjay Curtis Nagi (@sanjaynagi) - [email protected]
If you use this workflow in a paper, don't forget to give credits to the author by citing the URL of this (original) repository and, if available, its DOI (see above).
- Create a new github repository using this workflow as a template.
- Clone the newly created repository to your local system, into the place where you want to perform the data analysis.
- As the workflow contains submodules (compkaryo & mpileup2readcounts),
git clone --recursive
should be used to clone the repo.
Configure the workflow according to your needs via editing the files in the config/
folder. Adjust the example config.yaml
to configure the workflow execution, and samples.tsv
to specify your sample setup.
Install Snakemake using conda:
conda create -c bioconda -c conda-forge -n snakemake snakemake
For installation details, see the instructions in the Snakemake documentation.
Activate the conda environment:
conda activate snakemake
Test your configuration by performing a dry-run via
snakemake --use-conda -n
Execute the workflow locally via
snakemake --use-conda --cores $N
using $N
cores or run it in a cluster environment via
snakemake --use-conda --cluster qsub --jobs 100
or
snakemake --use-conda --drmaa --jobs 100
If you not only want to fix the software stack but also the underlying OS, use
snakemake --use-conda --use-singularity
in combination with any of the modes above. See the Snakemake documentation for further details.
Whenever you change something, don't forget to commit the changes back to your github copy of the repository:
git commit -a
git push
Whenever you want to synchronize your workflow copy with new developments from upstream, do the following.
- Once, register the upstream repository in your local copy:
git remote add -f upstream [email protected]:snakemake-workflows/rna-seq-ir.git
orgit remote add -f upstream https://github.com/snakemake-workflows/rna-seq-ir.git
if you do not have setup ssh keys. - Update the upstream version:
git fetch upstream
. - Create a diff with the current version:
git diff HEAD upstream/master workflow > upstream-changes.diff
. - Investigate the changes:
vim upstream-changes.diff
. - Apply the modified diff via:
git apply upstream-changes.diff
. - Carefully check whether you need to update the config files:
git diff HEAD upstream/master config
. If so, do it manually, and only where necessary, since you would otherwise likely overwrite your settings and samples.
In case you have also changed or added steps, please consider contributing them back to the original repository:
- Fork the original repo to a personal or lab account.
- Clone the fork to your local system, to a different place than where you ran your analysis.
- Copy the modified files from your analysis to the clone of your fork, e.g.,
cp -r workflow path/to/fork
. Make sure to not accidentally copy config file contents or sample sheets. Instead, manually update the example config files if necessary. - Commit and push your changes to your fork.
- Create a pull request against the original repository.
Test cases are in the subfolder .test
. They are automatically executed via continuous integration with Github Actions.