Skip to content

Commit 5fe1aa9

Browse files
authored
Merge pull request #125 from Aratz/fix_reads_per_samples
Fix reads per samples
2 parents cc41de2 + 6114076 commit 5fe1aa9

File tree

7 files changed

+37
-14
lines changed

7 files changed

+37
-14
lines changed

checkQC/qc_checkers/reads_per_sample.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,6 @@ def _qualify_error(lane, number_of_samples, sample_id, cluster_count):
5454
len(lane_data["reads_per_sample"]),
5555
sample_data["sample_id"],
5656
sample_data["cluster_count"],
57-
),
57+
)
5858
)
5959
]

tests/qc_checkers/test_cluster_pf.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ def test_cluster_pf(qc_data):
2828
)
2929

3030
assert len(qc_reports) == 2
31+
assert None not in qc_reports
3132
for report in qc_reports:
3233
lane, threshold = report.data["lane"], report.data["threshold"]
3334
match lane:
@@ -60,6 +61,7 @@ def test_cluster_pf_error_unknown(qc_data):
6061
)
6162

6263
assert len(qc_reports) == 2
64+
assert None not in qc_reports
6365
for report in qc_reports:
6466
lane, threshold = report.data["lane"], report.data["threshold"]
6567
match lane:
@@ -92,6 +94,7 @@ def test_cluster_pf_warning_unknown(qc_data):
9294
)
9395

9496
assert len(qc_reports) == 1
97+
assert None not in qc_reports
9598
report = qc_reports[0]
9699
lane, threshold = report.data["lane"], report.data["threshold"]
97100
match lane:

tests/qc_checkers/test_error_rate.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ def test_error_rate(qc_data_and_exp_val):
7272
)
7373

7474
assert len(qc_reports) == sum(len(v) for v in exp_val.values())
75+
assert None not in qc_reports
7576
for qc_report in qc_reports:
7677
lane, read = qc_report.data['lane'], qc_report.data['read']
7778
expected_report = exp_val[lane][read]
@@ -92,6 +93,7 @@ def test_error_rate_error_unknown(qc_data_and_exp_val):
9293
del exp_val[2][1]
9394

9495
assert len(qc_reports) == sum(len(v) for v in exp_val.values())
96+
assert None not in qc_reports
9597
for qc_report in qc_reports:
9698
lane, read = qc_report.data['lane'], qc_report.data['read']
9799
expected_report = exp_val[lane][read]
@@ -117,6 +119,7 @@ def test_error_rate_warning_unknown(qc_data_and_exp_val):
117119
del exp_val[2][1]
118120

119121
assert len(qc_reports) == sum(len(v) for v in exp_val.values())
122+
assert None not in qc_reports
120123
for qc_report in qc_reports:
121124
lane, read = qc_report.data['lane'], qc_report.data['read']
122125
expected_report = exp_val[lane][read]
@@ -140,6 +143,7 @@ def test_error_rate_allow_missing(qc_data_and_exp_val):
140143
del exp_val[1][3]
141144

142145
assert len(qc_reports) == sum(len(v) for v in exp_val.values())
146+
assert None not in qc_reports
143147
for qc_report in qc_reports:
144148
lane, read = qc_report.data['lane'], qc_report.data['read']
145149
expected_report = exp_val[lane][read]

tests/qc_checkers/test_percent_q30.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ def test_percent_q30(qc_data_and_exp_val):
6565
)
6666

6767
assert len(qc_reports) == sum(len(v) for v in exp_val.values())
68+
assert None not in qc_reports
6869
for qc_report in qc_reports:
6970
lane, read = qc_report.data['lane'], qc_report.data['read']
7071
expected_report = exp_val[lane][read]
@@ -92,6 +93,7 @@ def test_error_rate_error_unknown(qc_data_and_exp_val):
9293
)
9394

9495
assert len(qc_reports) == sum(len(v) for v in exp_val.values())
96+
assert None not in qc_reports
9597
for qc_report in qc_reports:
9698
lane, read = qc_report.data['lane'], qc_report.data['read']
9799
expected_report = exp_val[lane][read]
@@ -118,6 +120,7 @@ def test_error_rate_warning_unknown(qc_data_and_exp_val):
118120
del exp_val[2][4]
119121

120122
assert len(qc_reports) == sum(len(v) for v in exp_val.values())
123+
assert None not in qc_reports
121124
for qc_report in qc_reports:
122125
lane, read = qc_report.data['lane'], qc_report.data['read']
123126
expected_report = exp_val[lane][read]

tests/qc_checkers/test_reads_per_sample.py

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,9 @@ def test_reads_per_sample(qc_data_and_exp_val):
6969
warning_threshold=60,
7070
)
7171

