From c4d677328d2c48b18a1a82030af9b7e677860a46 Mon Sep 17 00:00:00 2001 From: Magnus Wahlberg Date: Wed, 22 Nov 2023 13:17:55 +0100 Subject: [PATCH 1/7] add apidocs to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index f9347202..c512620e 100644 --- a/.gitignore +++ b/.gitignore @@ -164,3 +164,4 @@ cython_debug/ # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. .idea/ +/docs/apidocs/ From 2b988f349ce40c0bacd1d555392bdc5b58273fdb Mon Sep 17 00:00:00 2001 From: Magnus Wahlberg Date: Wed, 22 Nov 2023 13:20:31 +0100 Subject: [PATCH 2/7] Add read the docs and initial docs --- .readthedocs.yaml | 20 ++ README.md | 1 + docs/Makefile | 20 ++ docs/_static/annotation_pipeline_dag.png | Bin 0 -> 158529 bytes docs/_static/preprocess_rulegraph.svg | 253 +++++++++++++++++++++++ docs/annotations.md | 127 ++++++++++++ docs/conf.py | 30 +++ docs/index.rst | 29 +++ docs/make.bat | 35 ++++ docs/preprocessing.md | 166 +++++++++++++++ docs/requirements.txt | 6 + docs/seed_gene_discovery.md | 38 ++++ docs/usage.md | 71 +++++++ 13 files changed, 796 insertions(+) create mode 100644 .readthedocs.yaml create mode 100644 docs/Makefile create mode 100644 docs/_static/annotation_pipeline_dag.png create mode 100644 docs/_static/preprocess_rulegraph.svg create mode 100644 docs/annotations.md create mode 100644 docs/conf.py create mode 100644 docs/index.rst create mode 100644 docs/make.bat create mode 100644 docs/preprocessing.md create mode 100644 docs/requirements.txt create mode 100644 docs/seed_gene_discovery.md create mode 100644 docs/usage.md diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 00000000..f9221ef3 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,20 @@ +# .readthedocs.yaml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Set the OS, Python version and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.12" + +sphinx: + configuration: docs/conf.py + fail_on_warning: true + +python: + install: + - requirements: docs/requirements.txt diff --git a/README.md b/README.md index 81ad0276..e516b124 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ Rare variant association testing using deep learning and data-driven burden scores +[![Documentation Status](https://readthedocs.org/projects/deeprvat/badge/?version=latest)](https://deeprvat.readthedocs.io/en/latest/?badge=latest) ## Installation diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..d4bb2cbb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_static/annotation_pipeline_dag.png b/docs/_static/annotation_pipeline_dag.png new file mode 100644 index 0000000000000000000000000000000000000000..0a088178c828246179ffa63a7bc7452c3ab9bccd GIT binary patch literal 158529 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�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

