use of org.monarchinitiative.phenol.ontology.data.TermId in project loinc2hpo by monarch-initiative.
the class Loinc2HpoAnnotation method fromAnnotationLine.
public static Loinc2HpoAnnotation fromAnnotationLine(String line) {
String[] fields = line.split("\t");
if (fields.length != EXPECTED_NUMBER_OF_FIELDS) {
System.err.printf("Malformed line with %d fields: %s%n", fields.length, line);
}
LoincId loincId = new LoincId(fields[0]);
LoincScale scale = LoincScale.fromString(fields[1]);
TermId hpoId = TermId.of(fields[3]);
String curation = fields[5];
String comment = fields[6];
String outcomeString = fields[2];
Outcome outcome;
if (scale.equals(LoincScale.NOMINAL)) {
outcome = Outcome.nominal(outcomeString);
} else {
outcome = new Outcome(ShortCode.fromShortCode(outcomeString));
}
if (fields[4].equals(".")) {
return new Loinc2HpoAnnotation(loincId, scale, outcome, hpoId, curation, comment);
}
TermId supplementalId = TermId.of(fields[4]);
return new Loinc2HpoAnnotation(loincId, scale, outcome, hpoId, supplementalId, curation, comment);
}
use of org.monarchinitiative.phenol.ontology.data.TermId in project loinc2hpo by monarch-initiative.
the class AnnotationQcCommand method checkValidityOfHpoTerms.
private void checkValidityOfHpoTerms(List<Loinc2HpoAnnotation> entries, Ontology ontology) {
int good = 0;
for (var entry : entries) {
TermId tid = entry.getHpoTermId();
if (!ontology.containsTerm(tid)) {
System.err.println("[ERROR] HPO does not contain TermId " + tid.getValue());
} else if (!ontology.getPrimaryTermId(tid).equals(tid)) {
System.err.println("[ERROR] Obsolete TermId (" + tid.getValue() + ") used instead of " + ontology.getPrimaryTermId(tid) + ".");
} else {
good++;
}
}
System.out.printf("[INFO] %d well-formed HPO terms used in LOINC annotations\n", good);
}