Skip to content

Commit

Permalink
add test, test data, version, help
Browse files Browse the repository at this point in the history
  • Loading branch information
emmarousseau committed Sep 23, 2024
1 parent 6ddfd7d commit a64fa69
Show file tree
Hide file tree
Showing 7 changed files with 103 additions and 14 deletions.
20 changes: 10 additions & 10 deletions src/rseqc/rseqc_bamstat/config.vsh.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,31 +20,28 @@ argument_groups:
- name: "--input"
type: file
required: true
description: input alignment file in BAM or SAM format

description: Input alignment file in BAM or SAM format.
- name: "--map_qual"
type: integer
required: false
default: 30
description: Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30.
min: 0
example: 30
description: |
Minimum mapping quality (phred scaled) to determine uniquely mapped reads. Default: '30'.
- name: "Output"
arguments:
- name: "--output"
type: file
direction: output
required: false
default: $id.mapping_quality.txt
description: output file (txt) with mapping quality statistics
description: Output file (txt) with mapping quality statistics.

resources:
- type: bash_script
path: script.sh
test_resources:
- type: bash_script
path: test.sh
- path: /testData/unit_test_resources/sarscov2/test.paired_end.sorted.bam
- type: file
path: test_data

engines:
- type: docker
Expand All @@ -54,6 +51,9 @@ engines:
packages: [ python3-pip ]
- type: python
packages: [ RSeQC ]
- type: docker
run: |
echo "RSeQC bam_stat.py: $(bam_stat.py --version | cut -d' ' -f2-)" > /var/software_versions.txt
runners:
- type: executable
- type: nextflow
18 changes: 18 additions & 0 deletions src/rseqc/rseqc_bamstat/help.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
```
bam_stat.py -h
```

Usage: bam_stat.py [options]

Summarizing mapping statistics of a BAM or SAM file.



Options:
--version show program's version number and exit
-h, --help show this help message and exit
-i INPUT_FILE, --input-file=INPUT_FILE
Alignment file in BAM or SAM format.
-q MAP_QUAL, --mapq=MAP_QUAL
Minimum mapping quality (phred scaled) to determine
"uniquely mapped" reads. default=30
5 changes: 3 additions & 2 deletions src/rseqc/rseqc_bamstat/script.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#!/bin/bash


set -eo pipefail

bam_stat.py \
--input $par_input \
--mapq $par_map_qual \
--input "${par_input}" \
${par_map_qual:+--mapq "${par_map_qual}"} \
> $par_output
30 changes: 28 additions & 2 deletions src/rseqc/rseqc_bamstat/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,41 @@ output_summary="mapping_quality.txt"
echo "> Running $meta_functionality_name."

"$meta_executable" \
--input "$meta_resources_dir/$input_bam" \
--input "$meta_resources_dir/test_data/$input_bam" \
--output "$output_summary"

exit_code=$?
[[ $exit_code != 0 ]] && echo "Non zero exit code: $exit_code" && exit 1

echo ">> Checking whether output can be found and has content"
echo ">> Checking whether output is present"
[ ! -f "$output_summary" ] && echo "$output_summary file missing" && exit 1
[ ! -s "$output_summary" ] && echo "$output_summary file is empty" && exit 1

echo ">> Checking whether output is correct"
diff "$meta_resources_dir/test_data/ref_output.txt" "$meta_resources_dir/$output_summary" || { echo "Output is not correct"; exit 1; }

#############################################################################

echo ">>> Test 2: Test with non-default mapping quality threshold"

output_summary="mapping_quality_mapq_30.txt"

# run executable and tests
echo "> Running $meta_functionality_name."

"$meta_executable" \
--input "$meta_resources_dir/test_data/$input_bam" \
--output "$output_summary" \
--map_qual 50

exit_code=$?
[[ $exit_code != 0 ]] && echo "Non zero exit code: $exit_code" && exit 1

echo ">> Checking whether output is present"
[ ! -f "$output_summary" ] && echo "$output_summary file missing" && exit 1
[ ! -s "$output_summary" ] && echo "$output_summary file is empty" && exit 1

echo ">> Checking whether output is correct"
diff "$meta_resources_dir/test_data/ref_output_mapq.txt" "$meta_resources_dir/$output_summary" || { echo "Output is not correct"; exit 1; }

exit 0
22 changes: 22 additions & 0 deletions src/rseqc/rseqc_bamstat/test_data/ref_output.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

#==================================================
#All numbers are READ count
#==================================================

Total records: 200

QC failed: 0
Optical/PCR duplicate: 0
Non primary hits 0
Unmapped reads: 3
mapq < mapq_cut (non-unique): 1

mapq >= mapq_cut (unique): 196
Read-1: 99
Read-2: 97
Reads map to '+': 98
Reads map to '-': 98
Non-splice reads: 196
Splice reads: 0
Reads mapped in proper pairs: 192
Proper-paired reads map to different chrom:0
22 changes: 22 additions & 0 deletions src/rseqc/rseqc_bamstat/test_data/ref_output_mapq.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

#==================================================
#All numbers are READ count
#==================================================

Total records: 200

QC failed: 0
Optical/PCR duplicate: 0
Non primary hits 0
Unmapped reads: 3
mapq < mapq_cut (non-unique): 20

mapq >= mapq_cut (unique): 177
Read-1: 88
Read-2: 89
Reads map to '+': 96
Reads map to '-': 81
Non-splice reads: 177
Splice reads: 0
Reads mapped in proper pairs: 175
Proper-paired reads map to different chrom:0
Binary file not shown.

0 comments on commit a64fa69

Please sign in to comment.