Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
3285664
init demo
a-frantz Sep 3, 2025
7bc1e3a
revise: mv TOML out of tests dir and into main workspace
a-frantz Sep 9, 2025
cdb13f7
Merge branch 'main' into demonstration/sprocket-test
a-frantz Nov 18, 2025
6438780
switch from TOML to YAML
a-frantz Nov 18, 2025
62744f2
WIP
a-frantz Nov 19, 2025
a9cc715
fix: tests -> assertions
a-frantz Nov 19, 2025
e09621c
Update flag_filter.yaml
a-frantz Nov 19, 2025
75b39f7
Merge branch 'main' into demonstration/sprocket-test
a-frantz Nov 25, 2025
0be911a
feat: use Peter's top level mapping representation
a-frantz Nov 30, 2025
374392a
set up sprocket test infra
a-frantz Dec 9, 2025
d89fd65
picard: lower merge mem for testing
a-frantz Dec 11, 2025
81d9608
point to new fixtures
a-frantz Dec 11, 2025
5d97f28
Revert "picard: lower merge mem for testing"
a-frantz Dec 15, 2025
1b7235d
WIP
a-frantz Dec 27, 2025
881fa7a
delete pytest folder
a-frantz Dec 28, 2025
d2898f0
revise: change validate_read_group logic
a-frantz Dec 28, 2025
6c910ce
test data_structures
a-frantz Dec 28, 2025
64476ad
chore: log TODO
a-frantz Dec 28, 2025
c76f201
more tests
a-frantz Dec 28, 2025
2fb9d23
WIP: remove broken CI elements
a-frantz Dec 28, 2025
d1e0d99
add test depth (more bams and fastqs tested)
a-frantz Dec 29, 2025
51ad295
Update read_group.yaml
a-frantz Dec 29, 2025
2b7d0dd
nesting for test fixtures
a-frantz Dec 29, 2025
b3b9c27
deprecate fastqc
a-frantz Dec 29, 2025
038909d
log TODO
a-frantz Dec 29, 2025
77271b3
tests for fastp and fq
a-frantz Dec 29, 2025
5ed0866
mv reference vcfs to right dir
a-frantz Dec 29, 2025
8a186b6
Create gatk4.yaml
a-frantz Dec 29, 2025
52da94c
WIP
a-frantz Dec 29, 2025
da5d286
Merge branch 'main' into demonstration/sprocket-test
a-frantz Dec 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .github/workflows/build-and-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,3 @@ jobs:
call-build:
uses: ./.github/workflows/docker-build.yaml
secrets: inherit
call-test:
uses: ./.github/workflows/pytest.yaml
needs: call-build
56 changes: 0 additions & 56 deletions .github/workflows/pytest.yaml

This file was deleted.

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
pytest/
# Ignore common bioinformatics formats used in these workflows.
# But only if they are in the root of this repo
/*.fastq.gz
Expand Down
16 changes: 5 additions & 11 deletions data_structures/read_group.wdl
Original file line number Diff line number Diff line change
Expand Up @@ -156,15 +156,13 @@ task validate_read_group {

input {
ReadGroup read_group
Array[String] required_fields = []
Array[String] required_fields = ["SM"]
Boolean restrictive = true
}

# The SAM spec allows any printable ASCII character in header fields.
String sam_spec_pattern = "[\\ -~]+"
# We have the opinion that is too permissive for ID and SM.
String id_pattern = "id"
String sample_pattern = "sample.?"
String restrictive_pattern = "\\ " # Disallow spaces
Array[String] platforms = [
"CAPILLARY", "DNBSEQ", "ELEMENT", "HELICOS", "ILLUMINA", "IONTORRENT", "LS454",
Expand All @@ -174,11 +172,9 @@ task validate_read_group {
command <<<
exit_code=0
if ~{restrictive}; then
if [[ ~{read_group.ID} =~ ^~{id_pattern}$ ]] \
|| [[ ~{read_group.ID} =~ ~{restrictive_pattern} ]]
if [[ "~{read_group.ID}" =~ ~{restrictive_pattern} ]]
then
>&2 echo "ID (~{read_group.ID}) must not match patterns:"
>&2 echo "'~{id_pattern}' or '~{restrictive_pattern}'"
>&2 echo "ID must not contain spaces"
exit_code=1
fi
fi
Expand All @@ -194,11 +190,9 @@ task validate_read_group {
fi
if ~{defined(read_group.SM)}; then
if ~{restrictive}; then
if [[ "~{read_group.SM}" =~ ^~{sample_pattern}$ ]] \
|| [[ "~{read_group.SM}" =~ ~{restrictive_pattern} ]]
if [[ "~{read_group.SM}" =~ ~{restrictive_pattern} ]]
then
>&2 echo "SM must not match patterns:"
>&2 echo "'~{sample_pattern}' or '~{restrictive_pattern}'"
>&2 echo "SM must not contain spaces"
exit_code=1
fi
fi
Expand Down
50 changes: 50 additions & 0 deletions data_structures/test/flag_filter.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
validate_string_is_12bit_int:
- name: valid_numbers
inputs:
number:
- "5"
- "0x900"
- "01"
- "4095"
assertions:
stderr:
- Input number \(.*\) is valid
- name: invalid_numbers
inputs:
number:
- "0x1000"
- ""
- "string"
- this is not a number
- "000000000011"
- "-1"
assertions:
exit_code: 42
stderr:
- Input number \(.*\) is invalid
- name: too_big_decimal_fails
inputs:
number:
- "4096"
assertions:
exit_code: 42
stderr:
- Input number \(.*\) interpreted as decimal
- But number must be less than 4096!
validate_flag_filter:
- name: valid_FlagFilter_passes
inputs:
flags:
- include_if_all: "3"
exclude_if_any: "0xF04"
include_if_any: "03"
exclude_if_all: "4095"
- name: invalid_FlagFilter_fails
inputs:
flags:
- include_if_all: "3"
exclude_if_any: "0xF04"
include_if_any: "03"
exclude_if_all: "" # empty string should trigger a fail
assertions:
should_fail: true
Loading
Loading