From 3eab96d98c9cf4b4a31335cfab017f10935e19f3 Mon Sep 17 00:00:00 2001 From: mgcam Date: Tue, 15 Oct 2024 09:50:32 +0100 Subject: [PATCH 1/4] Disallow emply applicability criteria (#879) --- Changes | 8 ++++ MANIFEST | 2 + lib/npg_qc/autoqc/checks/review.pm | 44 ++++++++++++------- t/60-autoqc-checks-review.t | 38 +++++++++++----- .../product_release.yml | 36 +++++++++++++++ .../review/mqc_type/product_release.yml | 2 + .../product_release.yml | 37 ++++++++++++++++ 7 files changed, 141 insertions(+), 26 deletions(-) create mode 100644 t/data/autoqc/review/lims_applicability_empty/product_release.yml create mode 100644 t/data/autoqc/review/no_known_applicability_type/product_release.yml diff --git a/Changes b/Changes index eff1f0ea..86cac412 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,13 @@ LIST OF CHANGES FOR NPG-QC PACKAGE + - Previously the code allowed for an empty applicability_criteria hash, which + resulted in a particular set of QC criteria being applied to every and any + product. Very early on this was an intended behaviour for UKB data. The main + filter was the study id. The default section of the product configuration + file does not have an external filter, so there is a real danger of the + review check being run indiscriminately for any product. While this will + never be an intention, small errors in the YML file might have this effect. + release 72.2.1 (2024-10-04) - Added .github/dependabot.yml file to auto-update GitHub actions - GitHub CI - updated deprecated v2 runner action to v3 diff --git a/MANIFEST b/MANIFEST index f41f24c7..7951deeb 100644 --- a/MANIFEST +++ b/MANIFEST @@ -520,6 +520,8 @@ t/data/autoqc/review/with_na_criteria/product_release.yml t/data/autoqc/review/no_criteria_section/product_release.yml t/data/autoqc/review/not_hash/product_release.yml t/data/autoqc/review/mqc_type/product_release.yml +t/data/autoqc/review/lims_applicability_empty/product_release.yml +t/data/autoqc/review/no_known_applicability_type/product_release.yml t/data/autoqc/review/unknown_qc_type/product_release.yml t/data/autoqc/review/uqc_type/product_release.yml t/data/autoqc/review/default_and_study_section/product_release.yml diff --git a/lib/npg_qc/autoqc/checks/review.pm b/lib/npg_qc/autoqc/checks/review.pm index 4c1972ab..85eb3bc5 100644 --- a/lib/npg_qc/autoqc/checks/review.pm +++ b/lib/npg_qc/autoqc/checks/review.pm @@ -29,6 +29,9 @@ Readonly::Scalar my $QC_TYPE_KEY => q[qc_type]; Readonly::Scalar my $APPLICABILITY_CRITERIA_KEY => q[applicability_criteria]; Readonly::Scalar my $LIMS_APPLICABILITY_CRITERIA_KEY => q[lims]; Readonly::Scalar my $SEQ_APPLICABILITY_CRITERIA_KEY => q[sequencing_run]; +Readonly::Array my @APPLICABILITY_CRITERIA_TYPES => ( + $LIMS_APPLICABILITY_CRITERIA_KEY, $SEQ_APPLICABILITY_CRITERIA_KEY + ); Readonly::Scalar my $ACCEPTANCE_CRITERIA_KEY => q[acceptance_criteria]; Readonly::Scalar my $QC_TYPE_DEFAULT => q[mqc]; @@ -514,31 +517,42 @@ has '_applicable_criteria' => ( sub _build__applicable_criteria { my $self = shift; - my $criteria_objs = $self->_robo_config->{$CRITERIA_KEY}; my @applicable = (); - foreach my $co ( @{$criteria_objs} ) { + foreach my $criteria_definition ( @{$self->_robo_config->{$CRITERIA_KEY}} ) { + + my $applicability_definition = $criteria_definition->{$APPLICABILITY_CRITERIA_KEY}; + $applicability_definition or croak + "$APPLICABILITY_CRITERIA_KEY is not defined for one of RoboQC criteria"; + my $c_applicable = 1; - for my $c_type ($LIMS_APPLICABILITY_CRITERIA_KEY, $SEQ_APPLICABILITY_CRITERIA_KEY) { - my $c = $co->{$APPLICABILITY_CRITERIA_KEY}->{$c_type}; - if ($c && !$self->_applicability($c, $c_type)) { - $c_applicable = 0; - last; - } + my $one_found = 0; + for my $c_type (@APPLICABILITY_CRITERIA_TYPES) { + exists $applicability_definition->{$c_type} or next; + $one_found = 1; + my $ac = $applicability_definition->{$c_type}; + (defined $ac and keys %{$ac}) or croak + "$c_type type applicability criteria is not defined"; + $c_applicable = $self->_is_applicable($c_type, $ac); + !$c_applicable && last; # Stop on the first non applicable. } - $c_applicable or next; - push @applicable, $co; + $one_found or croak 'None of known applicability type criteria is defined. ' . + 'Known types: ' . join q[, ], @APPLICABILITY_CRITERIA_TYPES; + $c_applicable && push @applicable, $criteria_definition; # Save if fully applicable. } return \@applicable; } -sub _applicability { - my ($self, $acriteria, $criteria_type) = @_; +sub _is_applicable { + my ($self, $criteria_type, $acriteria) = @_; - ($acriteria && $criteria_type) or croak - 'The criterium and its type type should be defined'; + $criteria_type or croak + 'Applicability criteria type is not defined'; + $acriteria or croak + "$criteria_type applicability criteria is not defined"; (ref $acriteria eq 'HASH') or croak sprintf - '%s section should be a hash in a robo config for %', $criteria_type, $self->_entity_desc; + '%s section should be a hash in a robo config for %', + $criteria_type, $self->_entity_desc; my $test = {}; foreach my $prop ( keys %{$acriteria} ) { diff --git a/t/60-autoqc-checks-review.t b/t/60-autoqc-checks-review.t index b2f74853..968dd2a2 100644 --- a/t/60-autoqc-checks-review.t +++ b/t/60-autoqc-checks-review.t @@ -33,7 +33,7 @@ my $criteria_list = [ ]; subtest 'constructing object, deciding whether to run' => sub { - plan tests => 29; + plan tests => 33; my $check = npg_qc::autoqc::checks::review->new( conf_path => $test_data_dir, @@ -147,8 +147,10 @@ subtest 'constructing object, deciding whether to run' => sub { conf_path => "$test_data_dir/no_applicability4single", qc_in => $test_data_dir, rpt_list => '27483:1:2'); - ok ($check->can_run, 'can_run returns true'); - ok (!$check->result->comments, 'No comments logged'); + ok (!$check->can_run, 'can_run returns false'); + like ($check->result->comments, + qr/applicability_criteria is not defined for one of RoboQC criteria/, + 'Error logged'); $check = npg_qc::autoqc::checks::review->new( conf_path => "$test_data_dir/with_na_criteria", @@ -158,10 +160,31 @@ subtest 'constructing object, deciding whether to run' => sub { is ($check->result->comments, 'None of the RoboQC applicability criteria is satisfied', 'Comment logged'); + + local $ENV{NPG_CACHED_SAMPLESHEET_FILE} = + 't/data/autoqc/review/samplesheet_29524.csv'; + + $check = npg_qc::autoqc::checks::review->new( + conf_path => "$test_data_dir/no_known_applicability_type", + qc_in => $test_data_dir, + rpt_list => '27483:1:2'); + ok (!$check->can_run, 'can_run returns false'); + like ($check->result->comments, + qr/None of known applicability type criteria is defined/, + 'Error logged'); + + $check = npg_qc::autoqc::checks::review->new( + conf_path => "$test_data_dir/lims_applicability_empty", + qc_in => $test_data_dir, + rpt_list => '27483:1:2'); + ok (!$check->can_run, 'can_run returns false'); + like ($check->result->comments, + qr/lims type applicability criteria is not defined/, + 'Error logged'); }; subtest 'caching appropriate criteria object' => sub { - plan tests => 3; + plan tests => 2; my $check = npg_qc::autoqc::checks::review->new( conf_path => "$test_data_dir/with_criteria", @@ -171,13 +194,6 @@ subtest 'caching appropriate criteria object' => sub { is_deeply ($check->_criteria, {'and' => \@list}, 'criteria parsed correctly'); - $check = npg_qc::autoqc::checks::review->new( - conf_path => "$test_data_dir/no_applicability4single", - qc_in => $test_data_dir, - rpt_list => '27483:1:2'); - is_deeply ($check->_criteria, {'and' => $criteria_list}, - 'criteria parsed correctly'); - $check = npg_qc::autoqc::checks::review->new( conf_path => "$test_data_dir/with_na_criteria", qc_in => $test_data_dir, diff --git a/t/data/autoqc/review/lims_applicability_empty/product_release.yml b/t/data/autoqc/review/lims_applicability_empty/product_release.yml new file mode 100644 index 00000000..f76137d5 --- /dev/null +++ b/t/data/autoqc/review/lims_applicability_empty/product_release.yml @@ -0,0 +1,36 @@ +--- +default: + s3: + enable: false + url: null + notify: false + irods: + enable: true + notify: false + +study: + - study_id: "5392" + s3: + enable: true + url: "gs://profile_one-europe-west2" + date_binning: true + customer_name: "UK Organisation" + profile: "profile_one" + notify: true + receipts: "/data_product_receipts/5392/" + irods: + enable: false + notify: true + merge: + component_cache_dir: "/merge_component_cache/5392/" + robo_qc: + qc_type: "mqc" + criteria: + - applicability_criteria: + lims: + acceptance_criteria : + - "( bam_flagstats.target_proper_pair_mapped_reads / bam_flagstats.target_mapped_reads ) > 0.95" + - "bam_flagstats.target_mapped_bases > 85_000_000_000" + - "bam_flagstats.target_percent_gt_coverage_threshold > 95" + - "verify_bam_id.freemix < 0.01" + - "( bcfstats.genotypes_nrd_dividend / bcfstats.genotypes_nrd_divisor ) < 0.02" diff --git a/t/data/autoqc/review/mqc_type/product_release.yml b/t/data/autoqc/review/mqc_type/product_release.yml index b0db0bd6..7fcdc3d8 100644 --- a/t/data/autoqc/review/mqc_type/product_release.yml +++ b/t/data/autoqc/review/mqc_type/product_release.yml @@ -27,6 +27,8 @@ study: qc_type: "mqc" criteria: - applicability_criteria: + lims: + library_type: "HiSeqX PCR free" acceptance_criteria : - "( bam_flagstats.target_proper_pair_mapped_reads / bam_flagstats.target_mapped_reads ) > 0.95" - "bam_flagstats.target_mapped_bases > 85_000_000_000" diff --git a/t/data/autoqc/review/no_known_applicability_type/product_release.yml b/t/data/autoqc/review/no_known_applicability_type/product_release.yml new file mode 100644 index 00000000..64070318 --- /dev/null +++ b/t/data/autoqc/review/no_known_applicability_type/product_release.yml @@ -0,0 +1,37 @@ +--- +default: + s3: + enable: false + url: null + notify: false + irods: + enable: true + notify: false + +study: + - study_id: "5392" + s3: + enable: true + url: "gs://profile_one-europe-west2" + date_binning: true + customer_name: "UK Organisation" + profile: "profile_one" + notify: true + receipts: "/data_product_receipts/5392/" + irods: + enable: false + notify: true + merge: + component_cache_dir: "/merge_component_cache/5392/" + robo_qc: + qc_type: "mqc" + criteria: + - applicability_criteria: + libs: + library_type: "HiSeqX PCR free" + acceptance_criteria : + - "( bam_flagstats.target_proper_pair_mapped_reads / bam_flagstats.target_mapped_reads ) > 0.95" + - "bam_flagstats.target_mapped_bases > 85_000_000_000" + - "bam_flagstats.target_percent_gt_coverage_threshold > 95" + - "verify_bam_id.freemix < 0.01" + - "( bcfstats.genotypes_nrd_dividend / bcfstats.genotypes_nrd_divisor ) < 0.02" From b066d57e8022616170f2d93327ab30eb03027e32 Mon Sep 17 00:00:00 2001 From: mgcam Date: Tue, 15 Oct 2024 13:56:07 +0100 Subject: [PATCH 2/4] Dropped uqc QC type for the review check (#877) --- Changes | 19 ++- MANIFEST | 1 - lib/npg_qc/autoqc/checks/review.pm | 30 ++--- t/50-schema-result-Review.t | 124 +----------------- t/60-autoqc-checks-review.t | 16 +-- .../review/uqc_type/product_release.yml | 38 ------ 6 files changed, 26 insertions(+), 202 deletions(-) delete mode 100644 t/data/autoqc/review/uqc_type/product_release.yml diff --git a/Changes b/Changes index 86cac412..f34ef4bb 100644 --- a/Changes +++ b/Changes @@ -1,12 +1,17 @@ LIST OF CHANGES FOR NPG-QC PACKAGE - - Previously the code allowed for an empty applicability_criteria hash, which - resulted in a particular set of QC criteria being applied to every and any - product. Very early on this was an intended behaviour for UKB data. The main - filter was the study id. The default section of the product configuration - file does not have an external filter, so there is a real danger of the - review check being run indiscriminately for any product. While this will - never be an intention, small errors in the YML file might have this effect. + - npg_qc::autoqc::check::review: + 1. Previously the code allowed for an empty applicability_criteria hash, + which resulted in a particular set of QC criteria being applied to every + and any product. Very early on this was an intended behaviour for UKB + data. The main filter was the study id. The default section of the product + configuration file does not have an external filter, so there is a real + danger of the review check being run indiscriminately for any product. + While this will never be an intention, small errors in the YML file might + have this effect. + 2. Ability to set UQC outcomes was introduced for the Heron project. This + functionality was never used and is unlikely to be used in future, it is + now removed. release 72.2.1 (2024-10-04) - Added .github/dependabot.yml file to auto-update GitHub actions diff --git a/MANIFEST b/MANIFEST index 7951deeb..dcb93320 100644 --- a/MANIFEST +++ b/MANIFEST @@ -523,7 +523,6 @@ t/data/autoqc/review/mqc_type/product_release.yml t/data/autoqc/review/lims_applicability_empty/product_release.yml t/data/autoqc/review/no_known_applicability_type/product_release.yml t/data/autoqc/review/unknown_qc_type/product_release.yml -t/data/autoqc/review/uqc_type/product_release.yml t/data/autoqc/review/default_and_study_section/product_release.yml t/data/autoqc/review/default_section/product_release.yml t/data/autoqc/review/wrong_default_and_study_section/product_release.yml diff --git a/lib/npg_qc/autoqc/checks/review.pm b/lib/npg_qc/autoqc/checks/review.pm index 85eb3bc5..74ef255b 100644 --- a/lib/npg_qc/autoqc/checks/review.pm +++ b/lib/npg_qc/autoqc/checks/review.pm @@ -35,7 +35,7 @@ Readonly::Array my @APPLICABILITY_CRITERIA_TYPES => ( Readonly::Scalar my $ACCEPTANCE_CRITERIA_KEY => q[acceptance_criteria]; Readonly::Scalar my $QC_TYPE_DEFAULT => q[mqc]; -Readonly::Array my @VALID_QC_TYPES => ($QC_TYPE_DEFAULT, q[uqc]); +Readonly::Array my @VALID_QC_TYPES => ($QC_TYPE_DEFAULT); Readonly::Scalar my $TIMESTAMP_FORMAT_WOFFSET => q[%Y-%m-%dT%T%z]; @@ -106,11 +106,6 @@ marked as 'Preliminary' (examples: 'Accepted Final', 'Rejected Preliminary'). By default the final_qc_outcome flag is false and the produced outcomes are preliminary. -A valid User QC outcome is one of the values from the -uqc_outcome_dict table of the npg_qc database. A concept of -the finality and, hence, immutability of the outcome is not -applicable to user QC outcome. - The type of QC outcome can be configured within the Robo QC section of product configuration. The default type is library Manual QC. @@ -332,8 +327,9 @@ sub execute { } $self->result->criteria($self->_criteria); - my $md5 = $self->result->generate_checksum4data($self->result->criteria); - $self->result->criteria_md5($md5); + $self->result->criteria_md5( + $self->result->generate_checksum4data($self->result->criteria) + ); my $err; try { @@ -344,7 +340,7 @@ sub execute { $self->result->add_comment($err); }; not $err and $self->result->qc_outcome( - $self->generate_qc_outcome($self->_outcome_type(), $md5)); + $self->generate_qc_outcome($self->_outcome_type())); return; } @@ -371,13 +367,12 @@ sub evaluate { Returns a hash reference representing the QC outcome. - my $u_outcome = $r->generate_qc_outcome('uqc', $md5); my $m_outcome = $r->generate_qc_outcome('mqc'); - + =cut sub generate_qc_outcome { - my ($self, $outcome_type, $md5) = @_; + my ($self, $outcome_type) = @_; $outcome_type or croak 'outcome type should be defined'; @@ -385,20 +380,13 @@ sub generate_qc_outcome { my $pass = $self->result->pass; ##### # Any of Accepted, Rejected, Undecided outcomes can be returned here - my $outcome = ($outcome_type eq $QC_TYPE_DEFAULT) - ? $package_name->generate_short_description( - $self->final_qc_outcome ? 1 : 0, $pass) - : $package_name->generate_short_description_prefix($pass); + my $outcome = $package_name->generate_short_description( + $self->final_qc_outcome ? 1 : 0, $pass); $outcome_type .= '_outcome'; my $outcome_info = { $outcome_type => $outcome, timestamp => create_current_timestamp(), username => $ROBO_KEY}; - if ($outcome_type =~ /\Auqc/xms) { - my @r = ($ROBO_KEY, $VERSION); - $md5 and push @r, $md5; - $outcome_info->{'rationale'} = join q[ ], @r; - } return $outcome_info; } diff --git a/t/50-schema-result-Review.t b/t/50-schema-result-Review.t index 789bedca..f02c7628 100644 --- a/t/50-schema-result-Review.t +++ b/t/50-schema-result-Review.t @@ -1,6 +1,6 @@ use strict; use warnings; -use Test::More tests => 6; +use Test::More tests => 5; use Test::Exception; use Moose::Meta::Class; use Digest::MD5 qw/md5_hex/; @@ -306,135 +306,17 @@ subtest 'a full insert/update record with mqc outcome' => sub { is ($rs->next->description, 'Accepted final', 'outcome has not changed'); }; -subtest 'a full insert/update record with uqc outcome' => sub { - plan tests => 36; - - my $initial_num_records = $schema->resultset($table)->search({})->count(); - - my $uqc_table = 'UqcOutcomeEnt'; - my $id_seq_composition = t::autoqc_util::find_or_save_composition( - $schema, {'id_run' => 1111, - 'position' => 1, - 'tag_index' => 33}); - - my $uqc_rs = $schema->resultset($uqc_table)->search({id_seq_composition => $id_seq_composition}); - is ($uqc_rs->count, 0, 'no uqc records for this entity'); - my $rs = $schema->resultset($table)->search({id_seq_composition => $id_seq_composition}); - is ($rs->count, 0, 'no review records for this entity'); - - my $qc_outcome = {"uqc_outcome" => "Rejected", - "timestamp" => "2018-06-03T12:53:46+0000", - "username" => "robo_qc", - "rationale" => "testrobo"}; - my $values = { - id_seq_composition => $id_seq_composition, - library_type => 'common_type', - evaluation_results => {"e1"=>1,"e2"=>0}, - criteria => {"and"=>["e1","e2"]}, - qc_outcome => $qc_outcome, - pass => 0, - path => 't/data' - }; - my $cmd5 = md5_hex(JSON::XS->new()->canonical(1)->encode($values->{criteria})); - - isa_ok($schema->resultset($table)->create($values), 'npg_qc::Schema::Result::' . $table); - is ($schema->resultset($table)->search({})->count(), $initial_num_records + 1, - 'total number of records in teh review table went up by one'); - $rs = $schema->resultset($table)->search({id_seq_composition => $id_seq_composition}); - is ($rs->count, 1, 'one row created in the review table'); - my $row = $rs->next; - is_deeply ($row->qc_outcome, $qc_outcome, 'qc outcome saved'); - is_deeply ($row->evaluation_results, {"e1"=>1,"e2"=>0}, 'evaluation results saved'); - is_deeply ($row->criteria, {"and"=>["e1","e2"]}, 'criteria saved'); - is ($row->criteria_md5, $cmd5, 'checksum saved'); - $uqc_rs = $schema->resultset($uqc_table)->search({id_seq_composition => $id_seq_composition}); - is ($uqc_rs->count, 1, 'one row created in the uqc table'); - my $outcome = $uqc_rs->next; - is ($outcome->rationale, 'testrobo', 'rationale recorded'); - is ($outcome->description, 'Rejected', 'correct uqc outcome'); - is ($outcome->modified_by, $ENV{USER}, 'correct user'); - is ($outcome->username, 'robo_qc', 'correct user'); - my $dt = $outcome->last_modified(); - is ($dt->year, 2018, 'correct year'); - is ($dt->month, '6', 'correct month'); - is ($dt->minute, '53', 'correct minute'); - is ($dt->second, '46', 'correct second'); - - $qc_outcome = {"uqc_outcome" => "Accepted", - "timestamp" => "2018-08-05T12:53:46+0000", - "username" => "robo_qc", - "rationale" => "testrobo1"}; - $values = { - id_seq_composition => $id_seq_composition, - library_type => 'common_type', - evaluation_results => {"e1"=>1,"e2"=>1}, - criteria => {"and"=>["e1","e2"]}, - qc_outcome => $qc_outcome, - }; - $row->update($values); - is_deeply ($row->evaluation_results, {"e1"=>1,"e2"=>1}, 'evaluation results updated'); - is_deeply ($row->qc_outcome, $qc_outcome, 'qc outcome updated'); - $outcome = $schema->resultset($uqc_table)->search({id_seq_composition => $id_seq_composition}) - ->next; - is ($outcome->rationale, 'testrobo1', 'rationale updated'); - is ($outcome->description, 'Accepted', 'uqc outcome updated'); - is ($outcome->last_modified()->month, 8, 'month updated'); - is ($outcome->last_modified()->year, 2018, 'correct year'); - - $id_seq_composition = t::autoqc_util::find_or_save_composition( - $schema, {'id_run' => 1111, - 'position' => 1, - 'tag_index' => 34}); - $uqc_rs = $schema->resultset($uqc_table)->search({id_seq_composition => $id_seq_composition}); - is ($uqc_rs->count, 0, 'no uqc records for this entity'); - my $new_uqc = $schema->resultset($uqc_table) - ->new_result({id_seq_composition => $id_seq_composition}); - $new_uqc->update_outcome({uqc_outcome => 'Accepted', rationale => 'test1'}, 'user1', 'test'); - $uqc_rs = $schema->resultset($uqc_table)->search({id_seq_composition => $id_seq_composition}); - is ($uqc_rs->count, 1, 'record created'); - - $values = { - id_seq_composition => $id_seq_composition, - library_type => 'common_type', - evaluation_results => '{"e1":1,"e2":1}', - criteria => '{"and":["e1","e2"]}', - qc_outcome => {"uqc_outcome" => "Undecided", - "timestamp" => "2018-09-03T12:58:43+0000", - "username" => "robo_qc", - "rationale" => "testrobo2"}, - pass => undef - }; - my $created=$schema->resultset($table)->create($values); - - is ($schema->resultset($table)->search({})->count(), $initial_num_records + 2, - 'total number of records in teh review table went up by one'); - $uqc_rs = $schema->resultset($uqc_table)->search({id_seq_composition => $id_seq_composition}); - is ($uqc_rs->count, 1, 'one uqc record for the entity'); - $outcome = $uqc_rs->next; - is ($outcome->rationale, 'testrobo2', 'rationale updated'); - is ($outcome->description, 'Undecided', 'outcome updated'); - is ($outcome->modified_by, $ENV{USER}, 'correct user'); - is ($outcome->username, 'robo_qc', 'correct user'); - $dt = $outcome->last_modified(); - is ($dt->year, 2018, 'correct year'); - is ($dt->month, '9', 'correct month'); - is ($dt->minute, '58', 'correct minute'); - is ($dt->second, '43', 'correct second'); -}; - - subtest 'unknown outcome type should give an error' => sub { plan tests => 5; - my $uqc_table = 'UqcOutcomeEnt'; my $id_seq_composition = t::autoqc_util::find_or_save_composition( $schema, {'id_run' => 1111, 'position' => 1, 'tag_index' => 43}); my $no_records = sub { - is ($schema->resultset($uqc_table)->search({id_seq_composition => $id_seq_composition})->count, - 0, 'no uqc records for this entity'); + is ($schema->resultset($mqc_table)->search({id_seq_composition => $id_seq_composition})->count, + 0, 'no mqc records for this entity'); is ($schema->resultset($table)->search({id_seq_composition => $id_seq_composition})->count, 0, 'no review records for this entity'); }; diff --git a/t/60-autoqc-checks-review.t b/t/60-autoqc-checks-review.t index 968dd2a2..3395d6b4 100644 --- a/t/60-autoqc-checks-review.t +++ b/t/60-autoqc-checks-review.t @@ -417,7 +417,7 @@ subtest 'single expression evaluation' => sub { }; subtest 'evaluation within the execute method' => sub { - plan tests => 48; + plan tests => 40; local $ENV{NPG_CACHED_SAMPLESHEET_FILE} = 't/data/autoqc/review/samplesheet_29524.csv'; @@ -436,7 +436,6 @@ subtest 'evaluation within the execute method' => sub { is ($o->result->pass, undef, 'result pass attribute is unset'); my @check_objects = (); - push @check_objects, npg_qc::autoqc::checks::review->new( runfolder_path => $rf_path, conf_path => $test_data_dir, @@ -446,12 +445,7 @@ subtest 'evaluation within the execute method' => sub { conf_path => "$test_data_dir/mqc_type", qc_in => $dir, rpt_list => $rpt_list); - push @check_objects, npg_qc::autoqc::checks::review->new( - conf_path => "$test_data_dir/uqc_type", - qc_in => $dir, - rpt_list => $rpt_list); - my $count = 0; foreach my $check (@check_objects) { lives_ok { $check->execute } 'execute method runs OK'; is ($check->result->pass, 1, 'result pass attribute is set to 1'); @@ -461,15 +455,9 @@ subtest 'evaluation within the execute method' => sub { is_deeply ($check->result->evaluation_results(), \%expected, 'evaluation results are saved'); my $outcome = $check->result->qc_outcome; - if ($count < 2) { - is ($outcome->{'mqc_outcome'} , 'Accepted preliminary', 'correct outcome string'); - } elsif ($count == 2) { - is ($outcome->{'uqc_outcome'} , 'Accepted', 'correct outcome string'); - ok ($outcome->{'rationale'} , 'rationale is set'); - } + is ($outcome->{'mqc_outcome'} , 'Accepted preliminary', 'correct outcome string'); is ($outcome->{'username'}, 'robo_qc', 'correct process id'); ok ($outcome->{'timestamp'}, 'timestamp saved'); - $count++; } # Undefined library type should not be a problem. diff --git a/t/data/autoqc/review/uqc_type/product_release.yml b/t/data/autoqc/review/uqc_type/product_release.yml deleted file mode 100644 index cae9ff25..00000000 --- a/t/data/autoqc/review/uqc_type/product_release.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -default: - s3: - enable: false - url: null - notify: false - irods: - enable: true - notify: false - -study: - - study_id: "5392" - s3: - enable: true - url: "gs://profile_one-europe-west2" - date_binning: true - customer_name: "UK Organisation" - profile: "profile_one" - notify: true - receipts: "/data_product_receipts/5392/" - irods: - enable: false - notify: true - merge: - component_cache_dir: "/merge_component_cache/5392/" - robo_qc: - qc_type: "uqc" - criteria: - - applicability_criteria: - lims: - library_type: - - "HiSeqX PCR free" - acceptance_criteria : - - "( bam_flagstats.target_proper_pair_mapped_reads / bam_flagstats.target_mapped_reads ) > 0.95" - - "bam_flagstats.target_mapped_bases > 85_000_000_000" - - "bam_flagstats.target_percent_gt_coverage_threshold > 95" - - "verify_bam_id.freemix < 0.01" - - "( bcfstats.genotypes_nrd_dividend / bcfstats.genotypes_nrd_divisor ) < 0.02" From 144a9e69d9bce07c7edadab433e305d9c43df322 Mon Sep 17 00:00:00 2001 From: Marina Gourtovaia Date: Tue, 22 Oct 2024 13:59:52 +0100 Subject: [PATCH 3/4] Removed unused test data --- Changes | 1 + MANIFEST | 16 ---------------- .../PB_cal/archive/qc/1234_1.insert_size.json | 1 - .../PB_cal/archive/qc/1234_1.qX_yield.json | 1 - .../PB_cal/archive/qc/1234_2.insert_size.json | 1 - .../PB_cal/archive/qc/1234_2.qX_yield.json | 1 - .../PB_cal/archive/qc/1234_3.insert_size.json | 1 - .../PB_cal/archive/qc/1234_3.qX_yield.json | 1 - .../PB_cal/archive/qc/1234_4.insert_size.json | 1 - .../PB_cal/archive/qc/1234_4.qX_yield.json | 1 - .../PB_cal/archive/qc/1234_5.insert_size.json | 1 - .../PB_cal/archive/qc/1234_5.qX_yield.json | 1 - .../PB_cal/archive/qc/1234_6.insert_size.json | 1 - .../PB_cal/archive/qc/1234_6.qX_yield.json | 1 - .../PB_cal/archive/qc/1234_7.insert_size.json | 1 - .../PB_cal/archive/qc/1234_7.qX_yield.json | 1 - .../PB_cal/archive/qc/1234_8.insert_size.json | 1 - .../PB_cal/archive/qc/1234_8.qX_yield.json | 1 - 18 files changed, 1 insertion(+), 32 deletions(-) delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_1.insert_size.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_1.qX_yield.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_2.insert_size.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_2.qX_yield.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_3.insert_size.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_3.qX_yield.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_4.insert_size.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_4.qX_yield.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_5.insert_size.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_5.qX_yield.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_6.insert_size.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_6.qX_yield.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_7.insert_size.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_7.qX_yield.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_8.insert_size.json delete mode 100644 t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_8.qX_yield.json diff --git a/Changes b/Changes index f34ef4bb..9b3124e8 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,6 @@ LIST OF CHANGES FOR NPG-QC PACKAGE + - Removed from the repository unused test data. - npg_qc::autoqc::check::review: 1. Previously the code allowed for an empty applicability_criteria hash, which resulted in a particular set of QC criteria being applied to every diff --git a/MANIFEST b/MANIFEST index dcb93320..cb7e6147 100644 --- a/MANIFEST +++ b/MANIFEST @@ -607,22 +607,6 @@ t/data/fixtures/000-mqc_outcome_dict.yml t/data/fixtures/000-mqc_library_outcome_dict.yml t/data/fixtures/000-uqc_outcome_dict.yml t/data/fixtures/autoqc_json.tar.gz -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_1.insert_size.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_1.qX_yield.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_2.insert_size.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_2.qX_yield.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_3.insert_size.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_3.qX_yield.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_4.insert_size.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_4.qX_yield.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_5.insert_size.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_5.qX_yield.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_6.insert_size.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_6.qX_yield.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_7.insert_size.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_7.qX_yield.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_8.insert_size.json -t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_8.qX_yield.json t/data/qcoutcomes/fixtures/000-mqc_library_outcome_dict.yml t/data/qcoutcomes/fixtures/000-mqc_outcome_dict.yml t/data/qcoutcomes/fixtures/000-uqc_outcome_dict.yml diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_1.insert_size.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_1.insert_size.json deleted file mode 100644 index e4344060..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_1.insert_size.json +++ /dev/null @@ -1 +0,0 @@ -{"__CLASS__":"npg_qc::autoqc::results::insert_size-6222","position":"1","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","comments":"Single run. Cannot run insert size check.","id_run":"3612"} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_1.qX_yield.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_1.qX_yield.json deleted file mode 100644 index 822346c5..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_1.qX_yield.json +++ /dev/null @@ -1 +0,0 @@ -{"pass":1,"filename1":"3612_1.fastqcheck","position":"1","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","id_run":"3612","threshold_quality":20,"__CLASS__":"npg_qc::autoqc::results::qX_yield-6222","threshold_yield1":240000,"yield1":451150} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_2.insert_size.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_2.insert_size.json deleted file mode 100644 index 78b93c20..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_2.insert_size.json +++ /dev/null @@ -1 +0,0 @@ -{"__CLASS__":"npg_qc::autoqc::results::insert_size-6222","position":"2","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","comments":"Single run. Cannot run insert size check.","id_run":"3612"} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_2.qX_yield.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_2.qX_yield.json deleted file mode 100644 index 62a08200..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_2.qX_yield.json +++ /dev/null @@ -1 +0,0 @@ -{"pass":1,"filename1":"3612_2.fastqcheck","position":"2","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","id_run":"3612","threshold_quality":20,"__CLASS__":"npg_qc::autoqc::results::qX_yield-6222","threshold_yield1":240000,"yield1":492931} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_3.insert_size.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_3.insert_size.json deleted file mode 100644 index 959d598f..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_3.insert_size.json +++ /dev/null @@ -1 +0,0 @@ -{"__CLASS__":"npg_qc::autoqc::results::insert_size-6222","position":"3","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","comments":"Single run. Cannot run insert size check.","id_run":"3612"} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_3.qX_yield.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_3.qX_yield.json deleted file mode 100644 index 439838c4..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_3.qX_yield.json +++ /dev/null @@ -1 +0,0 @@ -{"pass":1,"filename1":"3612_3.fastqcheck","position":"3","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","id_run":"3612","threshold_quality":20,"__CLASS__":"npg_qc::autoqc::results::qX_yield-6222","threshold_yield1":240000,"yield1":404744} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_4.insert_size.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_4.insert_size.json deleted file mode 100644 index 67537135..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_4.insert_size.json +++ /dev/null @@ -1 +0,0 @@ -{"__CLASS__":"npg_qc::autoqc::results::insert_size-6222","position":"4","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","comments":"Single run. Cannot run insert size check.","id_run":"3612"} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_4.qX_yield.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_4.qX_yield.json deleted file mode 100644 index 3352d583..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_4.qX_yield.json +++ /dev/null @@ -1 +0,0 @@ -{"pass":0,"filename1":"3612_4.fastqcheck","position":"4","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","id_run":"3612","threshold_quality":20,"__CLASS__":"npg_qc::autoqc::results::qX_yield-6222","threshold_yield1":240000,"yield1":10132} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_5.insert_size.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_5.insert_size.json deleted file mode 100644 index 05c8d2cf..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_5.insert_size.json +++ /dev/null @@ -1 +0,0 @@ -{"__CLASS__":"npg_qc::autoqc::results::insert_size-6222","position":"5","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","comments":"Single run. Cannot run insert size check.","id_run":"3612"} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_5.qX_yield.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_5.qX_yield.json deleted file mode 100644 index 1f88721e..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_5.qX_yield.json +++ /dev/null @@ -1 +0,0 @@ -{"pass":0,"filename1":"3612_5.fastqcheck","position":"5","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","id_run":"3612","threshold_quality":20,"__CLASS__":"npg_qc::autoqc::results::qX_yield-6222","threshold_yield1":240000,"yield1":148702} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_6.insert_size.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_6.insert_size.json deleted file mode 100644 index b547cc39..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_6.insert_size.json +++ /dev/null @@ -1 +0,0 @@ -{"__CLASS__":"npg_qc::autoqc::results::insert_size-6222","position":"6","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","comments":"Single run. Cannot run insert size check.","id_run":"3612"} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_6.qX_yield.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_6.qX_yield.json deleted file mode 100644 index a6fb6a7b..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_6.qX_yield.json +++ /dev/null @@ -1 +0,0 @@ -{"pass":1,"filename1":"3612_6.fastqcheck","position":"6","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","id_run":"3612","threshold_quality":20,"__CLASS__":"npg_qc::autoqc::results::qX_yield-6222","threshold_yield1":240000,"yield1":413975} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_7.insert_size.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_7.insert_size.json deleted file mode 100644 index bf5ab69e..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_7.insert_size.json +++ /dev/null @@ -1 +0,0 @@ -{"__CLASS__":"npg_qc::autoqc::results::insert_size-6222","position":"7","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","comments":"Single run. Cannot run insert size check.","id_run":"3612"} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_7.qX_yield.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_7.qX_yield.json deleted file mode 100644 index 135eff7a..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_7.qX_yield.json +++ /dev/null @@ -1 +0,0 @@ -{"pass":1,"filename1":"3612_7.fastqcheck","position":"7","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","id_run":"3612","threshold_quality":20,"__CLASS__":"npg_qc::autoqc::results::qX_yield-6222","threshold_yield1":240000,"yield1":377044} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_8.insert_size.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_8.insert_size.json deleted file mode 100644 index a0401c1f..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_8.insert_size.json +++ /dev/null @@ -1 +0,0 @@ -{"__CLASS__":"npg_qc::autoqc::results::insert_size-6222","position":"8","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","comments":"Single run. Cannot run insert size check.","id_run":"3612"} \ No newline at end of file diff --git a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_8.qX_yield.json b/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_8.qX_yield.json deleted file mode 100644 index e65b466b..00000000 --- a/t/data/nfs/sf44/IL2/analysis/123456_IL2_1234/Data/Intensities/Bustard_RTA/PB_cal/archive/qc/1234_8.qX_yield.json +++ /dev/null @@ -1 +0,0 @@ -{"pass":1,"filename1":"3612_8.fastqcheck","position":"8","path":"/staging/IL11/analysis/090826_IL11_3612/Data/C1-37_Firecrest1.3.4_01-09-2009_auto/Bustard1.3.4_01-09-2009_auto/GERALD_01-09-2009_auto/archive","id_run":"3612","threshold_quality":20,"__CLASS__":"npg_qc::autoqc::results::qX_yield-6222","threshold_yield1":240000,"yield1":500424} \ No newline at end of file From a6e619f9b255cc1bfd444602c068518e287151d3 Mon Sep 17 00:00:00 2001 From: jmtcsngr Date: Thu, 24 Oct 2024 13:36:00 +0100 Subject: [PATCH 4/4] prep release 73.0.0 --- Changes | 1 + 1 file changed, 1 insertion(+) diff --git a/Changes b/Changes index 9b3124e8..48f6a14d 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,6 @@ LIST OF CHANGES FOR NPG-QC PACKAGE +release 73.0.0 (2024-10-24) - Removed from the repository unused test data. - npg_qc::autoqc::check::review: 1. Previously the code allowed for an empty applicability_criteria hash,