You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Daniel and I have found in our analysis pipeline with exomiser that we are allowing v2 phenopackets through the command-line runner with permissive parsing. With the schema change from v1 "negated" is renamed to "excluded". Exomiser still runs but will allow all phenotypes through since the filtering step is looking to filter negated terms not excluded terms. This leads to incorrect analysis because negated/excluded terms are interpreted as present.
One possible solution is to upgrade the phenopacket parser to attempt to parse v2 phenopackets not permissively then on failure try to parse v1 phenopackets. Otherwise failing hard. Of course this is your call on how to move forward with parsing.
We might want to also consider reving to v2 phenopackets for 14.0.
Below is a test phenopacket when looking at the parsing.
An example to demonstrate the mishap (can be used in ProtoParserTest):
This code parsers the above phenopacket:
@TestvoidreadV1PhenopacketJson() {
// Path to the phenopacket from Mike's postPhenopacketphenopacket = parsePhenopacket(Paths.get("example.json"));
assertThat(phenopacket.getPhenotypicFeaturesCount(), equalTo(2)); // passeslongpositivePhenotypicFeaturesCount = phenopacket.getPhenotypicFeaturesList().stream()
.filter(pf -> !pf.getNegated())
.count();
// Fails because the `excluded` field from the v2 phenopacket is ignored, // changing the `Abnormal blistering of the skin` to a present term despite // that it should have been omitted from the analysis.assertThat(positivePhenotypicFeaturesCount, equalTo(1L));
}
Exomiser/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/proto/ProtoParser.java
Line 92 in 54a50c8
Hi Jules,
Daniel and I have found in our analysis pipeline with exomiser that we are allowing v2 phenopackets through the command-line runner with permissive parsing. With the schema change from v1 "negated" is renamed to "excluded". Exomiser still runs but will allow all phenotypes through since the filtering step is looking to filter negated terms not excluded terms. This leads to incorrect analysis because negated/excluded terms are interpreted as present.
One possible solution is to upgrade the phenopacket parser to attempt to parse v2 phenopackets not permissively then on failure try to parse v1 phenopackets. Otherwise failing hard. Of course this is your call on how to move forward with parsing.
We might want to also consider reving to v2 phenopackets for 14.0.
Below is a test phenopacket when looking at the parsing.
The text was updated successfully, but these errors were encountered: