Skip to content

Commit ef074ab

Browse files
authored
Merge pull request #2054 from Clinical-Genomics/release/12.0.1
Release/12.0.1
2 parents 31c2fec + 0f1e54f commit ef074ab

19 files changed

+64
-29
lines changed

.github/CODEOWNERS

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
# the repo. Unless a later match takes precedence,
33
# @global-owner1 and @global-owner2 will be requested for
44
# review when someone opens a pull request.
5-
* @henrikstranneheim @jemten @ramprasadn
5+
* @henrikstranneheim @Clinical-Genomics/rare-disease
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
metrics: []
3+

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
All notable changes to this project will be documented in this file.
44
This project adheres to [Semantic Versioning](http://semver.org/).
55

6+
## [12.0.1]
7+
8+
- Adds loqudb and gnomad frequencies to vcf2cytosure filtering
9+
- Store PCT_PF_READS_IMPROPER_PAIRS in qc file
10+
- Evaluate and fail analysis where PCT_PF_READS_IMPROPER_PAIRS is above 5 %
11+
612
## [12.0.0]
713

814
- Set overlap requirement for merging two SVs to 0.8, down from the 0.95 default

definitions/rd_dna_panel_parameters.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1183,7 +1183,7 @@ qccollect_eval_metric_file:
11831183
associated_recipe:
11841184
- qccollect_ar
11851185
data_type: SCALAR
1186-
default: qc_eval_metric_-v1.3-.yaml
1186+
default: qc_eval_metric_-v1.4-.yaml
11871187
exists_check: file
11881188
is_reference: 1
11891189
reference: reference_dir

definitions/rd_dna_parameters.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1057,7 +1057,7 @@ vcf2cytosure_exclude_filter:
10571057
associated_recipe:
10581058
- vcf2cytosure_ar
10591059
data_type: SCALAR
1060-
default: "'clingen_ngiAF > 0.1 || swegenAF > 0.05 || clinical_genomics_mipAF > 0.05 || decipherAF > 0.1'"
1060+
default: "'clingen_ngiAF > 0.1 || swegenAF > 0.05 || clinical_genomics_mipAF > 0.05 || decipherAF > 0.1 || clinical_genomics_loqusFrq > 0.05 || gnomad_svAF > 0.05'"
10611061
type: recipe_argument
10621062
vcf2cytosure_freq:
10631063
associated_recipe:
@@ -1069,7 +1069,7 @@ vcf2cytosure_freq_tag:
10691069
associated_recipe:
10701070
- vcf2cytosure_ar
10711071
data_type: SCALAR
1072-
default: FRQ
1072+
default: clinical_genomics_loqusFrq
10731073
type: recipe_argument
10741074
vcf2cytosure_maxbnd:
10751075
associated_recipe:
@@ -2309,7 +2309,7 @@ qccollect_eval_metric_file:
23092309
associated_recipe:
23102310
- qccollect_ar
23112311
data_type: SCALAR
2312-
default: qc_eval_metric_-v1.3-.yaml
2312+
default: qc_eval_metric_-v1.4-.yaml
23132313
exists_check: file
23142314
is_reference: 1
23152315
reference: reference_dir

definitions/rd_rna_parameters.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1095,7 +1095,7 @@ qccollect_eval_metric_file:
10951095
associated_recipe:
10961096
- qccollect_ar
10971097
data_type: SCALAR
1098-
default: qc_eval_metric_-v1.3-.yaml
1098+
default: qc_eval_metric_-v1.4-.yaml
10991099
exists_check: file
11001100
is_reference: 1
11011101
reference: reference_dir

lib/MIP/Constants.pm

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ Readonly our %ANALYSIS => (
8282
);
8383

8484
## Set MIP version
85-
Readonly our $MIP_VERSION => q{12.0.0};
85+
Readonly our $MIP_VERSION => q{12.0.1};
8686

8787
## Cli
8888
Readonly our $MOOSEX_APP_SCEEN_WIDTH => 160;

lib/MIP/Main/Qccollect.pm

+1-1
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ sub parse_limit_qc_output {
555555

556556
return if not $limit_qc_output;
557557

558-
Readonly my @SKIP_QC_METRICS => qw{ collectmultiplemetrics variantevalall variantevalexome };
558+
Readonly my @SKIP_QC_METRICS => qw{ variantevalall variantevalexome };
559559

560560
foreach my $delete_metric_key (@SKIP_QC_METRICS) {
561561

lib/MIP/Qccollect.pm

+1-2
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ sub define_evaluate_metric {
455455

456456
sub evaluate_analysis {
457457

458-
## Function : Read in aevaluate metrics and evaluate on sample and case level
458+
## Function : Read in evaluation metrics and evaluate on sample and case level
459459
## Returns :
460460
## Arguments : eval_metric_file => File with evaluation metrics
461461
## : qc_data_href => QC data {REF}
@@ -896,7 +896,6 @@ sub parse_sample_qc_metric {
896896
$evaluate_metric_href->{$sample_id}{$recipe_name}{$metric},
897897
}
898898
);
899-
next METRIC;
900899
}
901900
}
902901
return 1;

lib/MIP/Recipes/Install/Mip_scripts.pm

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ sub install_mip_scripts {
8888
mip_rd_dna_vcf_rerun_config.yaml
8989
mip_rd_rna_config.yaml
9090
program_test_cmds.yaml
91-
qc_eval_metric_-v1.3-.yaml
91+
qc_eval_metric_-v1.4-.yaml
9292
qc_regexp_-v1.26-.yaml
9393
rank_model_-v1.34-.ini
9494
svrank_model_-v1.9-.ini

lib/MIP/Store.pm

+4
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,10 @@ sub define_qc_metrics_to_store {
149149
analysis_mode => q{sample},
150150
recipe_name => q{collecthsmetrics},
151151
},
152+
PCT_PF_READS_IMPROPER_PAIRS => {
153+
analysis_mode => q{sample},
154+
recipe_name => q{collectmultiplemetrics},
155+
},
152156
PCT_TARGET_BASES_10X => {
153157
analysis_mode => q{sample},
154158
recipe_name => q{collecthsmetrics},

t/data/references/qc_eval_metric_-v1.3-.yaml renamed to t/data/references/qc_eval_metric_-v1.4-.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ wgs:
2828
collectmultiplemetrics:
2929
PCT_PF_READS_ALIGNED:
3030
lt: 0.95
31+
PCT_PF_READS_IMPROPER_PAIRS:
32+
gt: 0.05
3133
PCT_ADAPTER:
3234
gt: 0.0005
3335
markduplicates:

t/define_evaluate_metric.t

+10-3
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,9 @@ diag( q{Test define_evaluate_metric from Qccollect.pm}
4747
. $SPACE
4848
. $EXECUTABLE_NAME );
4949

50-
Readonly my $PCT_ADAPTER => 0.0005;
51-
Readonly my $PCT_PF_READS_ALIGNED => 0.95;
50+
Readonly my $PCT_ADAPTER => 0.0005;
51+
Readonly my $PCT_PF_READS_ALIGNED => 0.95;
52+
Readonly my $PCT_PF_READS_IMPROPER_PAIRS => 0.05;
5253

5354
my $log = test_log( { no_screen => 1, } );
5455

@@ -59,7 +60,7 @@ my %sample_info = test_mip_hashes(
5960
);
6061

6162
## Given a file with evaluation metrics
62-
my $eval_metric_file = catfile( dirname($Bin), qw{ t data references qc_eval_metric_-v1.3-.yaml} );
63+
my $eval_metric_file = catfile( dirname($Bin), qw{ t data references qc_eval_metric_-v1.4-.yaml} );
6364

6465
## When defining the evaluation metrics based on the analysis
6566
my %evaluate_metric = define_evaluate_metric(
@@ -83,6 +84,9 @@ my %expected = (
8384
PCT_PF_READS_ALIGNED => {
8485
lt => $PCT_PF_READS_ALIGNED,
8586
},
87+
PCT_PF_READS_IMPROPER_PAIRS => {
88+
gt => $PCT_PF_READS_IMPROPER_PAIRS,
89+
},
8690
},
8791
},
8892
ADM1059A2 => {
@@ -98,6 +102,9 @@ my %expected = (
98102
PCT_PF_READS_ALIGNED => {
99103
lt => $PCT_PF_READS_ALIGNED,
100104
},
105+
PCT_PF_READS_IMPROPER_PAIRS => {
106+
gt => $PCT_PF_READS_IMPROPER_PAIRS,
107+
},
101108
},
102109
},
103110
ADM1059A3 => {

t/evaluate_analysis.t

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ my %sample_info = test_mip_hashes(
6969
}
7070
);
7171

72-
my $eval_metric_file = catfile( dirname($Bin), qw{ t data references qc_eval_metric_-v1.3-.yaml} );
72+
my $eval_metric_file = catfile( dirname($Bin), qw{ t data references qc_eval_metric_-v1.4-.yaml} );
7373

7474
## Then set the relevant evaluation metrics for the analysis
7575
my $is_ok = evaluate_analysis(

t/mip_qccollect.test

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ our $USAGE = build_usage( {} );
3232
my $VERBOSE = 1;
3333
## Set paths
3434
my $cluster_constant_path = catdir( dirname($Bin), qw{ t data} );
35-
my $eval_metric_file = catfile( dirname($Bin), qw{ templates qc_eval_metric_-v1.3-.yaml } );
35+
my $eval_metric_file = catfile( dirname($Bin), qw{ templates qc_eval_metric_-v1.4-.yaml } );
3636
my $mip_path = catfile( dirname($Bin), q{mip} );
3737
my $log_file_path = catfile( cwd(), q{qc_metrics_qccollect.log} );
3838
my $test_reference_path = catdir( $cluster_constant_path, q{references} );

t/parse_limit_qc_output.t

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ my %qc_data = (
4747
sample => {
4848
sample_id => {
4949
recipe_output_file => {
50-
collectmultiplemetrics => {
50+
variantevalall => {
5151
header => q{data},
5252
},
5353
},
@@ -68,7 +68,7 @@ parse_limit_qc_output(
6868
}
6969
);
7070

71-
## Then remove key collectmultiplemetrics
71+
## Then remove key variantevalall
7272
my %expected_qc_data = (
7373
sample => {
7474
sample_id => {

t/parse_sample_qc_metric.t

+22-10
Original file line numberDiff line numberDiff line change
@@ -49,20 +49,20 @@ diag( q{Test parse_sample_qc_metric from Qccollect.pm}
4949

5050
## Constants
5151
Readonly my $PCT_TARGET_BASES_10X => 0.95;
52+
Readonly my $FAIL_PCT_TARGET_BASES_10X => 0.90;
5253
Readonly my $PERCENTAGE_MAPPED_READS_EVAL => 95;
5354
Readonly my $PERCENTAGE_MAPPED_READS_PASS => 99;
5455

5556
## Given sample qc data when metric lacks a header
56-
my $infile = q{an_infile};
57-
my $metric = q{percentage_mapped_reads};
57+
my $infile = q{an_infile};
58+
my $metric = q{percentage_mapped_reads};
5859
my $header_recipe = q{collecthsmetrics};
5960
my $header_metric = q{PCT_TARGET_BASES_10X};
60-
my $recipe = q{bamstats};
61-
my $sample_id = q{ADM1059A1};
62-
my %qc_data = (
61+
my $recipe = q{bamstats};
62+
my $sample_id = q{ADM1059A1};
63+
my %qc_data = (
6364
sample => {
64-
$sample_id =>
65-
{ $infile => { $recipe => { $metric => $PERCENTAGE_MAPPED_READS_PASS }, }, },
65+
$sample_id => { $infile => { $recipe => { $metric => $PERCENTAGE_MAPPED_READS_PASS }, }, },
6666
}
6767
);
6868

@@ -104,9 +104,13 @@ my $is_ok = parse_sample_qc_metric(
104104
);
105105
ok( $is_ok, q{Parsed sample qc data metrics} );
106106

107-
## Given sample qc data when metric has a header
108-
my $data_header = q{first_of_pair};
109-
$qc_data{sample}{$sample_id}{$infile}{$header_recipe}{header}{$data_header}{$header_metric} = $PCT_TARGET_BASES_10X;
107+
## Given sample qc data when metric has headers
108+
my $data_header = q{first_of_pair};
109+
$qc_data{sample}{$sample_id}{$infile}{$header_recipe}{header}{$data_header}{$header_metric} =
110+
$PCT_TARGET_BASES_10X;
111+
my $second_data_header = q{second_of_pair};
112+
$qc_data{sample}{$sample_id}{$infile}{$header_recipe}{header}{$second_data_header}{$header_metric}
113+
= $FAIL_PCT_TARGET_BASES_10X;
110114

111115
## Alias
112116
my $qc_data_header_recipe_href =
@@ -121,6 +125,14 @@ $is_ok = parse_sample_qc_metric(
121125
sample_id => $sample_id,
122126
}
123127
);
128+
129+
## Then parses format OK...
124130
ok( $is_ok, q{Parsed sample qc data header metrics} );
125131

132+
## ... and fails qc check for the second header
133+
my $failed_evaluation =
134+
q{FAILED:collecthsmetrics_PCT_TARGET_BASES_10X:} . $FAIL_PCT_TARGET_BASES_10X;
135+
is( $qc_data{evaluation}{collecthsmetrics}[0],
136+
$failed_evaluation, q{Fails qc on second data header} );
137+
126138
done_testing();

templates/mip_install_config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ container:
125125
mip:
126126
executable:
127127
mip:
128-
uri: docker.io/clinicalgenomics/mip:v12.0.0
128+
uri: docker.io/clinicalgenomics/mip:v12.0.1
129129
multiqc:
130130
executable:
131131
multiqc:

templates/qc_eval_metric_-v1.3-.yaml renamed to templates/qc_eval_metric_-v1.4-.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ wgs:
2828
collectmultiplemetrics:
2929
PCT_PF_READS_ALIGNED:
3030
lt: 0.95
31+
PCT_PF_READS_IMPROPER_PAIRS:
32+
gt: 0.05
3133
PCT_ADAPTER:
3234
gt: 0.0005
3335
markduplicates:

0 commit comments

Comments
 (0)