Combining Learning and Constraints for Genome-wide Protein Annotation: implementation and data