+GdUNN6KP#%~T| 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 XytXr{D?Sb*z91v5AeA7g_xJw;4bi}z literal 0 HcmV?d00001 diff --git a/docs/_static/preprocess_rulegraph.svg b/docs/_static/preprocess_rulegraph.svg new file mode 100644 index 00000000..22930d7a --- /dev/null +++ b/docs/_static/preprocess_rulegraph.svg @@ -0,0 +1,253 @@ + + + + + + +snakemake_dag + + + +0 + +all + + + +1 + +combine_genotypes + + + +1->0 + + + + + +2 + +preprocess + + + +2->1 + + + + + +3 + +add_variant_ids + + + +3->0 + + + + + +3->2 + + + + + +4 + +concatenate_variants + + + +4->3 + + + + + +9 + +create_parquet_variant_ids + + + +4->9 + + + + + +5 + +variants + + + +5->4 + + + + + +6 + +normalize + + + +6->5 + + + + + +10 + +sparsify + + + +6->10 + + + + + +11 + +qc_varmiss + + + +6->11 + + + + + +12 + +qc_hwe + + + +6->12 + + + + + +13 + +qc_read_depth + + + +6->13 + + + + + +14 + +qc_allelic_imbalance + + + +6->14 + + + + + +7 + +extract_samples + + + +7->2 + + + + + +7->6 + + + + + +8 + +index_fasta + + + +8->6 + + + + + +9->0 + + + + + +9->2 + + + + + +10->2 + + + + + +11->2 + + + + + +12->2 + + + + + +13->2 + + + + + +14->2 + + + + + +15 + +create_excluded_samples_dir + + + +15->2 + + + + + diff --git a/docs/annotations.md b/docs/annotations.md new file mode 100644 index 00000000..374b2691 --- /dev/null +++ b/docs/annotations.md @@ -0,0 +1,127 @@ +# DeepRVAT Annotation pipeline + +This pipeline is based on [snakemake](https://snakemake.readthedocs.io/en/stable/). It uses [bcftools + samstools](https://www.htslib.org/), as well as [perl](https://www.perl.org/), [deepRiPe](https://ohlerlab.mdc-berlin.de/software/DeepRiPe_140/) and [deepSEA](http://deepsea.princeton.edu/) as well as [VEP](http://www.ensembl.org/info/docs/tools/vep/index.html), including plugins for [primateAI](https://github.com/Illumina/PrimateAI) and [spliceAI](https://github.com/Illumina/SpliceAI). DeepRiPe annotations were acquired using [faatpipe repository by HealthML](https://github.com/HealthML/faatpipe)[[1]](#reference-1-target) and DeepSea annotations were calculated using [kipoi-veff2](https://github.com/kipoi/kipoi-veff2)[[2]](#reference-2-target), abSplice scores were computet using [abSplice](https://github.com/gagneurlab/absplice/)[[3]](#reference-3-target) + +![dag](_static/annotation_pipeline_dag.png) +*Figure 1: Example DAG of annoation pipeline using only two bcf files as input.* + +## Input + +The pipeline uses left-normalized bcf files containing variant information, a reference fasta file as well as a text file that maps data blocks to chromosomes as input. It is expected that the bcf files contain the columns "CHROM" "POS" "ID" "REF" and "ALT". Any other columns, including genotype information are stripped from the data before annotation tools are used on the data. The variants may be split into several vcf files for each chromosome and each "block" of data. The filenames should then contain the corresponding chromosome and block number. The pattern of the file names, as well as file structure may be specified in the corresponding [config file](https://github.com/PMBio/deeprvat/blob/main/pipelines/config/deeprvat_annotation_config.yaml). + +(requirements-target)= +## Requirements + +BCFtools as well as HTSlib should be installed on the machine, +- [CADD](https://github.com/kircherlab/CADD-scripts/tree/master/src/scripts) as well as +- [VEP](http://www.ensembl.org/info/docs/tools/vep/script/vep_download.html), +- [absplice](https://github.com/gagneurlab/absplice/tree/master), +- [kipoi-veff2](https://github.com/kipoi/kipoi-veff2) +- [faatpipe](https://github.com/HealthML/faatpipe), and the +- [vep-plugins repository](https://github.com/Ensembl/VEP_plugins/) + +will be installed by the pipeline together with the [plugins](https://www.ensembl.org/info/docs/tools/vep/script/vep_plugins.html) for primateAI and spliceAI. Annotation data for CADD, spliceAI and primateAI should be downloaded. The path to the data may be specified in the corresponding [config file](https://github.com/PMBio/deeprvat/blob/main/pipelines/config/deeprvat_annotation_config.yaml). +Download path: +- [CADD](http://cadd.gs.washington.edu/download): "All possible SNVs of GRCh38/hg38" and "gnomad.genomes.r3.0.indel.tsv.gz" incl. their Tabix Indices +- [SpliceAI](https://basespace.illumina.com/s/otSPW8hnhaZR): "genome_scores_v1.3"/"spliceai_scores.raw.snv.hg38.vcf.gz" and "spliceai_scores.raw.indel.hg38.vcf.gz" +- [PrimateAI](https://basespace.illumina.com/s/yYGFdGih1rXL) PrimateAI supplementary data/"PrimateAI_scores_v0.2_GRCh38_sorted.tsv.bgz" + + +## Output + +The pipeline outputs one annotation file for VEP, CADD, DeepRiPe, DeepSea and Absplice for each input vcf-file. The tool further creates concatenated files for each tool and one merged file containing Scores from AbSplice, VEP incl. CADD, primateAI and spliceAI as well as principal components from DeepSea and DeepRiPe. + +## Configure the annotation pipeline +The snakemake annotation pipeline is configured using a yaml file with the format akin to the [example file](https://github.com/PMBio/deeprvat/blob/main/pipelines/config/deeprvat_annotation_config.yaml). + +The config above would use the following directory structure: +```shell + +|-- reference +| |-- fasta file + + +|-- metadata +| |-- pvcf_blocks.txt + +|-- preprocessing_workdir +| |--reference +| | |-- fasta file +| |-- norm +| | |-- bcf +| | | |-- bcf_input_files +| | | |-- ... +| | |-- variants +| | | |-- variants.tsv.gz + +|-- output_dir +| |-- annotations +| | |-- tmp + +|-- repo_dir +| |-- ensembl-vep +| | |-- cache +| | |-- plugins +| |-- abSplice +| |-- faatpipe +| |-- kipoi-veff2 + +|-- annotation_data +| |-- cadd +| |-- spliceAI +| |-- primateAI + + + +``` + +Bcf files created by the [preprocessing pipeline](https://github.com/PMBio/deeprvat/blob/Annotations/deeprvat/preprocessing/README.md) are used as input data. +The pipeline also uses the variant.tsv file as well as the reference file from the preprocesing pipeline. +The pipeline beginns by installing the repositories needed for the annotations, it will automatically install all repositories in the `repo_dir` folder that can be specified in the config file relative to the annotation working directory. +The text file mapping blocks to chromosomes is stored in `metadata` folder. The output is stored in the `output_dir/annotations` folder and any temporary files in the `tmp` subfolder. All repositories used including VEP with its corresponding cache as well as plugins are stored in `repo_dir/ensempl-vep`. +Data for VEP plugins and the CADD cache are stored in `annotation data`. + +## Running the annotation pipeline +### Preconfiguration +- Inside the annotation directory create a directory `repo_dir` and run the [annotation setup script](https://github.com/PMBio/deeprvat/blob/main/deeprvat/annotations/setup_annotation_workflow.sh) + ```shell + setup_annotation_workflow.sh repo_dir/ensembl-vep/cache repo_dir/ensembl-vep/Plugins repo_dir + ``` + or manually clone the repositories mentioned in the [requirements](#requirements-target) into `repo_dir` and install the needed conda environments with + ```shell + mamba env create -f repo_dir/absplice/environment.yaml + mamba env create -f repo_dir/kipoi-veff2/environment.minimal.linux.yml + mamba env create -f deeprvat/deeprvat_annotations.yml + ``` + If you already have some of the needed repositories on your machine you can edit the paths in the [config](https://github.com/PMBio/deeprvat/blob/main/pipelines/config/deeprvat_annotation_config.yaml). + + +- Inside the annotation directory create a directory `annotation_dir` and download/link the prescored files for CADD, SpliceAI, and PrimateAI (see [requirements](#requirements-target)) + + +### Running the pipeline +After configuration and activating the `deeprvat_annotations` environment run the pipeline using snakemake: + +```shell + snakemake -j -s annotations.snakemake --configfile config/deeprvat_annotation.config --use-conda +``` +## Running the annotation pipeline without the preprocessing pipeline + +It is possible to run the annotation pipeline without having run the preprocessing prior to that. +However, the annotation pipeline requires some files from this pipeline that then have to be created manually. +- Left normalized bcf files from the input. These files do not have to contain any genotype information. "chrom, "pos", "ref" and "alt" columns will suffice. +- a reference fasta file will have to be provided +- A tab separated file containing all input variants "chrom, "pos", "ref" and "alt" entries each with a unique id. + + +## References + +(reference-1-target)= +[1] Monti, R., Rautenstrauch, P., Ghanbari, M. et al. Identifying interpretable gene-biomarker associations with functionally informed kernel-based tests in 190,000 exomes. Nat Commun 13, 5332 (2022). https://doi.org/10.1038/s41467-022-32864-2 + +(reference-2-target)= +[2] Žiga Avsec et al., “Kipoi: accelerating the community exchange and reuse of predictive models for genomics,” bioRxiv, p. 375345, Jan. 2018, doi: 10.1101/375345. + +(reference-3-target)= +[3]N. Wagner et al., “Aberrant splicing prediction across human tissues,” Nature Genetics, vol. 55, no. 5, pp. 861–870, May 2023, doi: 10.1038/s41588-023-01373-3. + diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..200a0c5f --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,30 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = "DeepRVAT" +copyright = "2023, Clarke, B., Holtkamp, E., Öztürk, H., Mück, M., Wahlberg, M., Meyer, K., Brechtmann, F., Hölzlwimmer, F. R., Gagneur, J., & Stegle, O" +author = "Clarke, B., Holtkamp, E., Öztürk, H., Mück, M., Wahlberg, M., Meyer, K., Brechtmann, F., Hölzlwimmer, F. R., Gagneur, J., & Stegle, O" +release = "0.1.0" + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = ["autodoc2", "myst_parser", 'sphinx_copybutton'] +autodoc2_packages = [ + "../deeprvat", +] + +templates_path = ["_templates"] +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = "sphinx_rtd_theme" +html_static_path = ["_static"] diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..6e5d69c4 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,29 @@ +.. DeepRVAT documentation master file, created by + sphinx-quickstart on Wed Nov 22 10:24:36 2023. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to DeepRVAT's documentation! +==================================== + +Rare variant association testing using deep learning and data-driven burden scores + + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + usage.md + preprocessing.md + annotations.md + seed_gene_discovery.md + + apidocs/index + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 00000000..32bb2452 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/preprocessing.md b/docs/preprocessing.md new file mode 100644 index 00000000..cb90335b --- /dev/null +++ b/docs/preprocessing.md @@ -0,0 +1,166 @@ +# DeepRVAT Preprocessing pipeline + +The DeepRVAT preprocessing pipeline is based on [snakemake](https://snakemake.readthedocs.io/en/stable/) it uses +[bcftools+samstools](https://www.htslib.org/) and a [python script](https://github.com/PMBio/deeprvat/blob/main/deeprvat/preprocessing/preprocess.py) preprocessing.py. + +![DeepRVAT preprocessing pipeline](_static/preprocess_rulegraph.svg) + +## Output + +The important files that this pipeline produces that are needed in DeepRVAT are: + +- **preprocessed/genotypes.h5** *The main sparse hdf5 file* + +- **norm/variants/variants.parquet** *List of variants i parquet format* + +## Setup environment + +Create the DeepRVAT processing environment + +Clone this repository: + +```shell +git clone git@github.com:PMBio/deeprvat.git +``` + +Change directory to the repository: `cd deeprvat` + +```shell +mamba env create --file deeprvat_preprocessing_env.yml +``` + +Activate the environment + +```shell +mamba activate deeprvat_preprocess +``` + +Install DeepRVAT in the environment + +```shell +pip install -e . +``` + +## Configure preprocessing + +The snakemake preprocessing is configured using a yaml file with the format below. +An example file is included in this repo: [example config](https://github.com/PMBio/deeprvat/blob/main/pipelines/config/deeprvat_preprocess_config.yaml). + +```yaml +# What chromosomes should be processed +included_chromosomes: [ 20,21,22 ] + +# If you need to run a cmd to load bcf and samtools specify it here +bcftools_load_cmd: module load bcftools/1.10.2 && +samtools_load_cmd: module load samtools/1.9 && + +# Path to where you want to write results and intermediate data +working_dir: /workdir +# Path to ukbb data +data_dir: /data + +# These paths are all relative to the data dir +input_vcf_dir_name: vcf +metadata_dir_name: metadata + +# expected to be found in the data_dir / metadata_dir +pvcf_blocks_file: pvcf_blocks.txt + +# These paths are all relative to the working dir +# Here will the finished preprocessed files end up +preprocessed_dir_name: preprocesed +# Path to directory with fasta reference file +reference_dir_name: reference +# Here we will store normalized bcf files +norm_dir_name: norm +# Here we store "sparsified" bcf files +sparse_dir_name: sparse + +# Expected to be found in working_dir/reference_dir +reference_fasta_file: GRCh38_full_analysis_set_plus_decoy_hla.fa + +# The format of the name of the "raw" vcf files +vcf_filename_pattern: ukb23156_c{chr}_b{block}_v1.vcf.gz + +# Number of threads to use in the preprocessing script, separate from snakemake threads +preprocess_threads: 16 + ``` + +The config above would use the following directory structure: + +```shell +parent_directory +|-- data +| |-- metadata +| `-- vcf +`-- workdir + |-- norm + | |-- bcf + | |-- sparse + | `-- variants + |-- preprocesed + |-- qc + | |-- allelic_imbalance + | |-- duplicate_vars + | |-- filtered_samples + | |-- hwe + | |-- indmiss + | | |-- samples + | | |-- sites + | | `-- stats + | |-- read_depth + | `-- varmiss + `-- reference + +``` + +## Running the preprocess pipeline + +### Run the preprocess pipeline with example data + +*The vcf files in the example data folder was generated using [fake-vcf](https://github.com/endast/fake-vcf) (with some +manual editing). +hence does not contain real data.* + +1. cd into the preprocessing example dir + +```shell +cd +cd example/preprocess +``` + +2. Download the fasta file + +```shell +wget https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_44/GRCh38.primary_assembly.genome.fa.gz -P workdir/reference +``` + +3. Unpack the fasta file + +```shell +gzip -d workdir/reference/GRCh38.primary_assembly.genome.fa.gz +``` + +4. Run with the example config + +```shell +snakemake -j 1 --snakefile ../../pipelines/preprocess.snakefile --configfile ../../pipelines/config/deeprvat_preprocess_config.yaml +``` + +5. Enjoy the preprocessed data 🎉 + +```shell +ls -l workdir/preprocesed +total 48 +-rw-r--r-- 1 user staff 6404 Aug 2 14:06 genotypes.h5 +-rw-r--r-- 1 user staff 6354 Aug 2 14:06 genotypes_chr21.h5 +-rw-r--r-- 1 user staff 6354 Aug 2 14:06 genotypes_chr22.h5 +``` + +### Run on your own data + +After configuration and activating the environment run the pipeline using snakemake: + +```shell +snakemake -j --configfile config/deeprvat_preprocess_config.yaml -s preprocess.snakefile +``` diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 00000000..97d35c58 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,6 @@ +sphinx==7.2.6 +myst-parser==2.0.0 +sphinx-autodoc2==0.4.2 +astroid==2.15.8 +sphinx-copybutton==0.5.2 +sphinx-rtd-theme==1.3.0 diff --git a/docs/seed_gene_discovery.md b/docs/seed_gene_discovery.md new file mode 100644 index 00000000..1ae78f4a --- /dev/null +++ b/docs/seed_gene_discovery.md @@ -0,0 +1,38 @@ +# Seed gene discovery + +This pipeline discovers *seed genes* for DeepRVAT training. The pipeline runs SKAT and burden tests for missense and pLOF variants, weighting variants with Beta(MAF,1,25). To run the tests, we use the `Scoretest` from the [SEAK](https://github.com/HealthML/seak) package (has to be installed from github). + +To run the pipeline, an experiment directory with the `config.yaml` has to be created. An `lsf.yaml` file specifiying the compute resources for each rule in `seed_gene_discovery.snakefile` might also be needed depending on your system (see as an example the `lsf.yaml` file in this directory). + +## Input data + +The experiment directory in addition requires to have the same input data as specified for [DeepRVAT](https://github.com/PMBio/deeprvat/tree/main/README.md), including +- `annotations.parquet` +- `protein_coding_genes.parquet` +- `genotypes.h5` +- `variants.parquet` +- `phenotypes.parquet` + +The `annotations.parquet` data frame should have the following columns: + +- id (variant id, **should be the index column**) +- gene_ids (list) gene(s) the variant is assigned to +- is_plof (binary, indicating if the variant is loss of function) +- Consequence_missense_variant: +- MAF: Maximum of the MAF in the UK Biobank cohort and in gnomAD release 3.0 (non-Finnish European population) can also be changed by using the --maf-column {maf_col_name} flag for the rule config and replacing MAF in the config.yaml with the {maf_col_name} but it must contain the string '_AF', '_MAF' OR '^MAF' + +### Run the seed gene discovery pipeline with example data + +Create the conda environment and activate it, (instructions can be found in the [DeepRVAT README](https://github.com/PMBio/deeprvat/tree/main/README.md) ) + + +``` +mkdir example +cd example +ln -s [path_to_deeprvat]/example/* . +cp [path_to_deeprvat]/deeprvat/seed_gene_discovery/config.yaml . +snakemake -j 1 --snakefile [path_to_deeprvat]/pipelines/seed_gene_discovery.snakefile +``` + +Replace `[path_to_deeprvat]` with the path to your clone of the repository. + diff --git a/docs/usage.md b/docs/usage.md new file mode 100644 index 00000000..d093fdef --- /dev/null +++ b/docs/usage.md @@ -0,0 +1,71 @@ +# Using DeepRVAT + +## Installation + +1. Clone this repository: +``` +git clone git@github.com:PMBio/deeprvat.git +``` +1. Change directory to the repository: `cd deeprvat` +1. Install the conda environment. We recommend using [mamba](https://mamba.readthedocs.io/en/latest/index.html), though you may also replace `mamba` with `conda` + + *note: [the current deeprvat env does not support cuda when installed with conda](https://github.com/PMBio/deeprvat/issues/16), install using mamba for cuda support.* +``` +mamba env create -n deeprvat -f deeprvat_env.yaml +``` +1. Activate the environment: `mamba activate deeprvat` +1. Install the `deeprvat` package: `pip install -e .` + +If you don't want to install the gpu related requirements use the `deeprvat_env_no_gpu.yml` environment instead. +``` +mamba env create -n deeprvat -f deeprvat_env_no_gpu.yaml +``` + + +## Basic usage + +### Customize pipelines + +Before running any of the snakefiles, you may want to adjust the number of threads used by different steps in the pipeline. To do this, modify the `threads:` property of a given rule. + +If you are running on an computing cluster, you will need a [profile](https://github.com/snakemake-profiles) and may need to add `resources:` directives to the snakefiles. + + +### Run the preprocessing pipeline on VCF files + +Instructions [here](https://github.com/PMBio/deeprvat/blob/main/deeprvat/preprocessing/README.md) + + +### Annotate variants + +Instructions [here](https://github.com/PMBio/deeprvat/blob/main/deeprvat/annotations/README.md) + + + +### Try the full training and association testing pipeline on some example data + +``` +mkdir example +cd example +ln -s [path_to_deeprvat]/example/* . +snakemake -j 1 --snakefile [path_to_deeprvat]/pipelines/training_association_testing.snakefile +``` + +Replace `[path_to_deeprvat]` with the path to your clone of the repository. + +Note that the example data is randomly generated, and so is only suited for testing whether the `deeprvat` package has been correctly installed. + + +### Run the association testing pipeline with pretrained models + +``` +mkdir example +cd example +ln -s [path_to_deeprvat]/example/* . +ln -s [path_to_deeprvat]/pretrained_models +snakemake -j 1 --snakefile [path_to_deeprvat]/pipelines/association_testing_pretrained.snakefile +``` + +Replace `[path_to_deeprvat]` with the path to your clone of the repository. + +Again, note that the example data is randomly generated, and so is only suited for testing whether the `deeprvat` package has been correctly installed. From fd0093b9de65100e4edc2c3eaa373f7dd8e4ec26 Mon Sep 17 00:00:00 2001 From: Magnus Wahlberg Date: Wed, 22 Nov 2023 13:23:35 +0100 Subject: [PATCH 3/7] add __init__ files for autodoc --- deeprvat/annotations/__init__.py | 0 deeprvat/deeprvat/__init__.py | 0 deeprvat/preprocessing/__init__.py | 0 deeprvat/seed_gene_discovery/__init__.py | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 deeprvat/annotations/__init__.py create mode 100644 deeprvat/deeprvat/__init__.py create mode 100644 deeprvat/preprocessing/__init__.py create mode 100644 deeprvat/seed_gene_discovery/__init__.py diff --git a/deeprvat/annotations/__init__.py b/deeprvat/annotations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/deeprvat/deeprvat/__init__.py b/deeprvat/deeprvat/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/deeprvat/preprocessing/__init__.py b/deeprvat/preprocessing/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/deeprvat/seed_gene_discovery/__init__.py b/deeprvat/seed_gene_discovery/__init__.py new file mode 100644 index 00000000..e69de29b From 00da299be3a353f34495a6aa42503f713be10408 Mon Sep 17 00:00:00 2001 From: Magnus Wahlberg Date: Wed, 22 Nov 2023 13:29:29 +0100 Subject: [PATCH 4/7] Move existing docs --- deeprvat/annotations/README.md | 120 --------- deeprvat/preprocessing/README.md | 166 ------------ .../preprocessing/preprocess_rulegraph.svg | 253 ------------------ deeprvat/seed_gene_discovery/README.md | 38 --- 4 files changed, 577 deletions(-) delete mode 100644 deeprvat/annotations/README.md delete mode 100644 deeprvat/preprocessing/README.md delete mode 100644 deeprvat/preprocessing/preprocess_rulegraph.svg delete mode 100644 deeprvat/seed_gene_discovery/README.md diff --git a/deeprvat/annotations/README.md b/deeprvat/annotations/README.md deleted file mode 100644 index a19a270f..00000000 --- a/deeprvat/annotations/README.md +++ /dev/null @@ -1,120 +0,0 @@ -# DeepRVAT Annotation pipeline - -This pipeline is based on [snakemake](https://snakemake.readthedocs.io/en/stable/). It uses [bcftools + samstools](https://www.htslib.org/), as well as [perl](https://www.perl.org/), [deepRiPe](https://ohlerlab.mdc-berlin.de/software/DeepRiPe_140/) and [deepSEA](http://deepsea.princeton.edu/) as well as [VEP](http://www.ensembl.org/info/docs/tools/vep/index.html), including plugins for [primateAI](https://github.com/Illumina/PrimateAI) and [spliceAI](https://github.com/Illumina/SpliceAI). DeepRiPe annotations were acquired using [faatpipe repository by HealthML](https://github.com/HealthML/faatpipe)[[1]](#1) and DeepSea annotations were calculated using [kipoi-veff2](https://github.com/kipoi/kipoi-veff2)[[2]](#2), abSplice scores were computet using [abSplice](https://github.com/gagneurlab/absplice/)[[3]](#3) - -![dag](https://github.com/PMBio/deeprvat/assets/23211603/d483831e-3558-4e21-9845-4b62ad4eecc3) -*Figure 1: Example DAG of annoation pipeline using only two bcf files as input.* - -## Input - -The pipeline uses left-normalized bcf files containing variant information, a reference fasta file as well as a text file that maps data blocks to chromosomes as input. It is expected that the bcf files contain the columns "CHROM" "POS" "ID" "REF" and "ALT". Any other columns, including genotype information are stripped from the data before annotation tools are used on the data. The variants may be split into several vcf files for each chromosome and each "block" of data. The filenames should then contain the corresponding chromosome and block number. The pattern of the file names, as well as file structure may be specified in the corresponding [config file](config/deeprvat_annotation_config.yaml). - -## Requirements -BCFtools as well as HTSlib should be installed on the machine, -- [CADD](https://github.com/kircherlab/CADD-scripts/tree/master/src/scripts) as well as -- [VEP](http://www.ensembl.org/info/docs/tools/vep/script/vep_download.html), -- [absplice](https://github.com/gagneurlab/absplice/tree/master), -- [kipoi-veff2](https://github.com/kipoi/kipoi-veff2) -- [faatpipe](https://github.com/HealthML/faatpipe), and the -- [vep-plugins repository](https://github.com/Ensembl/VEP_plugins/) - -will be installed by the pipeline together with the [plugins](https://www.ensembl.org/info/docs/tools/vep/script/vep_plugins.html) for primateAI and spliceAI. Annotation data for CADD, spliceAI and primateAI should be downloaded. The path to the data may be specified in the corresponding [config file](config/deeprvat_annotation_config.yaml). -Download path: -- [CADD](http://cadd.gs.washington.edu/download): "All possible SNVs of GRCh38/hg38" and "gnomad.genomes.r3.0.indel.tsv.gz" incl. their Tabix Indices -- [SpliceAI](https://basespace.illumina.com/s/otSPW8hnhaZR): "genome_scores_v1.3"/"spliceai_scores.raw.snv.hg38.vcf.gz" and "spliceai_scores.raw.indel.hg38.vcf.gz" -- [PrimateAI](https://basespace.illumina.com/s/yYGFdGih1rXL) PrimateAI supplementary data/"PrimateAI_scores_v0.2_GRCh38_sorted.tsv.bgz" - - -## Output - -The pipeline outputs one annotation file for VEP, CADD, DeepRiPe, DeepSea and Absplice for each input vcf-file. The tool further creates concatenated files for each tool and one merged file containing Scores from AbSplice, VEP incl. CADD, primateAI and spliceAI as well as principal components from DeepSea and DeepRiPe. - -## Configure the annotation pipeline -The snakemake annotation pipeline is configured using a yaml file with the format akin to the [example file](config/deeprvat_annotation_config.yaml). - -The config above would use the following directory structure: -```shell - -|-- reference -| |-- fasta file - - -|-- metadata -| |-- pvcf_blocks.txt - -|-- preprocessing_workdir -| |--reference -| | |-- fasta file -| |-- norm -| | |-- bcf -| | | |-- bcf_input_files -| | | |-- ... -| | |-- variants -| | | |-- variants.tsv.gz - -|-- output_dir -| |-- annotations -| | |-- tmp - -|-- repo_dir -| |-- ensembl-vep -| | |-- cache -| | |-- plugins -| |-- abSplice -| |-- faatpipe -| |-- kipoi-veff2 - -|-- annotation_data -| |-- cadd -| |-- spliceAI -| |-- primateAI - - - -``` - -Bcf files created by the [preprocessing pipeline](https://github.com/PMBio/deeprvat/blob/Annotations/deeprvat/preprocessing/README.md) are used as input data. -The pipeline also uses the variant.tsv file as well as the reference file from the preprocesing pipeline. -The pipeline beginns by installing the repositories needed for the annotations, it will automatically install all repositories in the `repo_dir` folder that can be specified in the config file relative to the annotation working directory. -The text file mapping blocks to chromosomes is stored in `metadata` folder. The output is stored in the `output_dir/annotations` folder and any temporary files in the `tmp` subfolder. All repositories used including VEP with its corresponding cache as well as plugins are stored in `repo_dir/ensempl-vep`. -Data for VEP plugins and the CADD cache are stored in `annotation data`. - -## Running the annotation pipeline -### Preconfiguration -- Inside the annotation directory create a directory `repo_dir` and run the [annotation setup script](setup_annotation_workflow.sh) - ```shell - setup_annotation_workflow.sh repo_dir/ensembl-vep/cache repo_dir/ensembl-vep/Plugins repo_dir - ``` - or manually clone the repositories mentioned in the [requirements](#requirements) into `repo_dir` and install the needed conda environments with - ```shell - mamba env create -f repo_dir/absplice/environment.yaml - mamba env create -f repo_dir/kipoi-veff2/environment.minimal.linux.yml - mamba env create -f deeprvat/deeprvat_annotations.yml - ``` - If you already have some of the needed repositories on your machine you can edit the paths in the [config](../../pipelines/config/deeprvat_annotation_config.yaml). - - -- Inside the annotation directory create a directory `annotation_dir` and download/link the prescored files for CADD, SpliceAI, and PrimateAI (see [requirements](#requirements)) - - -### Running the pipeline -After configuration and activating the `deeprvat_annotations` environment run the pipeline using snakemake: - -```shell - snakemake -j -s annotations.snakemake --configfile config/deeprvat_annotation.config --use-conda -``` -## Running the annotation pipeline without the preprocessing pipeline - -It is possible to run the annotation pipeline without having run the preprocessing prior to that. -However, the annotation pipeline requires some files from this pipeline that then have to be created manually. -- Left normalized bcf files from the input. These files do not have to contain any genotype information. "chrom, "pos", "ref" and "alt" columns will suffice. -- a reference fasta file will have to be provided -- A tab separated file containing all input variants "chrom, "pos", "ref" and "alt" entries each with a unique id. - - -## References -[1] Monti, R., Rautenstrauch, P., Ghanbari, M. et al. Identifying interpretable gene-biomarker associations with functionally informed kernel-based tests in 190,000 exomes. Nat Commun 13, 5332 (2022). https://doi.org/10.1038/s41467-022-32864-2 - -[2] Žiga Avsec et al., “Kipoi: accelerating the community exchange and reuse of predictive models for genomics,” bioRxiv, p. 375345, Jan. 2018, doi: 10.1101/375345. - -[3]N. Wagner et al., “Aberrant splicing prediction across human tissues,” Nature Genetics, vol. 55, no. 5, pp. 861–870, May 2023, doi: 10.1038/s41588-023-01373-3. diff --git a/deeprvat/preprocessing/README.md b/deeprvat/preprocessing/README.md deleted file mode 100644 index d499a6b6..00000000 --- a/deeprvat/preprocessing/README.md +++ /dev/null @@ -1,166 +0,0 @@ -# DeepRVAT Preprocessing pipeline - -The DeepRVAT preprocessing pipeline is based on [snakemake](https://snakemake.readthedocs.io/en/stable/) it uses -[bcftools+samstools](https://www.htslib.org/) and a [python script](preprocess.py) preprocessing.py. - -![DeepRVAT preprocessing pipeline](./preprocess_rulegraph.svg) - -## Output - -The important files that this pipeline produces that are needed in DeepRVAT are: - -- **preprocessed/genotypes.h5** *The main sparse hdf5 file* - -- **norm/variants/variants.parquet** *List of variants i parquet format* - -## Setup environment - -Create the DeepRVAT processing environment - -Clone this repository: - -```shell -git clone git@github.com:PMBio/deeprvat.git -``` - -Change directory to the repository: `cd deeprvat` - -```shell -mamba env create --file deeprvat_preprocessing_env.yml -``` - -Activate the environment - -```shell -mamba activate deeprvat_preprocess -``` - -Install DeepRVAT in the environment - -```shell -pip install -e . -``` - -## Configure preprocessing - -The snakemake preprocessing is configured using a yaml file with the format below. -An example file is included in this repo: [example config](config/deeprvat_preprocess_config.yaml). - -```yaml -# What chromosomes should be processed -included_chromosomes: [ 20,21,22 ] - -# If you need to run a cmd to load bcf and samtools specify it here -bcftools_load_cmd: module load bcftools/1.10.2 && -samtools_load_cmd: module load samtools/1.9 && - -# Path to where you want to write results and intermediate data -working_dir: /workdir -# Path to ukbb data -data_dir: /data - -# These paths are all relative to the data dir -input_vcf_dir_name: vcf -metadata_dir_name: metadata - -# expected to be found in the data_dir / metadata_dir -pvcf_blocks_file: pvcf_blocks.txt - -# These paths are all relative to the working dir -# Here will the finished preprocessed files end up -preprocessed_dir_name: preprocesed -# Path to directory with fasta reference file -reference_dir_name: reference -# Here we will store normalized bcf files -norm_dir_name: norm -# Here we store "sparsified" bcf files -sparse_dir_name: sparse - -# Expected to be found in working_dir/reference_dir -reference_fasta_file: GRCh38_full_analysis_set_plus_decoy_hla.fa - -# The format of the name of the "raw" vcf files -vcf_filename_pattern: ukb23156_c{chr}_b{block}_v1.vcf.gz - -# Number of threads to use in the preprocessing script, separate from snakemake threads -preprocess_threads: 16 - ``` - -The config above would use the following directory structure: - -```shell -parent_directory -|-- data -| |-- metadata -| `-- vcf -`-- workdir - |-- norm - | |-- bcf - | |-- sparse - | `-- variants - |-- preprocesed - |-- qc - | |-- allelic_imbalance - | |-- duplicate_vars - | |-- filtered_samples - | |-- hwe - | |-- indmiss - | | |-- samples - | | |-- sites - | | `-- stats - | |-- read_depth - | `-- varmiss - `-- reference - -``` - -## Running the preprocess pipeline - -### Run the preprocess pipeline with example data - -*The vcf files in the example data folder was generated using [fake-vcf](https://github.com/endast/fake-vcf) (with some -manual editing). -hence does not contain real data.* - -1. cd into the preprocessing example dir - -```shell -cd -cd example/preprocess -``` - -2. Download the fasta file - -```shell -wget https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_44/GRCh38.primary_assembly.genome.fa.gz -P workdir/reference -``` - -3. Unpack the fasta file - -```shell -gzip -d workdir/reference/GRCh38.primary_assembly.genome.fa.gz -``` - -4. Run with the example config - -```shell -snakemake -j 1 --snakefile ../../pipelines/preprocess.snakefile --configfile ../../pipelines/config/deeprvat_preprocess_config.yaml -``` - -5. Enjoy the preprocessed data 🎉 - -```shell -ls -l workdir/preprocesed -total 48 --rw-r--r-- 1 user staff 6404 Aug 2 14:06 genotypes.h5 --rw-r--r-- 1 user staff 6354 Aug 2 14:06 genotypes_chr21.h5 --rw-r--r-- 1 user staff 6354 Aug 2 14:06 genotypes_chr22.h5 -``` - -### Run on your own data - -After configuration and activating the environment run the pipeline using snakemake: - -```shell -snakemake -j --configfile config/deeprvat_preprocess_config.yaml -s preprocess.snakefile -``` diff --git a/deeprvat/preprocessing/preprocess_rulegraph.svg b/deeprvat/preprocessing/preprocess_rulegraph.svg deleted file mode 100644 index 22930d7a..00000000 --- a/deeprvat/preprocessing/preprocess_rulegraph.svg +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - -snakemake_dag - - - -0 - -all - - - -1 - -combine_genotypes - - - -1->0 - - - - - -2 - -preprocess - - - -2->1 - - - - - -3 - -add_variant_ids - - - -3->0 - - - - - -3->2 - - - - - -4 - -concatenate_variants - - - -4->3 - - - - - -9 - -create_parquet_variant_ids - - - -4->9 - - - - - -5 - -variants - - - -5->4 - - - - - -6 - -normalize - - - -6->5 - - - - - -10 - -sparsify - - - -6->10 - - - - - -11 - -qc_varmiss - - - -6->11 - - - - - -12 - -qc_hwe - - - -6->12 - - - - - -13 - -qc_read_depth - - - -6->13 - - - - - -14 - -qc_allelic_imbalance - - - -6->14 - - - - - -7 - -extract_samples - - - -7->2 - - - - - -7->6 - - - - - -8 - -index_fasta - - - -8->6 - - - - - -9->0 - - - - - -9->2 - - - - - -10->2 - - - - - -11->2 - - - - - -12->2 - - - - - -13->2 - - - - - -14->2 - - - - - -15 - -create_excluded_samples_dir - - - -15->2 - - - - - diff --git a/deeprvat/seed_gene_discovery/README.md b/deeprvat/seed_gene_discovery/README.md deleted file mode 100644 index 1ae78f4a..00000000 --- a/deeprvat/seed_gene_discovery/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Seed gene discovery - -This pipeline discovers *seed genes* for DeepRVAT training. The pipeline runs SKAT and burden tests for missense and pLOF variants, weighting variants with Beta(MAF,1,25). To run the tests, we use the `Scoretest` from the [SEAK](https://github.com/HealthML/seak) package (has to be installed from github). - -To run the pipeline, an experiment directory with the `config.yaml` has to be created. An `lsf.yaml` file specifiying the compute resources for each rule in `seed_gene_discovery.snakefile` might also be needed depending on your system (see as an example the `lsf.yaml` file in this directory). - -## Input data - -The experiment directory in addition requires to have the same input data as specified for [DeepRVAT](https://github.com/PMBio/deeprvat/tree/main/README.md), including -- `annotations.parquet` -- `protein_coding_genes.parquet` -- `genotypes.h5` -- `variants.parquet` -- `phenotypes.parquet` - -The `annotations.parquet` data frame should have the following columns: - -- id (variant id, **should be the index column**) -- gene_ids (list) gene(s) the variant is assigned to -- is_plof (binary, indicating if the variant is loss of function) -- Consequence_missense_variant: -- MAF: Maximum of the MAF in the UK Biobank cohort and in gnomAD release 3.0 (non-Finnish European population) can also be changed by using the --maf-column {maf_col_name} flag for the rule config and replacing MAF in the config.yaml with the {maf_col_name} but it must contain the string '_AF', '_MAF' OR '^MAF' - -### Run the seed gene discovery pipeline with example data - -Create the conda environment and activate it, (instructions can be found in the [DeepRVAT README](https://github.com/PMBio/deeprvat/tree/main/README.md) ) - - -``` -mkdir example -cd example -ln -s [path_to_deeprvat]/example/* . -cp [path_to_deeprvat]/deeprvat/seed_gene_discovery/config.yaml . -snakemake -j 1 --snakefile [path_to_deeprvat]/pipelines/seed_gene_discovery.snakefile -``` - -Replace `[path_to_deeprvat]` with the path to your clone of the repository. - From b725da414cf80916807cca92ab2bd3125a5ce47d Mon Sep 17 00:00:00 2001 From: Magnus Wahlberg Date: Wed, 22 Nov 2023 13:43:28 +0100 Subject: [PATCH 5/7] Update index.rst --- docs/index.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/index.rst b/docs/index.rst index 6e5d69c4..fcabaffc 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -17,7 +17,6 @@ Rare variant association testing using deep learning and data-driven burden scor preprocessing.md annotations.md seed_gene_discovery.md - apidocs/index From 7025c3b8d3a46676beba68bbd68a1b0c84562aa8 Mon Sep 17 00:00:00 2001 From: PMBio Date: Wed, 22 Nov 2023 12:47:29 +0000 Subject: [PATCH 6/7] fixup! Format Python code with psf/black pull_request --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 200a0c5f..1ab76a0c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -14,7 +14,7 @@ # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -extensions = ["autodoc2", "myst_parser", 'sphinx_copybutton'] +extensions = ["autodoc2", "myst_parser", "sphinx_copybutton"] autodoc2_packages = [ "../deeprvat", ] From 00c4d4b96b9a75be76914c73815783c3078e8627 Mon Sep 17 00:00:00 2001 From: Magnus Wahlberg Date: Wed, 22 Nov 2023 14:31:35 +0100 Subject: [PATCH 7/7] Fix links to markdown files --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e516b124..f17f200e 100644 --- a/README.md +++ b/README.md @@ -37,12 +37,12 @@ If you are running on an computing cluster, you will need a [profile](https://gi ### Run the preprocessing pipeline on VCF files -Instructions [here](https://github.com/PMBio/deeprvat/blob/main/deeprvat/preprocessing/README.md) +Instructions [here](https://github.com/PMBio/deeprvat/blob/main/deeprvat/docs/preprocessing.md) ### Annotate variants -Instructions [here](https://github.com/PMBio/deeprvat/blob/main/deeprvat/annotations/README.md) +Instructions [here](https://github.com/PMBio/deeprvat/blob/main/deeprvat/docs/annotations.md)