aurelian 0.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. aurelian-0.3.2/LICENSE +22 -0
  2. aurelian-0.3.2/PKG-INFO +105 -0
  3. aurelian-0.3.2/README.md +59 -0
  4. aurelian-0.3.2/pyproject.toml +130 -0
  5. aurelian-0.3.2/src/aurelian/__init__.py +9 -0
  6. aurelian-0.3.2/src/aurelian/agents/__init__.py +0 -0
  7. aurelian-0.3.2/src/aurelian/agents/amigo/__init__.py +3 -0
  8. aurelian-0.3.2/src/aurelian/agents/amigo/amigo_agent.py +77 -0
  9. aurelian-0.3.2/src/aurelian/agents/amigo/amigo_config.py +85 -0
  10. aurelian-0.3.2/src/aurelian/agents/amigo/amigo_evals.py +73 -0
  11. aurelian-0.3.2/src/aurelian/agents/amigo/amigo_gradio.py +52 -0
  12. aurelian-0.3.2/src/aurelian/agents/amigo/amigo_mcp.py +152 -0
  13. aurelian-0.3.2/src/aurelian/agents/amigo/amigo_tools.py +152 -0
  14. aurelian-0.3.2/src/aurelian/agents/biblio/__init__.py +42 -0
  15. aurelian-0.3.2/src/aurelian/agents/biblio/biblio_agent.py +94 -0
  16. aurelian-0.3.2/src/aurelian/agents/biblio/biblio_config.py +40 -0
  17. aurelian-0.3.2/src/aurelian/agents/biblio/biblio_gradio.py +67 -0
  18. aurelian-0.3.2/src/aurelian/agents/biblio/biblio_mcp.py +115 -0
  19. aurelian-0.3.2/src/aurelian/agents/biblio/biblio_tools.py +164 -0
  20. aurelian-0.3.2/src/aurelian/agents/biblio_agent.py +46 -0
  21. aurelian-0.3.2/src/aurelian/agents/checklist/__init__.py +44 -0
  22. aurelian-0.3.2/src/aurelian/agents/checklist/checklist_agent.py +85 -0
  23. aurelian-0.3.2/src/aurelian/agents/checklist/checklist_config.py +28 -0
  24. aurelian-0.3.2/src/aurelian/agents/checklist/checklist_gradio.py +70 -0
  25. aurelian-0.3.2/src/aurelian/agents/checklist/checklist_mcp.py +86 -0
  26. aurelian-0.3.2/src/aurelian/agents/checklist/checklist_tools.py +141 -0
  27. aurelian-0.3.2/src/aurelian/agents/checklist/content/checklists.yaml +7 -0
  28. aurelian-0.3.2/src/aurelian/agents/checklist/content/streams.csv +136 -0
  29. aurelian-0.3.2/src/aurelian/agents/checklist_agent.py +40 -0
  30. aurelian-0.3.2/src/aurelian/agents/chemistry/__init__.py +3 -0
  31. aurelian-0.3.2/src/aurelian/agents/chemistry/chemistry_agent.py +46 -0
  32. aurelian-0.3.2/src/aurelian/agents/chemistry/chemistry_config.py +71 -0
  33. aurelian-0.3.2/src/aurelian/agents/chemistry/chemistry_evals.py +79 -0
  34. aurelian-0.3.2/src/aurelian/agents/chemistry/chemistry_gradio.py +50 -0
  35. aurelian-0.3.2/src/aurelian/agents/chemistry/chemistry_mcp.py +120 -0
  36. aurelian-0.3.2/src/aurelian/agents/chemistry/chemistry_tools.py +121 -0
  37. aurelian-0.3.2/src/aurelian/agents/chemistry/image_agent.py +15 -0
  38. aurelian-0.3.2/src/aurelian/agents/d4d/__init__.py +30 -0
  39. aurelian-0.3.2/src/aurelian/agents/d4d/d4d_agent.py +72 -0
  40. aurelian-0.3.2/src/aurelian/agents/d4d/d4d_config.py +46 -0
  41. aurelian-0.3.2/src/aurelian/agents/d4d/d4d_gradio.py +58 -0
  42. aurelian-0.3.2/src/aurelian/agents/d4d/d4d_mcp.py +71 -0
  43. aurelian-0.3.2/src/aurelian/agents/d4d/d4d_tools.py +157 -0
  44. aurelian-0.3.2/src/aurelian/agents/d4d_agent.py +64 -0
  45. aurelian-0.3.2/src/aurelian/agents/diagnosis/__init__.py +33 -0
  46. aurelian-0.3.2/src/aurelian/agents/diagnosis/diagnosis_agent.py +53 -0
  47. aurelian-0.3.2/src/aurelian/agents/diagnosis/diagnosis_config.py +48 -0
  48. aurelian-0.3.2/src/aurelian/agents/diagnosis/diagnosis_evals.py +76 -0
  49. aurelian-0.3.2/src/aurelian/agents/diagnosis/diagnosis_gradio.py +52 -0
  50. aurelian-0.3.2/src/aurelian/agents/diagnosis/diagnosis_mcp.py +141 -0
  51. aurelian-0.3.2/src/aurelian/agents/diagnosis/diagnosis_tools.py +204 -0
  52. aurelian-0.3.2/src/aurelian/agents/diagnosis_agent.py +28 -0
  53. aurelian-0.3.2/src/aurelian/agents/draw/__init__.py +3 -0
  54. aurelian-0.3.2/src/aurelian/agents/draw/draw_agent.py +39 -0
  55. aurelian-0.3.2/src/aurelian/agents/draw/draw_config.py +26 -0
  56. aurelian-0.3.2/src/aurelian/agents/draw/draw_gradio.py +50 -0
  57. aurelian-0.3.2/src/aurelian/agents/draw/draw_mcp.py +94 -0
  58. aurelian-0.3.2/src/aurelian/agents/draw/draw_tools.py +100 -0
  59. aurelian-0.3.2/src/aurelian/agents/draw/judge_agent.py +18 -0
  60. aurelian-0.3.2/src/aurelian/agents/filesystem/__init__.py +0 -0
  61. aurelian-0.3.2/src/aurelian/agents/filesystem/filesystem_config.py +27 -0
  62. aurelian-0.3.2/src/aurelian/agents/filesystem/filesystem_gradio.py +49 -0
  63. aurelian-0.3.2/src/aurelian/agents/filesystem/filesystem_mcp.py +89 -0
  64. aurelian-0.3.2/src/aurelian/agents/filesystem/filesystem_tools.py +95 -0
  65. aurelian-0.3.2/src/aurelian/agents/filesystem/py.typed +0 -0
  66. aurelian-0.3.2/src/aurelian/agents/github/__init__.py +0 -0
  67. aurelian-0.3.2/src/aurelian/agents/github/github_agent.py +83 -0
  68. aurelian-0.3.2/src/aurelian/agents/github/github_cli.py +248 -0
  69. aurelian-0.3.2/src/aurelian/agents/github/github_config.py +22 -0
  70. aurelian-0.3.2/src/aurelian/agents/github/github_gradio.py +152 -0
  71. aurelian-0.3.2/src/aurelian/agents/github/github_mcp.py +252 -0
  72. aurelian-0.3.2/src/aurelian/agents/github/github_tools.py +408 -0
  73. aurelian-0.3.2/src/aurelian/agents/github/github_tools.py.tmp +413 -0
  74. aurelian-0.3.2/src/aurelian/agents/goann/__init__.py +13 -0
  75. aurelian-0.3.2/src/aurelian/agents/goann/documents/Transcription_Factors_Annotation_Guidelines.md +1000 -0
  76. aurelian-0.3.2/src/aurelian/agents/goann/documents/Transcription_Factors_Annotation_Guidelines.pdf +0 -0
  77. aurelian-0.3.2/src/aurelian/agents/goann/documents/Transcription_Factors_Annotation_Guidelines_Paper.md +693 -0
  78. aurelian-0.3.2/src/aurelian/agents/goann/documents/Transcription_Factors_Annotation_Guidelines_Paper.pdf +0 -0
  79. aurelian-0.3.2/src/aurelian/agents/goann/goann_agent.py +90 -0
  80. aurelian-0.3.2/src/aurelian/agents/goann/goann_config.py +90 -0
  81. aurelian-0.3.2/src/aurelian/agents/goann/goann_evals.py +104 -0
  82. aurelian-0.3.2/src/aurelian/agents/goann/goann_gradio.py +62 -0
  83. aurelian-0.3.2/src/aurelian/agents/goann/goann_mcp.py +0 -0
  84. aurelian-0.3.2/src/aurelian/agents/goann/goann_tools.py +65 -0
  85. aurelian-0.3.2/src/aurelian/agents/gocam/__init__.py +43 -0
  86. aurelian-0.3.2/src/aurelian/agents/gocam/documents/DNA-binding transcription factor activity annotation guidelines.docx +0 -0
  87. aurelian-0.3.2/src/aurelian/agents/gocam/documents/DNA-binding transcription factor activity annotation guidelines.pdf +0 -0
  88. aurelian-0.3.2/src/aurelian/agents/gocam/documents/DNA-binding_transcription_factor_activity_annotation_guidelines.md +100 -0
  89. aurelian-0.3.2/src/aurelian/agents/gocam/documents/E3 ubiquitin ligases.docx +0 -0
  90. aurelian-0.3.2/src/aurelian/agents/gocam/documents/E3 ubiquitin ligases.pdf +0 -0
  91. aurelian-0.3.2/src/aurelian/agents/gocam/documents/E3_ubiquitin_ligases.md +134 -0
  92. aurelian-0.3.2/src/aurelian/agents/gocam/documents/GO-CAM annotation guidelines README.docx +0 -0
  93. aurelian-0.3.2/src/aurelian/agents/gocam/documents/GO-CAM annotation guidelines README.pdf +0 -0
  94. aurelian-0.3.2/src/aurelian/agents/gocam/documents/GO-CAM modelling guidelines TO DO.docx +0 -0
  95. aurelian-0.3.2/src/aurelian/agents/gocam/documents/GO-CAM modelling guidelines TO DO.pdf +0 -0
  96. aurelian-0.3.2/src/aurelian/agents/gocam/documents/GO-CAM_annotation_guidelines_README.md +1 -0
  97. aurelian-0.3.2/src/aurelian/agents/gocam/documents/GO-CAM_modelling_guidelines_TO_DO.md +3 -0
  98. aurelian-0.3.2/src/aurelian/agents/gocam/documents/How to annotate complexes in GO-CAM.docx +0 -0
  99. aurelian-0.3.2/src/aurelian/agents/gocam/documents/How to annotate complexes in GO-CAM.pdf +0 -0
  100. aurelian-0.3.2/src/aurelian/agents/gocam/documents/How to annotate molecular adaptors.docx +0 -0
  101. aurelian-0.3.2/src/aurelian/agents/gocam/documents/How to annotate molecular adaptors.pdf +0 -0
  102. aurelian-0.3.2/src/aurelian/agents/gocam/documents/How to annotate sequestering proteins.docx +0 -0
  103. aurelian-0.3.2/src/aurelian/agents/gocam/documents/How to annotate sequestering proteins.pdf +0 -0
  104. aurelian-0.3.2/src/aurelian/agents/gocam/documents/How_to_annotate_complexes_in_GO-CAM.md +29 -0
  105. aurelian-0.3.2/src/aurelian/agents/gocam/documents/How_to_annotate_molecular_adaptors.md +31 -0
  106. aurelian-0.3.2/src/aurelian/agents/gocam/documents/How_to_annotate_sequestering_proteins.md +42 -0
  107. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Molecular adaptor activity.docx +0 -0
  108. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Molecular adaptor activity.pdf +0 -0
  109. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Molecular carrier activity.docx +0 -0
  110. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Molecular carrier activity.pdf +0 -0
  111. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Molecular_adaptor_activity.md +51 -0
  112. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Molecular_carrier_activity.md +41 -0
  113. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Protein sequestering activity.docx +0 -0
  114. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Protein sequestering activity.pdf +0 -0
  115. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Protein_sequestering_activity.md +50 -0
  116. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Signaling receptor activity annotation guidelines.docx +0 -0
  117. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Signaling receptor activity annotation guidelines.pdf +0 -0
  118. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Signaling_receptor_activity_annotation_guidelines.md +187 -0
  119. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Transcription coregulator activity.docx +0 -0
  120. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Transcription coregulator activity.pdf +0 -0
  121. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Transcription_coregulator_activity.md +36 -0
  122. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Transporter activity annotation annotation guidelines.docx +0 -0
  123. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Transporter activity annotation annotation guidelines.pdf +0 -0
  124. aurelian-0.3.2/src/aurelian/agents/gocam/documents/Transporter_activity_annotation_annotation_guidelines.md +43 -0
  125. Regulatory Processes in GO-CAM.docx +0 -0
  126. Regulatory Processes in GO-CAM.pdf +0 -0
  127. aurelian-0.3.2/src/aurelian/agents/gocam/documents/WIP_-_Regulation_and_Regulatory_Processes_in_GO-CAM.md +31 -0
  128. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/DNA-binding_transcription_factor_activity_annotation_guidelines.md +131 -0
  129. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/E3_ubiquitin_ligases.md +166 -0
  130. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/GO-CAM_annotation_guidelines_README.md +1 -0
  131. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/GO-CAM_modelling_guidelines_TO_DO.md +5 -0
  132. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/How_to_annotate_complexes_in_GO-CAM.md +28 -0
  133. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/How_to_annotate_molecular_adaptors.md +19 -0
  134. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/How_to_annotate_sequestering_proteins.md +38 -0
  135. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/Molecular_adaptor_activity.md +52 -0
  136. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/Molecular_carrier_activity.md +59 -0
  137. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/Protein_sequestering_activity.md +52 -0
  138. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/Signaling_receptor_activity_annotation_guidelines.md +271 -0
  139. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/Transcription_coregulator_activity.md +54 -0
  140. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/Transporter_activity_annotation_annotation_guidelines.md +38 -0
  141. aurelian-0.3.2/src/aurelian/agents/gocam/documents/md/WIP_-_Regulation_and_Regulatory_Processes_in_GO-CAM.md +39 -0
  142. aurelian-0.3.2/src/aurelian/agents/gocam/documents/pandoc_md/Signaling_receptor_activity_annotation_guidelines.md +334 -0
  143. aurelian-0.3.2/src/aurelian/agents/gocam/gocam_agent.py +240 -0
  144. aurelian-0.3.2/src/aurelian/agents/gocam/gocam_config.py +85 -0
  145. aurelian-0.3.2/src/aurelian/agents/gocam/gocam_curator_agent.py +46 -0
  146. aurelian-0.3.2/src/aurelian/agents/gocam/gocam_evals.py +67 -0
  147. aurelian-0.3.2/src/aurelian/agents/gocam/gocam_gradio.py +89 -0
  148. aurelian-0.3.2/src/aurelian/agents/gocam/gocam_mcp.py +224 -0
  149. aurelian-0.3.2/src/aurelian/agents/gocam/gocam_tools.py +294 -0
  150. aurelian-0.3.2/src/aurelian/agents/linkml/__init__.py +0 -0
  151. aurelian-0.3.2/src/aurelian/agents/linkml/linkml_agent.py +62 -0
  152. aurelian-0.3.2/src/aurelian/agents/linkml/linkml_config.py +48 -0
  153. aurelian-0.3.2/src/aurelian/agents/linkml/linkml_evals.py +66 -0
  154. aurelian-0.3.2/src/aurelian/agents/linkml/linkml_gradio.py +45 -0
  155. aurelian-0.3.2/src/aurelian/agents/linkml/linkml_mcp.py +186 -0
  156. aurelian-0.3.2/src/aurelian/agents/linkml/linkml_tools.py +102 -0
  157. aurelian-0.3.2/src/aurelian/agents/literature/__init__.py +3 -0
  158. aurelian-0.3.2/src/aurelian/agents/literature/literature_agent.py +55 -0
  159. aurelian-0.3.2/src/aurelian/agents/literature/literature_config.py +35 -0
  160. aurelian-0.3.2/src/aurelian/agents/literature/literature_gradio.py +52 -0
  161. aurelian-0.3.2/src/aurelian/agents/literature/literature_mcp.py +174 -0
  162. aurelian-0.3.2/src/aurelian/agents/literature/literature_tools.py +182 -0
  163. aurelian-0.3.2/src/aurelian/agents/monarch/__init__.py +25 -0
  164. aurelian-0.3.2/src/aurelian/agents/monarch/monarch_agent.py +44 -0
  165. aurelian-0.3.2/src/aurelian/agents/monarch/monarch_config.py +45 -0
  166. aurelian-0.3.2/src/aurelian/agents/monarch/monarch_gradio.py +51 -0
  167. aurelian-0.3.2/src/aurelian/agents/monarch/monarch_mcp.py +65 -0
  168. aurelian-0.3.2/src/aurelian/agents/monarch/monarch_tools.py +113 -0
  169. aurelian-0.3.2/src/aurelian/agents/oak/__init__.py +0 -0
  170. aurelian-0.3.2/src/aurelian/agents/oak/oak_config.py +27 -0
  171. aurelian-0.3.2/src/aurelian/agents/oak/oak_gradio.py +57 -0
  172. aurelian-0.3.2/src/aurelian/agents/ontology_mapper/__init__.py +31 -0
  173. aurelian-0.3.2/src/aurelian/agents/ontology_mapper/ontology_mapper_agent.py +56 -0
  174. aurelian-0.3.2/src/aurelian/agents/ontology_mapper/ontology_mapper_config.py +50 -0
  175. aurelian-0.3.2/src/aurelian/agents/ontology_mapper/ontology_mapper_evals.py +108 -0
  176. aurelian-0.3.2/src/aurelian/agents/ontology_mapper/ontology_mapper_gradio.py +58 -0
  177. aurelian-0.3.2/src/aurelian/agents/ontology_mapper/ontology_mapper_mcp.py +81 -0
  178. aurelian-0.3.2/src/aurelian/agents/ontology_mapper/ontology_mapper_tools.py +147 -0
  179. aurelian-0.3.2/src/aurelian/agents/phenopackets/__init__.py +3 -0
  180. aurelian-0.3.2/src/aurelian/agents/phenopackets/phenopackets_agent.py +58 -0
  181. aurelian-0.3.2/src/aurelian/agents/phenopackets/phenopackets_config.py +72 -0
  182. aurelian-0.3.2/src/aurelian/agents/phenopackets/phenopackets_evals.py +99 -0
  183. aurelian-0.3.2/src/aurelian/agents/phenopackets/phenopackets_gradio.py +55 -0
  184. aurelian-0.3.2/src/aurelian/agents/phenopackets/phenopackets_mcp.py +178 -0
  185. aurelian-0.3.2/src/aurelian/agents/phenopackets/phenopackets_tools.py +127 -0
  186. aurelian-0.3.2/src/aurelian/agents/rag/__init__.py +40 -0
  187. aurelian-0.3.2/src/aurelian/agents/rag/rag_agent.py +83 -0
  188. aurelian-0.3.2/src/aurelian/agents/rag/rag_config.py +80 -0
  189. aurelian-0.3.2/src/aurelian/agents/rag/rag_gradio.py +67 -0
  190. aurelian-0.3.2/src/aurelian/agents/rag/rag_mcp.py +107 -0
  191. aurelian-0.3.2/src/aurelian/agents/rag/rag_tools.py +189 -0
  192. aurelian-0.3.2/src/aurelian/agents/rag_agent.py +54 -0
  193. aurelian-0.3.2/src/aurelian/agents/robot/__init__.py +0 -0
  194. aurelian-0.3.2/src/aurelian/agents/robot/assets/__init__.py +3 -0
  195. aurelian-0.3.2/src/aurelian/agents/robot/assets/template.md +384 -0
  196. aurelian-0.3.2/src/aurelian/agents/robot/robot_config.py +25 -0
  197. aurelian-0.3.2/src/aurelian/agents/robot/robot_gradio.py +46 -0
  198. aurelian-0.3.2/src/aurelian/agents/robot/robot_mcp.py +100 -0
  199. aurelian-0.3.2/src/aurelian/agents/robot/robot_ontology_agent.py +139 -0
  200. aurelian-0.3.2/src/aurelian/agents/robot/robot_tools.py +50 -0
  201. aurelian-0.3.2/src/aurelian/agents/talisman/__init__.py +3 -0
  202. aurelian-0.3.2/src/aurelian/agents/talisman/talisman_agent.py +126 -0
  203. aurelian-0.3.2/src/aurelian/agents/talisman/talisman_config.py +66 -0
  204. aurelian-0.3.2/src/aurelian/agents/talisman/talisman_gradio.py +50 -0
  205. aurelian-0.3.2/src/aurelian/agents/talisman/talisman_mcp.py +168 -0
  206. aurelian-0.3.2/src/aurelian/agents/talisman/talisman_tools.py +720 -0
  207. aurelian-0.3.2/src/aurelian/agents/ubergraph/__init__.py +40 -0
  208. aurelian-0.3.2/src/aurelian/agents/ubergraph/ubergraph_agent.py +71 -0
  209. aurelian-0.3.2/src/aurelian/agents/ubergraph/ubergraph_config.py +79 -0
  210. aurelian-0.3.2/src/aurelian/agents/ubergraph/ubergraph_gradio.py +48 -0
  211. aurelian-0.3.2/src/aurelian/agents/ubergraph/ubergraph_mcp.py +69 -0
  212. aurelian-0.3.2/src/aurelian/agents/ubergraph/ubergraph_tools.py +118 -0
  213. aurelian-0.3.2/src/aurelian/agents/uniprot/__init__.py +37 -0
  214. aurelian-0.3.2/src/aurelian/agents/uniprot/uniprot_agent.py +43 -0
  215. aurelian-0.3.2/src/aurelian/agents/uniprot/uniprot_config.py +43 -0
  216. aurelian-0.3.2/src/aurelian/agents/uniprot/uniprot_evals.py +99 -0
  217. aurelian-0.3.2/src/aurelian/agents/uniprot/uniprot_gradio.py +48 -0
  218. aurelian-0.3.2/src/aurelian/agents/uniprot/uniprot_mcp.py +168 -0
  219. aurelian-0.3.2/src/aurelian/agents/uniprot/uniprot_tools.py +136 -0
  220. aurelian-0.3.2/src/aurelian/agents/web/__init__.py +0 -0
  221. aurelian-0.3.2/src/aurelian/agents/web/web_config.py +27 -0
  222. aurelian-0.3.2/src/aurelian/agents/web/web_gradio.py +48 -0
  223. aurelian-0.3.2/src/aurelian/agents/web/web_mcp.py +50 -0
  224. aurelian-0.3.2/src/aurelian/agents/web/web_tools.py +108 -0
  225. aurelian-0.3.2/src/aurelian/chat.py +23 -0
  226. aurelian-0.3.2/src/aurelian/cli.py +800 -0
  227. aurelian-0.3.2/src/aurelian/dependencies/__init__.py +0 -0
  228. aurelian-0.3.2/src/aurelian/dependencies/workdir.py +78 -0
  229. aurelian-0.3.2/src/aurelian/mcp/__init__.py +0 -0
  230. aurelian-0.3.2/src/aurelian/mcp/amigo_mcp_test.py +86 -0
  231. aurelian-0.3.2/src/aurelian/mcp/config_generator.py +123 -0
  232. aurelian-0.3.2/src/aurelian/mcp/example_config.json +43 -0
  233. aurelian-0.3.2/src/aurelian/mcp/generate_sample_config.py +37 -0
  234. aurelian-0.3.2/src/aurelian/mcp/gocam_mcp_test.py +126 -0
  235. aurelian-0.3.2/src/aurelian/mcp/linkml_mcp_tools.py +190 -0
  236. aurelian-0.3.2/src/aurelian/mcp/mcp_discovery.py +87 -0
  237. aurelian-0.3.2/src/aurelian/mcp/mcp_test.py +31 -0
  238. aurelian-0.3.2/src/aurelian/mcp/phenopackets_mcp_test.py +103 -0
  239. aurelian-0.3.2/src/aurelian/tools/__init__.py +0 -0
  240. aurelian-0.3.2/src/aurelian/tools/web/__init__.py +0 -0
  241. aurelian-0.3.2/src/aurelian/tools/web/url_download.py +51 -0
  242. aurelian-0.3.2/src/aurelian/utils/__init__.py +0 -0
  243. aurelian-0.3.2/src/aurelian/utils/async_utils.py +15 -0
  244. aurelian-0.3.2/src/aurelian/utils/data_utils.py +32 -0
  245. aurelian-0.3.2/src/aurelian/utils/documentation_manager.py +59 -0
  246. aurelian-0.3.2/src/aurelian/utils/doi_fetcher.py +238 -0
  247. aurelian-0.3.2/src/aurelian/utils/ontology_utils.py +68 -0
  248. aurelian-0.3.2/src/aurelian/utils/pdf_fetcher.py +23 -0
  249. aurelian-0.3.2/src/aurelian/utils/process_logs.py +100 -0
  250. aurelian-0.3.2/src/aurelian/utils/pubmed_utils.py +238 -0
  251. aurelian-0.3.2/src/aurelian/utils/pytest_report_to_markdown.py +67 -0
  252. aurelian-0.3.2/src/aurelian/utils/robot_ontology_utils.py +112 -0
  253. aurelian-0.3.2/src/aurelian/utils/search_utils.py +95 -0
