deal with transcriptome fasta headers that contains |

This commit is contained in:
Sarah Griffiths 2023-09-06 20:18:40 +00:00
parent 36d37a8d5f
commit edf3a24315
5 changed files with 67 additions and 12 deletions

View File

@ -45,7 +45,8 @@ docker-run:
- MATRIX_NAME: [
"fusions", "differential_expression", "isoforms",
"only_differential_expression", "differential_expression_gff3",
"ncbi_gzip", "denovo", "ncbi_no_gene_id", "ensembl_with_versions"
"ncbi_gzip", "denovo", "ncbi_no_gene_id", "ensembl_with_versions",
"differential_expression_mouse"
]
rules:
# NOTE As we're overriding the rules block for the included docker-run
@ -58,18 +59,18 @@ docker-run:
NF_BEFORE_SCRIPT: wget -O test_data.tar.gz https://ont-exd-int-s3-euwst1-epi2me-labs.s3.amazonaws.com/wf-isoforms/wf-isoforms_test_data.tar.gz && tar -xzvf test_data.tar.gz
NF_WORKFLOW_OPTS: "--fastq ERR6053095_chr20.fastq --transcriptome-source reference-guided \
--ref_genome chr20/hg38_chr20.fa --ref_annotation chr20/gencode.v22.annotation.chr20.gtf"
NF_IGNORE_PROCESSES: preprocess_reads,merge_transcriptomes,decompress_annotation,decompress_ref
NF_IGNORE_PROCESSES: preprocess_reads,merge_transcriptomes,decompress_annotation,decompress_ref,decompress_transcriptome,preprocess_ref_transcriptome
- if: $MATRIX_NAME == "denovo"
variables:
NF_WORKFLOW_OPTS: "--fastq test_data/fastq/SIRV_E0_PCS109_50.fq.gz --transcriptome_source denovo"
NF_IGNORE_PROCESSES: preprocess_reads,merge_transcriptomes,decompress_annotation,decompress_ref,build_minimap_index
NF_IGNORE_PROCESSES: preprocess_reads,merge_transcriptomes,decompress_annotation,decompress_ref,build_minimap_index,decompress_transcriptome,preprocess_ref_transcriptome
- if: $MATRIX_NAME == "fusions"
variables:
NF_BEFORE_SCRIPT: wget -O test_data.tar.gz https://ont-exd-int-s3-euwst1-epi2me-labs.s3.amazonaws.com/wf-isoforms/wf-isoforms_test_data.tar.gz && tar -xzvf test_data.tar.gz
NF_WORKFLOW_OPTS: "--fastq ERR6053095_chr20.fastq --transcriptome-source reference-guided \
--ref_genome chr20/hg38_chr20.fa --ref_annotation chr20/gencode.v22.annotation.chr20.gtf \
--jaffal_refBase chr20/ --jaffal_genome hg38_chr20 --jaffal_annotation genCode22"
NF_IGNORE_PROCESSES: preprocess_reads,merge_transcriptomes,decompress_annotation,decompress_ref
NF_IGNORE_PROCESSES: preprocess_reads,merge_transcriptomes,decompress_annotation,decompress_ref,decompress_transcriptome,preprocess_ref_transcriptome
- if: $MATRIX_NAME == "differential_expression"
variables:
NF_BEFORE_SCRIPT: wget -O differential_expression.tar.gz https://ont-exd-int-s3-euwst1-epi2me-labs.s3.amazonaws.com/wf-isoforms/differential_expression.tar.gz && tar -xzvf differential_expression.tar.gz
@ -78,7 +79,7 @@ docker-run:
--ref_genome differential_expression/hg38_chr20.fa --transcriptome-source reference-guided \
--ref_annotation differential_expression/gencode.v22.annotation.chr20.gtf \
--direct_rna --minimap2_index_opts '-k 15' --sample_sheet test_data/sample_sheet.csv"
NF_IGNORE_PROCESSES: preprocess_reads,merge_transcriptomes,decompress_annotation,decompress_ref
NF_IGNORE_PROCESSES: preprocess_reads,merge_transcriptomes,decompress_annotation,decompress_ref,decompress_transcriptome,preprocess_ref_transcriptome
- if: $MATRIX_NAME == "only_differential_expression"
variables:
NF_BEFORE_SCRIPT: wget -O differential_expression.tar.gz https://ont-exd-int-s3-euwst1-epi2me-labs.s3.amazonaws.com/wf-isoforms/differential_expression.tar.gz && tar -xzvf differential_expression.tar.gz
@ -92,7 +93,7 @@ docker-run:
--sample_sheet test_data/sample_sheet.csv"
NF_IGNORE_PROCESSES: >
preprocess_reads,merge_transcriptomes,assemble_transcripts,decompress_annotation,decompress_ref,
build_minimap_index,get_transcriptome,merge_gff_bundles,run_gffcompare,build_minimap_index,split_bam
build_minimap_index,get_transcriptome,merge_gff_bundles,run_gffcompare,build_minimap_index,split_bam,decompress_transcriptome,preprocess_ref_transcriptome
- if: $MATRIX_NAME == "differential_expression_gff3"
variables:
NF_BEFORE_SCRIPT: wget -O differential_expression.tar.gz https://ont-exd-int-s3-euwst1-epi2me-labs.s3.amazonaws.com/wf-isoforms/differential_expression.tar.gz && tar -xzvf differential_expression.tar.gz
@ -106,7 +107,7 @@ docker-run:
--sample_sheet test_data/sample_sheet.csv"
NF_IGNORE_PROCESSES: >
preprocess_reads,merge_transcriptomes,assemble_transcripts,decompress_annotation,decompress_ref,
build_minimap_index,get_transcriptome,merge_gff_bundles,run_gffcompare,build_minimap_index,split_bam
build_minimap_index,get_transcriptome,merge_gff_bundles,run_gffcompare,build_minimap_index,split_bam,decompress_transcriptome,preprocess_ref_transcriptome
- if: $MATRIX_NAME == "ncbi_gzip"
variables:
NF_BEFORE_SCRIPT: wget -O differential_expression_ncbi.tar.gz https://ont-exd-int-s3-euwst1-epi2me-labs.s3.amazonaws.com/wf-isoforms/differential_expression_ncbi.tar.gz && tar -xzvf differential_expression_ncbi.tar.gz
@ -120,7 +121,7 @@ docker-run:
--sample_sheet test_data/sample_sheet.csv"
NF_IGNORE_PROCESSES: >
preprocess_reads,merge_transcriptomes,assemble_transcripts,
build_minimap_index,get_transcriptome,merge_gff_bundles,run_gffcompare,build_minimap_index,split_bam
build_minimap_index,get_transcriptome,merge_gff_bundles,run_gffcompare,build_minimap_index,split_bam,decompress_transcriptome,preprocess_ref_transcriptome
- if: $MATRIX_NAME == "ncbi_no_gene_id"
variables:
NF_BEFORE_SCRIPT: wget -O differential_expression_ncbi.tar.gz https://ont-exd-int-s3-euwst1-epi2me-labs.s3.amazonaws.com/wf-isoforms/differential_expression_ncbi.tar.gz && tar -xzvf differential_expression_ncbi.tar.gz
@ -133,7 +134,7 @@ docker-run:
--transcriptome_assembly false --sample_sheet test_data/sample_sheet.csv"
NF_IGNORE_PROCESSES: >
preprocess_reads,merge_transcriptomes,assemble_transcripts,
build_minimap_index,get_transcriptome,merge_gff_bundles,run_gffcompare,build_minimap_index,split_bam
build_minimap_index,get_transcriptome,merge_gff_bundles,run_gffcompare,build_minimap_index,split_bam,decompress_transcriptome,preprocess_ref_transcriptome
- if: $MATRIX_NAME == "ensembl_with_versions"
variables:
NF_BEFORE_SCRIPT: wget -O differential_expression.tar.gz https://ont-exd-int-s3-euwst1-epi2me-labs.s3.amazonaws.com/wf-isoforms/differential_expression.tar.gz && tar -xzvf differential_expression.tar.gz
@ -146,4 +147,17 @@ docker-run:
--transcriptome_assembly false --sample_sheet test_data/sample_sheet.csv"
NF_IGNORE_PROCESSES: >
preprocess_reads,merge_transcriptomes,assemble_transcripts,
build_minimap_index,get_transcriptome,merge_gff_bundles,run_gffcompare,build_minimap_index,split_bam
build_minimap_index,get_transcriptome,merge_gff_bundles,run_gffcompare,build_minimap_index,split_bam,decompress_transcriptome,preprocess_ref_transcriptome
- if: $MATRIX_NAME == "differential_expression_mouse"
variables:
NF_BEFORE_SCRIPT: wget -O differential_expression_mouse.tar.gz https://ont-exd-int-s3-euwst1-epi2me-labs.s3.amazonaws.com/wf-isoforms/differential_expression_mouse.tar.gz && tar -xzvf differential_expression_mouse.tar.gz
NF_WORKFLOW_OPTS: "-executor.\\$$local.memory 16GB \
--fastq differential_expression_mouse/differential_expression_fastq \
--transcriptome-source precomputed --de_analysis \
--ref_genome differential_expression_mouse/GRCm39.genome.fa.gz \
--ref_annotation differential_expression_mouse/gencode.vM33.annotation.gtf \
--direct_rna --ref_transcriptome differential_expression_mouse/gencode.vM33.transcripts.fa.gz \
--transcriptome_assembly false --sample_sheet test_data/sample_sheet.csv"
NF_IGNORE_PROCESSES: >
preprocess_reads,merge_transcriptomes,assemble_transcripts,decompress_annotation,
build_minimap_index,get_transcriptome,merge_gff_bundles,run_gffcompare,build_minimap_index,split_bam

