Merge branch 'jaffal_crash' into 'dev'
Fix for when JAFFAL returns exit status 1 when no fusions are found See merge request epi2melabs/workflows/wf-transcriptomes!80
This commit is contained in:
commit
7040a043d4
@ -12,9 +12,6 @@ variables:
|
||||
|
||||
docker-run:
|
||||
|
||||
# Remove this directive in downstream templates
|
||||
tags: [large_ram] # no need for big ram
|
||||
|
||||
# Define a 1D job matrix to inject a variable named MATRIX_NAME into
|
||||
# the CI environment, we can use the value of MATRIX_NAME to determine
|
||||
# which options to apply as part of the rules block below
|
||||
|
||||
@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Demo differential expression data in repository.
|
||||
- Improved DE explanation in docs
|
||||
### Fixed
|
||||
- Fix JAFFAL terminating workflow when no fusions found.
|
||||
- Error if condition sheet and sample sheet don't match.
|
||||
|
||||
## [v0.1.5]
|
||||
|
||||
@ -791,31 +791,43 @@ def jaffal_table(report, result_csv):
|
||||
'sample_id', 'fusion genes', 'chrom1', 'chrom2', 'spanning reads',
|
||||
'classification', 'known']
|
||||
|
||||
df = pd.read_csv(result_csv)
|
||||
sid_col = df.pop('sample_id')
|
||||
df.insert(0, 'sample_id', sid_col)
|
||||
|
||||
df = df[cols]
|
||||
df['chroms'] = df.chrom1.astype(str) + ':' + df.chrom2.astype(str)
|
||||
df.rename(columns={
|
||||
'spanning reads': 'nreads',
|
||||
'fusion genes': 'genes'}, inplace=True)
|
||||
df.drop(columns=['chrom1', 'chrom2'], inplace=True)
|
||||
section = report.add_section()
|
||||
section.markdown("""
|
||||
### JAFFAL fusion transcript summary
|
||||
try:
|
||||
df = pd.read_csv(result_csv)
|
||||
except pd.errors.EmptyDataError:
|
||||
section.markdown("""
|
||||
### JAFFAL fusion transcript summary
|
||||
|
||||
This table summarizes putative fusion transcripts identified
|
||||
by [JAFFAL](https://github.com/Oshlack/JAFFA/).
|
||||
This section summarizes putative fusion transcripts identified
|
||||
by [JAFFAL](https://github.com/Oshlack/JAFFA/).
|
||||
|
||||
* genes: the gene symbols of the fusion partners
|
||||
* nreads: The number of reads supporting the fusion
|
||||
* classification: JAFFAL's classification
|
||||
* known: whether this fusion is in the given set of known gene fusions
|
||||
* chroms: the respective, original chromosome location of the two partner
|
||||
genes
|
||||
""")
|
||||
section.table(df)
|
||||
No fusion transcripts detected for current sample.
|
||||
""")
|
||||
else:
|
||||
sid_col = df.pop('sample_id')
|
||||
df.insert(0, 'sample_id', sid_col)
|
||||
|
||||
df = df[cols]
|
||||
df['chroms'] = df.chrom1.astype(str) + ':' + df.chrom2.astype(str)
|
||||
df.rename(columns={
|
||||
'spanning reads': 'nreads',
|
||||
'fusion genes': 'genes'}, inplace=True)
|
||||
df.drop(columns=['chrom1', 'chrom2'], inplace=True)
|
||||
|
||||
section.markdown("""
|
||||
### JAFFAL fusion transcript summary
|
||||
|
||||
This table summarizes putative fusion transcripts identified
|
||||
by [JAFFAL](https://github.com/Oshlack/JAFFA/).
|
||||
|
||||
* genes: the gene symbols of the fusion partners
|
||||
* nreads: The number of reads supporting the fusion
|
||||
* classification: JAFFAL's classification
|
||||
* known: whether this fusion is in the given set of known gene fusions
|
||||
* chroms: the respective, original chromosome location of the
|
||||
two partner genes
|
||||
""")
|
||||
section.table(df)
|
||||
|
||||
|
||||
def de_section(report):
|
||||
|
||||
1
main.nf
1
main.nf
@ -454,7 +454,6 @@ workflow pipeline {
|
||||
jaffal_out = file("$projectDir/data/OPTIONAL_FILE_1")
|
||||
}
|
||||
|
||||
|
||||
get_transcriptome(
|
||||
merge_gff_bundles.out.gff
|
||||
.join(run_gffcompare.out.gffcmp_dir)
|
||||
|
||||
@ -12,6 +12,8 @@ process jaffal{
|
||||
script:
|
||||
"""
|
||||
JAFFAOUT=jaffal_output_$sample_id
|
||||
|
||||
# JAFFAL exists with status code 1 when there's 0 fusion hits. Prevent this with '||:'
|
||||
$params.jaffal_dir/tools/bin/bpipe run \
|
||||
-n $params.threads \
|
||||
-p jaffa_output="\$JAFFAOUT/" \
|
||||
@ -20,14 +22,26 @@ process jaffal{
|
||||
-p annotation=$annotation \
|
||||
-p fastqInputFormat="*.fastq" \
|
||||
$params.jaffal_dir/JAFFAL.groovy \
|
||||
$fastq
|
||||
mv "\$JAFFAOUT/jaffa_results.csv" "\$JAFFAOUT/${sample_id}_jaffa_results.csv"
|
||||
$fastq || :
|
||||
|
||||
# Add sample id column
|
||||
sed "s/\$/,${sample_id}/" \$JAFFAOUT/${sample_id}_jaffa_results.csv > tmp1
|
||||
# Add header
|
||||
sed "1 s/${sample_id}/sample_id/" tmp1 > tmp2
|
||||
mv tmp2 \$JAFFAOUT/${sample_id}_jaffa_results.csv
|
||||
summary="\$JAFFAOUT/all/all.summary"
|
||||
|
||||
if [ -f \$summary ]; then
|
||||
# The summary is writtten so assume JAFFAL completed.
|
||||
if [ ! -s \$summary ]; then
|
||||
echo "JAFFAL failed to find any fusion transcripts for ${sample_id}"
|
||||
touch "\$JAFFAOUT/${sample_id}_jaffa_results.csv"
|
||||
else
|
||||
echo JAFFAL found fusion transcripts for ${sample_id}
|
||||
mv "\$JAFFAOUT/jaffa_results.csv" "\$JAFFAOUT/${sample_id}_jaffa_results.csv"
|
||||
# Add sample id column and header
|
||||
sed "s/\$/,${sample_id}/" \$JAFFAOUT/${sample_id}_jaffa_results.csv \
|
||||
| sed "1 s/${sample_id}/sample_id/" > tmp
|
||||
mv tmp \$JAFFAOUT/${sample_id}_jaffa_results.csv
|
||||
fi
|
||||
else
|
||||
echo JAFFAL encountered an error while prosessing ${sample_id}
|
||||
fi
|
||||
"""
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user