Skip to content

Commit

Permalink
tests added
Browse files Browse the repository at this point in the history
  • Loading branch information
jakubmajercik committed Jun 27, 2024
1 parent ceef2ef commit 2682d39
Show file tree
Hide file tree
Showing 10 changed files with 145 additions and 0 deletions.
54 changes: 54 additions & 0 deletions src/seqtk/seqtk_sample/config.vsh.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: seqtk_sample
namespace: seqtk
description: Subsamples sequences from FASTA/Q files.
keywords: [tag1, tag2]
links:
repository: https://github.com/lh3/seqtk/tree/v1.4
license: MIT

argument_groups:
- name: Inputs
arguments:
- name: --input
type: file
description: The input FASTA/Q file.
required: true

- name: Outputs
arguments:
- name: --output
type: file
description: The output FASTA/Q file.
required: true
direction: output

- name: Options
arguments:
- name: --seed
type: integer
description: Seed for random generator.
default: 42
- name: --fraction_number
type: double
description: Fraction or number of sequences to sample.
default: 0.1
- name: --two_pass_mode
type: boolean
description: twice as slow but with much reduced memory
default: false

resources:
- type: bash_script
path: script.sh
test_resources:
- type: bash_script
path: test.sh
- type: file
path: test_data

engines:
- type: docker
image: quay.io/biocontainers/seqtk:1.4--he4a0461_2
runners:
- type: executable
- type: nextflow
7 changes: 7 additions & 0 deletions src/seqtk/seqtk_sample/help.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
```
seqtk_sample
```
Usage: seqtk sample [-2] [-s seed=11] <in.fa> <frac>|<number> > <out.fa>

Options: -s INT RNG seed [11]
-2 2-pass mode: twice as slow but with much reduced memory
11 changes: 11 additions & 0 deletions src/seqtk/seqtk_sample/script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash

## VIASH START
## VIASH END

seqtk sample \
${par_2_pass_mode:+-2} \
${par_seed:+-s "$par_seed"} \
"$par_input" \
"$par_fraction_number" \
> "$par_output"
59 changes: 59 additions & 0 deletions src/seqtk/seqtk_sample/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#!/bin/bash

set -e

## VIASH START
meta_executable="target/executable/seqtk/seqtk_sample"
meta_resources_dir="src/seqtk/seqtk_sample"
## VIASH END

#########################################################################################
mkdir seqtk_sample_se
cd seqtk_sample_se

echo "> Run seqtk_sample on SE with fastq"
"$meta_executable" \
--input "$meta_resources_dir/test_data/reads/a.fastq" \
--seed 42 \
--fraction_number 3 \
--output "sampled.fastq"

echo ">> Check if output exists"
if [ ! -f "sampled.fastq" ]; then
echo ">> sampled.fastq.gz does not exist"
exit 1
fi

cat sampled.fastq

#########################################################################################
cd ..
mkdir seqtk_sample_pe
cd seqtk_sample_pe

echo ">> Run seqtk_sample on PE with fastq.gz"
"$meta_executable" \
--input "$meta_resources_dir/test_data/reads/a.1.fastq.gz" \
--seed 42 \
--fraction_number 3 \
--output "sampled_1.fastq"

"$meta_executable" \
--input "$meta_resources_dir/test_data/reads/a.2.fastq.gz" \
--seed 42 \
--fraction_number 3 \
--output "sampled_2.fastq"

echo ">> Check if output exists"
if [ ! -f "sampled_1.fastq" ] || [ ! -f "sampled_2.fastq" ]; then
echo ">> One or both output files do not exist"
exit 1
fi

echo ">> Compare reads"
# Extract headers
headers1=$(grep '^@' sampled_1.fastq | sed -e's/ 1$//' | sort)
headers2=$(grep '^@' sampled_2.fastq | sed -e 's/ 2$//' | sort)

# Compare headers
diff <(echo "$headers1") <(echo "$headers2") || echo "Mismatch detected" && exit 1
Binary file added src/seqtk/seqtk_sample/test_data/reads/a.1.fastq.gz
Binary file not shown.
Binary file added src/seqtk/seqtk_sample/test_data/reads/a.2.fastq.gz
Binary file not shown.
4 changes: 4 additions & 0 deletions src/seqtk/seqtk_sample/test_data/reads/a.fastq
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@1
ACGGCAT
+
!!!!!!!
Binary file added src/seqtk/seqtk_sample/test_data/reads/a.fastq.gz
Binary file not shown.
1 change: 1 addition & 0 deletions src/seqtk/seqtk_sample/test_data/reads/id.list
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1
9 changes: 9 additions & 0 deletions src/seqtk/seqtk_sample/test_data/script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# clone repo
if [ ! -d /tmp/snakemake-wrappers ]; then
git clone --depth 1 --single-branch --branch master https://github.com/snakemake/snakemake-wrappers /tmp/snakemake-wrappers
fi

# copy test data
cp -r /tmp/snakemake-wrappers/bio/seqtk/test/* src/seqtk/seqtk_sample/test_data

rm src/seqtk/seqtk_sample/test_data/Snakefile

0 comments on commit 2682d39

Please sign in to comment.