View File

@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [v0.3.1]
### Added
- Handling for input reference transcriptome headers that contain `|`
## [v0.3.0]
### Changed
- Improve differential expression outputs.

View File

@ -245,12 +245,13 @@ nextflow run epi2me-labs/wf-transcriptomes \
--ref_transcriptome differential_expression/ref_transcriptome.fasta \
--sample_sheet test_data/sample_sheet.csv
```
You can also run the differential expression section of the workflow on its own by providing a reference transcriptome and setting the transcriptome assembly parameter to false.
You can also run the differential expression section of the workflow on its own by providing a reference transcriptome and setting the `--transcriptome_source` to precomputed.
eg.
```
nextflow run epi2me-labs/wf-transcriptomes \
--fastq differential_expression/differential_expression_fastq \
--de_analysis \
--transcriptome_source precomputed \
--ref_genome differential_expression/hg38_chr20.fa \
--ref_annotation differential_expression/gencode.v22.annotation.chr20.gtf \
--direct_rna --minimap2_index_opts '-k 15' \

View File

@ -155,12 +155,13 @@ nextflow run epi2me-labs/wf-transcriptomes \
--ref_transcriptome differential_expression/ref_transcriptome.fasta \
--sample_sheet test_data/sample_sheet.csv
```
You can also run the differential expression section of the workflow on its own by providing a reference transcriptome and setting the transcriptome assembly parameter to false.
You can also run the differential expression section of the workflow on its own by providing a reference transcriptome and setting the `--transcriptome_source` to precomputed.
eg.
```
nextflow run epi2me-labs/wf-transcriptomes \
--fastq differential_expression/differential_expression_fastq \
--de_analysis \
--transcriptome_source precomputed \
--ref_genome differential_expression/hg38_chr20.fa \
--ref_annotation differential_expression/gencode.v22.annotation.chr20.gtf \
--direct_rna --minimap2_index_opts '-k 15' \

