class HpoAnnotationEntry {

    public static HpoAnnotationEntry fromLine(String line, Ontology ontology) throws PhenolException {
        String [] A= line.split("\t");
        if (A.length!= NUMBER_OF_FIELDS) {
            throw new HpoAnnotationModelException(String.format("We were expecting %d expectedFields but got %d for line %s",NUMBER_OF_FIELDS,A.length,line ));
        }
        String diseaseID=A[0];
        String diseaseName=A[1];
        TermId phenotypeId = TermId.of(A[2]);
        String phenotypeName=A[3];
        String ageOfOnsetId=A[4];
        String ageOfOnsetName=A[5];
        String frequencyString=A[6];
        String sex=A[7];
        String negation=A[8];
        String modifier=A[9];
        String description=A[10];
        String publication=A[11];
        String evidenceCode=A[12];
        String biocuration=A[13];

        HpoAnnotationEntry entry = new HpoAnnotationEntry(diseaseID,
                 diseaseName,
                 phenotypeId,
                 phenotypeName,
                 ageOfOnsetId,
                 ageOfOnsetName,
                 frequencyString,
                 sex,
                 negation,
                 modifier,
                 description,
                 publication,
                 evidenceCode,
                 biocuration);
        // if the following method does not throw an Exception, we are good to go!
        performQualityControl(entry, ontology);
        return entry;
    }

      HpoAnnotationEntry(String disID,
                               String diseaseName,
                               TermId phenotypeId,
                               String phenotypeName,
                               String ageOfOnsetId,
                               String ageOfOnsetName,
                               String frequencyString,
                               String sex,
                               String negation,
                               String modifier,
                               String description,
                               String publication,
                               String evidenceCode,
                               String biocuration);

}