![GitHub actions status](https://github.com/tdayris/fair_genome_indexer/workflows/Tests/badge.svg?raw=true)
Snakemake workflow used to deploy and perform basic indexes of genome sequence.
This is done for teaching purpose as an example of FAIR principles applied with
Snakemake.
The usage of this workflow is described in the Snakemake workflow catalog, it is also available locally on a single page.
The expected results of this pipeline are described here.
The tools used in this pipeline are described here textually.
┌────────────────────────────────────────┐
│Download Ensembl Sequence (wget + gzip) │
└──────────────────┬─────────────────────┘
│
│
┌──────────────────▼────────────────────────┐
│Remove non-canonical chromosomes (pyfaidx) │
└──────────────────┬──────────────────────┬─┘
│ │
│ │
┌──────────────────▼──────────┐ ┌─▼───────────────────────────────────┐
│Index DNA Sequence (samtools)│ │Create sequence dictionary (Picard) │
└─────────────────────────────┘ └─────────────────────────────────────┘
Get genome annotation (GTF)
Step |
Commands |
Download GTF annotation |
ensembl-annotation |
Fix format errors |
Agat |
Remove non-canonical chromosomes, based on above DNA Fasta |
Agat |
Remove <NA> Transcript support levels |
Agat |
Convert GTF to GenePred format |
gtf2genepred |
┌─────────────────────────────────────────┐
│Download Ensembl Annotation (wget + gzip)│
└─────────────┬───────────────────────────┘
│
│
┌─────────────▼─────────┐
│Fix format Error (Agat)│
└─────────────┬─────────┘
│
│
┌─────────────▼─────────────────────────┐ ┌────────────────────────────────────────┐
│Remove non-canonical chromosomes (Agat)◄───────────┤Fasta sequence index (see Get DNA Fasta)│
└─────────────┬─────────────────────────┘ └────────────────────────────────────────┘
│
│
┌─────────────▼───────────────────────┐
│Remove <NA> transcript levels (Agat) │
└─────────────┬───────────────────────┘
│
│
┌─────────────▼────────────────┐
│Convert GTF to GenePred (UCSC)│
└──────────────────────────────┘
Step |
Commands |
Extract transcript sequences from above DNA Fasta and GTF |
gffread |
Index DNA sequence |
samtools |
Creatse sequence Dictionary |
picard |
┌───────────────────────────────┐ ┌─────────────────────────────┐
│GTF (see get genome annotation)│ │DNA Fasta (See get dna fasta)│
└────────────────────┬──────────┘ └────────┬────────────────────┘
│ │
│ │
┌──────▼───────────────────────────▼─────┐
│Extract transcripts sequences (gffread) │
└──────┬───────────────────────────┬─────┘
│ │
│ │
┌────────────────────▼────┐ ┌────────▼───────────────────────────┐
│Index sequence (samtools)│ │Create sequence dictionary (Picard) │
└─────────────────────────┘ └────────────────────────────────────┘
Step |
Commands |
Extract coding transcripts from above GTF |
Agat |
Extract coding sequences from above DNA Fasta and GTF |
gffread |
Index DNA sequence |
samtools |
Creatse sequence Dictionary |
picard |
┌───────────────────────────────┐ ┌─────────────────────────────┐
│GTF (see get genome annotation)│ │DNA Fasta (See get dna fasta)│
└────────────────────┬──────────┘ └────────┬────────────────────┘
│ │
│ │
┌──────▼───────────────────────────▼─────┐
│Extract cDNA sequences (gffread) │
└──────┬───────────────────────────┬─────┘
│ │
│ │
┌────────────────────▼────┐ ┌────────▼───────────────────────────┐
│Index sequence (samtools)│ │Create sequence dictionary (Picard) │
└─────────────────────────┘ └────────────────────────────────────┘
┌──────────────────────────────────────────┐
│Download dbSNP variants (wget + bcftools) │
└──────────┬───────────────────────────────┘
│
│
┌──────────▼───────────────────────────────────────────┐
│Remove non-canonical chromosomes (bcftools + bedtools)│
└──────────┬───────────────────────────────────────────┘
│
│
┌──────────▼─────────────┐
│Index variants (tabix) │
└────────────────────────┘
Get transcript_id, gene_id, and gene_name correspondancy
Step |
Commands |
Extract gene_id <-> gene_name correspondancy |
pyroe |
Extract transcript_id <-> gene_id <-> gene_name |
Agat + XSV |
┌────────────────────────────────┐
│Genome annotation (see get GTF) ├──────────────────┐
└──────┬─────────────────────────┘ │
│ │
│ │
┌──────▼──────────────────────────────┐ ┌────────▼─────────────────────────────────────────────┐
│Extract gene_id <-> gene_name (pyroe)│ │Extract gene_id <-> gene_name <-> transcript_id (Agat)│
└──────┬──────────────────────────────┘ └────────┬─────────────────────────────────────────────┘
│ │
│ │
┌──────▼─────┐ ┌────────▼────┐
│Format (XSV)│ │Format (XSV) │
└────────────┘ └─────────────┘
┌────────────────────────────────┐
│Download known blacklists (wget)│
└────────────┬───────────────────┘
│
│
┌────────────▼──────────────────────────┐
│Merge overlapping intervals (bedtools) │
└───────────────────────────────────────┘
┌────────────────────────────────┐
│Genome annotation (see get GTF) │
└────────────┬───────────────────┘
│
│
┌────────────▼──────────────┐
│GTFtoGenePred (UCSC-tools) │
└───────────────────────────┘