35
main.nf
View File

@ -58,6 +58,7 @@ process getParams {
}
process decompress_ref {
label "isoforms"
cpus 1
@ -83,6 +84,21 @@ process decompress_annotation {
"""
}
process decompress_transcriptome {
label "isoforms"
cpus 1
input:
path "compressed_ref.gz"
output:
path "compressed_ref", emit: decompressed_ref
"""
gzip -df "compressed_ref.gz"
"""
}
// Remove empty transcript ID fields
process preprocess_ref_annotation {
label "isoforms"
@ -97,6 +113,21 @@ process preprocess_ref_annotation {
"""
}
// Just keep transcript ID for each transcriptome fasta
process preprocess_ref_transcriptome {
label "isoforms"
cpus 1
input:
path "ref_transcriptome"
output:
path "ammended.${ref_transcriptome}"
"""
sed -i -e 's/|.*//' ${ref_transcriptome}
mv ${ref_transcriptome} "ammended.${ref_transcriptome}"
"""
}
process preprocess_reads {
/*
@ -581,6 +612,10 @@ workflow pipeline {
}
else {
transcriptome = Channel.fromPath(ref_transcriptome)
if (file(params.ref_transcriptome).extension == "gz") {
transcriptome = decompress_transcriptome(ref_transcriptome)
}
transcriptome = preprocess_ref_transcriptome(transcriptome)
gtf = ref_annotation
}
de = differential_expression(transcriptome, input_reads, sample_sheet, gtf)