aurelian-0.3.2/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+
2
+ The MIT License (MIT)
3
+
4
+ Copyright (c) 2025 Monarch Initiative
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in
14
+ all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ THE SOFTWARE.
@@ -0,0 +1,105 @@
1
+ Metadata-Version: 2.3
2
+ Name: aurelian
3
+ Version: 0.3.2
4
+ Summary: aurelian
5
+ License: MIT
6
+ Author: Author 1
7
+ Author-email: author@org.org
8
+ Requires-Python: >=3.11,<4.0
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Provides-Extra: bioservices
15
+ Provides-Extra: chem
16
+ Provides-Extra: gocam
17
+ Provides-Extra: gradio
18
+ Provides-Extra: linkml
19
+ Provides-Extra: pdfminer
20
+ Provides-Extra: rdkit
21
+ Requires-Dist: bioservices (>=1.12.0) ; extra == "bioservices"
22
+ Requires-Dist: bs4 (>=0.0.2)
23
+ Requires-Dist: cairosvg (>=2.7.1,<3.0.0)
24
+ Requires-Dist: click
25
+ Requires-Dist: duckduckgo-search (>=7.3.2)
26
+ Requires-Dist: gocam ; extra == "gocam"
27
+ Requires-Dist: gradio (>=5.23.3,<6.0.0) ; extra == "gradio"
28
+ Requires-Dist: importlib-metadata (>=8.2.0)
29
+ Requires-Dist: linkml ; extra == "linkml"
30
+ Requires-Dist: linkml-store[llm,mongodb] (>=0.2.4)
31
+ Requires-Dist: logfire (>=3.5.3)
32
+ Requires-Dist: markdownify (>=0.14.1)
33
+ Requires-Dist: markitdown (>=0.0.1a4)
34
+ Requires-Dist: mcp[cli] (>=1.3.0,<2.0.0)
35
+ Requires-Dist: oaklib (>=0.6.19)
36
+ Requires-Dist: pdfminer-six ; extra == "pdfminer"
37
+ Requires-Dist: pydantic-ai (>=0.0.29)
38
+ Requires-Dist: pypaperbot (>=1.4.1)
39
+ Requires-Dist: pytest-asyncio (>=0.25.3,<0.26.0)
40
+ Requires-Dist: rdkit ; extra == "rdkit" or extra == "chem"
41
+ Requires-Dist: tabulate (>=0.9.0)
42
+ Requires-Dist: undetected-chromedriver (>=3.5.5)
43
+ Requires-Dist: wikipedia (>=1.4.0)
44
+ Description-Content-Type: text/markdown
45
+
46
+
47
+ # Aurelian: Agentic Universal Research Engine for Literature, Integration, Annotation, and Navigation
48
+
49
+ | [Documentation](https://monarch-initiative.github.io/aurelian) |
50
+
51
+ ```
52
+ aurelian --help
53
+ ```
54
+
55
+ Most commands will start up a different AI agent.
56
+
57
+ ## Examples of use
58
+
59
+ ### TALISMAN
60
+
61
+ gene set enrichment
62
+
63
+ ### Aria
64
+
65
+ checking papers against checklists
66
+
67
+ ### GO-CAM agent
68
+
69
+ This agent is for exploring, chatting with, and reviewing GO-CAMs
70
+
71
+ Docs: [gocam_agent](https://monarch-initiative.github.io/aurelian/agents/gocam_agent/)
72
+
73
+ It can be used to generate reviews according to guidelines for GO-CAMs:
74
+
75
+ * [GO-CAM Reviews](https://cmungall.github.io/go-cam-reviews/)
76
+
77
+ It can also generate SVGs, demonstrating innate knowledge of both the visual grammar of pathway diagrams and the semantics of the underlying biology.
78
+
79
+
80
+ <img alt="img" src="https://cmungall.github.io/go-cam-reviews/figures/FIG-646ff70100005137-IL33_signaling_pathway__Human_.svg" />
81
+
82
+ ### GO-Ann agent
83
+
84
+ This agent is for exploring, chatting with, and reviewing standard annotations
85
+
86
+
87
+ Docs: [go_ann_agent](https://monarch-initiative.github.io/aurelian/agents/go_ann_agent/)
88
+
89
+ Example review using TF guidelines:
90
+
91
+ https://github.com/geneontology/go-annotation/issues/5743
92
+
93
+ ## Troubleshooting
94
+
95
+ ### Installing linkml-store
96
+
97
+ Some agents require linkml-store pre-indexed. E.g. a mongodb with gocams for cam agent.
98
+ Consult the [linkml-store documentation](https://linkml.io/linkml-store/) for more information.
99
+
100
+ ### Semantic search over ontologies
101
+
102
+ If an agent requires ontology search it will use the semsql/OAK sqlite database.
103
+ The first time querying it will use linkml-store to create an LLM index. Requires OAI key.
104
+ This may be slow first iteration. Will be cached until your pystow cache regenerates.
105
+
@@ -0,0 +1,59 @@
1
+
2
+ # Aurelian: Agentic Universal Research Engine for Literature, Integration, Annotation, and Navigation
3
+
4
+ | [Documentation](https://monarch-initiative.github.io/aurelian) |
5
+
6
+ ```
7
+ aurelian --help
8
+ ```
9
+
10
+ Most commands will start up a different AI agent.
11
+
12
+ ## Examples of use
13
+
14
+ ### TALISMAN
15
+
16
+ gene set enrichment
17
+
18
+ ### Aria
19
+
20
+ checking papers against checklists
21
+
22
+ ### GO-CAM agent
23
+
24
+ This agent is for exploring, chatting with, and reviewing GO-CAMs
25
+
26
+ Docs: [gocam_agent](https://monarch-initiative.github.io/aurelian/agents/gocam_agent/)
27
+
28
+ It can be used to generate reviews according to guidelines for GO-CAMs:
29
+
30
+ * [GO-CAM Reviews](https://cmungall.github.io/go-cam-reviews/)
31
+
32
+ It can also generate SVGs, demonstrating innate knowledge of both the visual grammar of pathway diagrams and the semantics of the underlying biology.
33
+
34
+
35
+ <img alt="img" src="https://cmungall.github.io/go-cam-reviews/figures/FIG-646ff70100005137-IL33_signaling_pathway__Human_.svg" />
36
+
37
+ ### GO-Ann agent
38
+
39
+ This agent is for exploring, chatting with, and reviewing standard annotations
40
+
41
+
42
+ Docs: [go_ann_agent](https://monarch-initiative.github.io/aurelian/agents/go_ann_agent/)
43
+
44
+ Example review using TF guidelines:
45
+
46
+ https://github.com/geneontology/go-annotation/issues/5743
47
+
48
+ ## Troubleshooting
49
+
50
+ ### Installing linkml-store
51
+
52
+ Some agents require linkml-store pre-indexed. E.g. a mongodb with gocams for cam agent.
53
+ Consult the [linkml-store documentation](https://linkml.io/linkml-store/) for more information.
54
+
55
+ ### Semantic search over ontologies
56
+
57
+ If an agent requires ontology search it will use the semsql/OAK sqlite database.
58
+ The first time querying it will use linkml-store to create an LLM index. Requires OAI key.
59
+ This may be slow first iteration. Will be cached until your pystow cache regenerates.
@@ -0,0 +1,130 @@
1
+ [tool.poetry]
2
+ name = "aurelian"
3
+ version = "0.3.2"
4
+ description = "aurelian"
5
+ authors = ["Author 1 <author@org.org>"]
6
+ license = "MIT"
7
+ readme = "README.md"
8
+
9
+ [tool.poetry.dependencies]
10
+ python = "^3.11"
11
+ click = "*"
12
+ importlib-metadata = ">=8.2.0"
13
+ oaklib = ">=0.6.19"
14
+ tabulate = ">=0.9.0"
15
+ linkml-store = {extras = ["llm", "mongodb"], version = ">=0.2.4"}
16
+ rdkit = {optional=true, version="*"}
17
+ gocam = {optional=true, version="*"}
18
+ linkml = {optional=true, version="*"}
19
+ gradio = "^5.23.3"
20
+ pydantic-ai = ">=0.0.29"
21
+ logfire = ">=3.5.3"
22
+ bs4 = ">=0.0.2"
23
+ duckduckgo-search = ">=7.3.2"
24
+ markdownify = ">=0.14.1"
25
+ wikipedia = ">=1.4.0"
26
+ markitdown = ">=0.0.1a4"
27
+ pypaperbot = ">=1.4.1"
28
+ undetected-chromedriver = ">=3.5.5"
29
+ bioservices = ">=1.12.0"
30
+ pdfminer-six = {optional=true, version="*"}
31
+ mcp = {extras = ["cli"], version = "^1.3.0"}
32
+ pytest-asyncio = "^0.25.3"
33
+ cairosvg = "^2.7.1"
34
+
35
+ [tool.poetry.group.dev.dependencies]
36
+ pytest = {version = ">=8.3.2"}
37
+ pytest-reportlog = {version = "*"}
38
+ pytest-metadata = {version = "*"}
39
+ tox = {version = ">=4.16.0"}
40
+ mypy = {version = "*"}
41
+ types-PyYAML = {version = "*"}
42
+ jupyter = {version = "*"}
43
+ papermill = {version = "*"}
44
+ nbdime = {version = "*"}
45
+ nbformat = {version = "*"}
46
+ pre-commit = {version = ">=3.3.3"}
47
+
48
+ [tool.poetry.extras]
49
+ rdkit = ["rdkit"]
50
+ gocam = ["gocam"]
51
+ gradio = ["gradio"]
52
+ bioservices = ["bioservices"]
53
+ linkml = ["linkml"]
54
+ chem = ["rdkit"]
55
+ pdfminer = ["pdfminer-six"]
56
+
57
+ [tool.pytest.ini_options]
58
+ markers = [
59
+ "integration: marks tests as integration tests that might have external dependencies",
60
+ "flaky: marks tests that might occasionally fail due to external conditions",
61
+ ]
62
+
63
+ [tool.poetry.group.docs]
64
+ optional = true
65
+
66
+ [tool.poetry.group.docs.dependencies]
67
+ mkdocs = "*"
68
+ mkdocs-material = "*"
69
+ mkdocs-mermaid2-plugin = "*"
70
+ mkdocs-gen-files = "*"
71
+ mkdocs-literate-nav = "*"
72
+ mknotebooks = ">=0.8.0"
73
+ mkdocs-windmill = "*"
74
+ mkdocs-click = "*"
75
+ mkdocstrings = {extras = ["crystal", "python"], version = "*"}
76
+ typer = ">=0.9.0" # Required for mkdocs-click
77
+
78
+ [tool.poetry.scripts]
79
+ aurelian = "aurelian.cli:main"
80
+
81
+ [tool.poetry-dynamic-versioning]
82
+ enable = false
83
+ vcs = "git"
84
+ style = "pep440"
85
+
86
+ [tool.black]
87
+ line-length = 120
88
+ target-version = ["py38", "py39", "py310"]
89
+
90
+ [tool.ruff]
91
+ line-length = 120
92
+ target-version = "py310"
93
+
94
+ [tool.ruff.lint]
95
+ extend-ignore = [
96
+ "S101", # Allow assert statements in tests
97
+ "D104", # Ignore missing docstrings in __init__.py
98
+ "D417", # Ignore missing argument descriptions in docstrings
99
+ "D401", # Ignore enforcing imperative mood in docstrings
100
+ "D400", "D415", # Ignore docstring punctuation enforcement
101
+ "D200", # Ignore "one-line docstring should fit on one line"
102
+ "F821", # Ignore undefined name errors (useful if missing imports)
103
+ "S113", # Ignore "requests call without timeout" warnings
104
+ ]
105
+
106
+ [tool.ruff.lint.per-file-ignores]
107
+ "tests/**/*.py" = ["S101"] # Ignore asserts only in test files
108
+
109
+ fixable = ["ALL"]
110
+ select = [
111
+ "B", # bugbear
112
+ "D", # pydocstyle
113
+ "E", # pycodestyle errors
114
+ "F", # Pyflakes
115
+ "I", # isort
116
+ "S", # flake8-bandit
117
+ "W", # Warning
118
+ ]
119
+
120
+ [tool.ruff.lint.mccabe]
121
+ max-complexity = 10
122
+
123
+ [tool.codespell]
124
+ skip = "*.po,*.ts,.git,pyproject.toml"
125
+ count = ""
126
+ quiet-level = 3
127
+
128
+ [build-system]
129
+ requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"]
130
+ build-backend = "poetry_dynamic_versioning.backend"
@@ -0,0 +1,9 @@
1
+ """ubergraph-agent package."""
2
+
3
+ import importlib_metadata
4
+
5
+ try:
6
+ __version__ = importlib_metadata.version(__name__)
7
+ except importlib_metadata.PackageNotFoundError:
8
+ # package is not installed
9
+ __version__ = "0.0.0" # pragma: no cover
File without changes
@@ -0,0 +1,3 @@
1
+ """
2
+ AmiGO agent module for interacting with GO KnowledgeBase via AmiGO solr endpoint.
3
+ """
@@ -0,0 +1,77 @@
1
+ """
2
+ Agent for interacting with GO KnowledgeBase via AmiGO solr endpoint.
3
+ """
4
+ from aurelian.agents.amigo.amigo_config import AmiGODependencies
5
+ from aurelian.agents.amigo.amigo_tools import (
6
+ find_gene_associations,
7
+ find_gene_associations_for_pmid,
8
+ lookup_uniprot_entry,
9
+ uniprot_mapping
10
+ )
11
+ from aurelian.agents.literature.literature_tools import (
12
+ lookup_pmid as literature_lookup_pmid,
13
+ search_literature_web,
14
+ retrieve_literature_page
15
+ )
16
+ from pydantic_ai import Agent, Tool
17
+
18
+ SYSTEM = """
19
+ You are a biocurator that can answer questions using the Gene Ontology knowledge base via the AmiGO API.
20
+
21
+ Do not assume the knowledge base is complete or always correct. Your job is to help curators find mistakes
22
+ or missing information. A particular pervasive issue in GO is over-annotation based on phenotypes - a gene
23
+ should only be annotated to a process if it is involved in that process, i.e., if the activity of the
24
+ gene process is an identifiable step in the pathway.
25
+
26
+ You can help with:
27
+ - Finding gene associations for specific genes or gene products
28
+ - Finding gene associations cited in specific publications by PMID
29
+ - Looking up protein information via UniProt
30
+ - Mapping UniProt accessions to other databases
31
+ - Analyzing gene function and involvement in biological processes
32
+ - Identifying potential over-annotations or missing annotations
33
+
34
+ You can also use your general knowledge of genes and biological processes, and do additional searches
35
+ when needed to provide context or verification.
36
+ """
37
+
38
+ amigo_agent = Agent(
39
+ model="openai:gpt-4o",
40
+ deps_type=AmiGODependencies,
41
+ system_prompt=SYSTEM,
42
+ tools=[
43
+ Tool(find_gene_associations),
44
+ Tool(find_gene_associations_for_pmid),
45
+ Tool(lookup_uniprot_entry),
46
+ Tool(uniprot_mapping),
47
+ Tool(literature_lookup_pmid, name="lookup_pmid",
48
+ description="""Lookup the text of a PubMed article by its PMID.
49
+
50
+ A PMID should be of the form "PMID:nnnnnnn" (no underscores).
51
+
52
+ This is useful for retrieving the full text of papers referenced in GO annotations
53
+ to verify the evidence for gene annotations or identify potential over-annotations.
54
+
55
+ Args:
56
+ pmid: The PubMed ID to look up
57
+
58
+ Returns:
59
+ str: Full text if available, otherwise abstract"""),
60
+ Tool(search_literature_web, name="search_web",
61
+ description="""Search the web using a text query.
62
+
63
+ Args:
64
+ query: The search query
65
+
66
+ Returns:
67
+ str: Search results with summaries"""),
68
+ Tool(retrieve_literature_page, name="retrieve_web_page",
69
+ description="""Fetch the contents of a web page.
70
+
71
+ Args:
72
+ url: The URL to fetch
73
+
74
+ Returns:
75
+ str: The contents of the web page""")
76
+ ]
77
+ )
@@ -0,0 +1,85 @@
1
+ """
2
+ Configuration classes for the AmiGO agent.
3
+ """
4
+ from dataclasses import dataclass, field
5
+
6
+ from bioservices import UniProt
7
+ from oaklib import get_adapter
8
+ from oaklib.implementations import AmiGOImplementation
9
+
10
+ from aurelian.dependencies.workdir import HasWorkdir
11
+ from aurelian.agents.uniprot.uniprot_tools import normalize_uniprot_id
12
+
13
+ # Initialize UniProt service
14
+ uniprot_service = UniProt(verbose=False)
15
+
16
+
17
+ @dataclass
18
+ class AmiGODependencies(HasWorkdir):
19
+ """
20
+ Configuration for the AmiGO agent.
21
+
22
+ Args:
23
+ taxon: NCBI Taxonomy ID, defaults to human (9606)
24
+ """
25
+ taxon: str = field(default="9606")
26
+
27
+ def get_uniprot_service(self) -> UniProt:
28
+ """
29
+ Get the UniProt service for protein lookups.
30
+
31
+ Returns:
32
+ UniProt: The UniProt service
33
+ """
34
+ return uniprot_service
35
+
36
+ def get_amigo_adapter(self) -> AmiGOImplementation:
37
+ """
38
+ Get the AmiGO adapter for the specified taxon.
39
+
40
+ Returns:
41
+ AmiGOImplementation: The OAK AmiGO adapter
42
+ """
43
+ return get_adapter(f"amigo:NCBITaxon:{self.taxon}")
44
+
45
+ def get_gene_id(self, gene_term: str) -> str:
46
+ """
47
+ Normalize a gene identifier.
48
+
49
+ Args:
50
+ gene_term: The gene identifier
51
+
52
+ Returns:
53
+ str: The normalized gene identifier
54
+ """
55
+ return gene_term
56
+
57
+
58
+ def normalize_pmid(pmid: str) -> str:
59
+ """
60
+ Normalize a PubMed ID to the format PMID:nnnnnnn.
61
+
62
+ Args:
63
+ pmid: The PubMed ID
64
+
65
+ Returns:
66
+ str: The normalized PubMed ID
67
+ """
68
+ if ":" in pmid:
69
+ pmid = pmid.split(":", 1)[1]
70
+ if not pmid.startswith("PMID:"):
71
+ pmid = f"PMID:{pmid}"
72
+ return pmid
73
+
74
+
75
+ def get_config(taxon: str = "9606") -> AmiGODependencies:
76
+ """
77
+ Get the AmiGO configuration.
78
+
79
+ Args:
80
+ taxon: NCBI Taxonomy ID, defaults to human (9606)
81
+
82
+ Returns:
83
+ AmiGODependencies: The AmiGO dependencies
84
+ """
85
+ return AmiGODependencies(taxon=taxon)
@@ -0,0 +1,73 @@
1
+ """
2
+ Evaluation module for the AmiGO agent.
3
+
4
+ This module implements evaluations for the AmiGO agent using the pydantic-ai-evals framework.
5
+ """
6
+ import asyncio
7
+ import sys
8
+ from typing import Optional, Any, Dict, Callable, Awaitable
9
+
10
+ from aurelian.evaluators.model import MetadataDict, metadata
11
+ from aurelian.evaluators.substring_evaluator import SubstringEvaluator
12
+ from pydantic_evals import Case, Dataset
13
+
14
+ from aurelian.agents.amigo.amigo_agent import amigo_agent
15
+ from aurelian.agents.amigo.amigo_config import AmiGODependencies
16
+
17
+ class AmiGOMetadata(Dict[str, Any]):
18
+ """Simple metadata dictionary for AmiGO evaluations."""
19
+ pass
20
+
21
+ # Define individual evaluation cases
22
+ case1 = Case(
23
+ name="uniprot_annotations",
24
+ inputs="What are some annotations for the protein UniProtKB:Q9UMS5",
25
+ expected_output="GO:", # Should contain GO terms
26
+ metadata=metadata("medium", "annotation_retrieval")
27
+ )
28
+
29
+ case2 = Case(
30
+ name="paper_overannotation",
31
+ inputs="Check PMID:19661248 for over-annotation",
32
+ expected_output="annotation", # Should evaluate the paper's annotations
33
+ metadata=metadata("hard", "literature_assessment")
34
+ )
35
+
36
+ case3 = Case(
37
+ name="pathway_genes",
38
+ inputs="What genes are involved in the ribosome biogenesis pathway?",
39
+ expected_output="ribosom", # Should mention ribosome-related genes
40
+ metadata=metadata("medium", "pathway_analysis")
41
+ )
42
+
43
+ case4 = Case(
44
+ name="database_mapping",
45
+ inputs="Map UniProtKB:P04637 to KEGG database",
46
+ expected_output="KEGG", # Should contain KEGG IDs
47
+ metadata=metadata("easy", "database_mapping")
48
+ )
49
+
50
+ case5 = Case(
51
+ name="dna_repair_genes",
52
+ inputs="Search for genes involved in DNA repair and show me their annotations",
53
+ expected_output="repair", # Should mention DNA repair annotations
54
+ metadata=metadata("medium", "gene_function_search")
55
+ )
56
+
57
+ def create_eval_dataset() -> Dataset[str, str, MetadataDict]:
58
+ """
59
+ Create a dataset for evaluating the AmiGO agent.
60
+
61
+ Returns:
62
+ Dataset of AmiGO evaluation cases with appropriate evaluators
63
+ """
64
+ # Collect all cases
65
+ cases = [case1, case2, case3, case4, case5]
66
+
67
+ # Dataset-level evaluators
68
+ evaluators = [SubstringEvaluator()]
69
+
70
+ return Dataset(
71
+ cases=cases,
72
+ evaluators=evaluators
73
+ )
@@ -0,0 +1,52 @@
1
+ """
2
+ Gradio UI for the AmiGO agent.
3
+ """
4
+ from typing import List, Optional
5
+
6
+ import gradio as gr
7
+
8
+ from aurelian.agents.amigo.amigo_agent import amigo_agent
9
+ from aurelian.agents.amigo.amigo_config import AmiGODependencies
10
+ from aurelian.utils.async_utils import run_sync
11
+
12
+
13
+ def chat(deps: Optional[AmiGODependencies] = None, taxon: Optional[str] = None, **kwargs):
14
+ """
15
+ Initialize a chat interface for the AmiGO agent.
16
+
17
+ Args:
18
+ deps: Optional dependencies configuration
19
+ taxon: Optional NCBI Taxonomy ID, defaults to human (9606)
20
+ **kwargs: Additional arguments to pass to the agent
21
+
22
+ Returns:
23
+ A Gradio chat interface
24
+ """
25
+ if deps is None:
26
+ deps = AmiGODependencies()
27
+
28
+ if taxon:
29
+ deps.taxon = taxon
30
+
31
+ def get_info(query: str, history: List[str]) -> str:
32
+ print(f"QUERY: {query}")
33
+ print(f"HISTORY: {history}")
34
+ if history:
35
+ query += "## History"
36
+ for h in history:
37
+ query += f"\n{h}"
38
+ result = run_sync(lambda: amigo_agent.run_sync(query, deps=deps, **kwargs))
39
+ return result.data
40
+
41
+ return gr.ChatInterface(
42
+ fn=get_info,
43
+ type="messages",
44
+ title="AmiGO AI Assistant",
45
+ examples=[
46
+ ["What are some annotations for the protein UniProtKB:Q9UMS5"],
47
+ ["Check PMID:19661248 for over-annotation"],
48
+ ["What genes are involved in the ribosome biogenesis pathway?"],
49
+ ["Map UniProtKB:P04637 to KEGG database"],
50
+ ["Search for genes involved in DNA repair and show me their annotations"]
51
+ ]
52
+ )