72-
assert len(qc_reports) == 4
73-
for qc_report in filter(None, qc_reports):
72+
assert len(qc_reports) == 2
73+
assert None not in qc_reports
74+
for qc_report in qc_reports:
7475
lane = qc_report.data['lane']
7576
expected_report = exp_val[lane]
7677

@@ -88,15 +89,20 @@ def test_reads_per_sample_unknown_threshold(qc_data_and_exp_val):
8889
warning_threshold=60,
8990
)
9091

91-
assert len(qc_reports) == 4
92+
assert len(qc_reports) == 2
93+
assert None not in qc_reports
9294
expected_report = QCErrorWarning(
93-
"Number of reads for sample Sample_B on lane 1 were too low:"
94-
" 20.0 M (threshold: 30.0 M)",
95-
data={"lane": 1,
96-
"number_of_samples": 2,
97-
"sample_id": "Sample_B",
98-
"sample_reads": 20,
99-
"threshold": 30}
100-
)
101-
assert qc_reports[1].type() == expected_report.type()
102-
assert qc_reports[1].data == expected_report.data
95+
"Number of reads for sample Sample_B on lane 1 were too low:"
96+
" 20.0 M (threshold: 30.0 M)",
97+
data={
98+
"lane": 1,
99+
"number_of_samples": 2,
100+
"sample_id": "Sample_B",
101+
"sample_reads": 20.,
102+
"threshold": 30.,
103+
}
104+
)
105+
assert qc_reports[0].type() == expected_report.type()
106+
assert qc_reports[0].data == expected_report.data
107+
108+
assert qc_reports[1].type() == "warning"

tests/qc_checkers/test_undetermined_percentage.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ def test_error_threshold():
2929
)
3030

3131
assert len(qc_reports) == 1
32+
assert None not in qc_reports
3233
assert qc_reports[0].type() == "error"
3334
assert str(qc_reports[0]) == "Fatal QC error: Percentage of undetermined indices 20.00% (- 1.00% phiX) > 15.00% on lane 1."
3435
assert qc_reports[0].data == {
@@ -60,6 +61,7 @@ def test_warning_threshold():
6061
)
6162

6263
assert len(qc_reports) == 1
64+
assert None not in qc_reports
6365
assert qc_reports[0].type() == "warning"
6466
assert str(qc_reports[0]) == "QC warning: Percentage of undetermined indices 20.00% (- 1.00% phiX) > 5.00% on lane 1."
6567
assert qc_reports[0].data == {
@@ -130,6 +132,7 @@ def test_multiple_reports():
130132
)
131133

132134
assert len(qc_reports) == 2
135+
assert None not in qc_reports
133136
for report in qc_reports:
134137
match report.data["lane"]:
135138
case 1:
@@ -175,6 +178,7 @@ def test_yield_0():
175178
)
176179

177180
assert len(qc_reports) == 1
181+
assert None not in qc_reports
178182
assert qc_reports[0].type() == "error"
179183
assert str(qc_reports[0]) == "Fatal QC error: Yield for lane 1 was 0. No undetermined percentage could be computed"
180184
assert qc_reports[0].data == {"lane": 1, "percentage_undetermined": None}
@@ -201,6 +205,7 @@ def test_mean_percent_phix_nan():
201205
)
202206

203207
assert len(qc_reports) == 1
208+
assert None not in qc_reports
204209
assert qc_reports[0].type() == "error"
205210
assert str(qc_reports[0]) == "Fatal QC error: Percentage of undetermined indices 20.00% (- 1.00% phiX) > 15.00% on lane 3."
206211
assert qc_reports[0].data == {

tests/qc_checkers/test_unidentified_index.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ def test_unidentified_index(qc_data):
183183
reports = unidentified_index(qc_data, 5.)
184184

185185
assert len(reports) == 2
186+
assert None not in reports
186187
assert str(reports[0]) == """Fatal QC error: Overrepresented unknown barcode "ACCT" on lane 1 (10.0% > 5.0%).
187188
Possible causes are:
188189
- reverse index swap: "TCCA" found in samplesheet for sample "reverse", lane 1
@@ -197,6 +198,7 @@ def test_whitelist_index(qc_data):
197198
qc_data, 5.,
198199
white_listed_indexes=[".*CC.*"])
199200
assert len(reports) == 2
201+
assert None not in reports
200202
assert str(reports[0]).startswith(
201203
"QC warning: Overrepresented unknown barcode \"ACCT\" on lane 1 (10.0% > 5.0%). "
202204
"This barcode is white-listed."

0 commit comments

Comments
 (0)