bio-ontology-research-group/deepgoplus

Issue with evaluation when there are no true go class

Closed this issue · 2 comments

I wonder if the behavior of the function def evaluate_annotations(go, real_annots, pred_annots): for the DeepGOPlus model at

for i in range(len(real_annots)):

which skips the evaluation if there are no true go labels is desired?

for i in range(len(real_annots)):
    if len(real_annots[i]) == 0:
        continue

Should not also this case be taken into account? as the model may have predicted some go classes while there were no true go classes.

Hi,
According to CAFA evaluation strategy, we evaluate the performance for each subontology in GO (MFO, BPO, CCO) with the proteins which have at least one experimental annotation from respective subontology. Otherwise, the number of unannotated proteins is quite large and we cannot evaluate on them because we don't know if the predictions are true or not. In general, the experimental annotations are incomplete and no annotation does not mean negative annotation.

Fair enough. Thanks a lot for the explanation