API y cliente de línea de comandos
Todo lo que se hace en la interfaz se puede hacer desde un programa: con los mismos formularios, cuotas y tareas. Para usarla necesitás un token personal.
Cliente
Un solo archivo de Python, sin dependencias. Se configura con dos variables de entorno: armandomd_client.py
export ARMANDOMD_URL=http://gqc.quimica.unlp.edu.ar/armandomd/
export ARMANDOMD_TOKEN=amd_...
python armandomd_client.py me
El comando pipeline recorre el flujo completo, del código PDB al paquete exportado, a partir de un archivo JSON como este, y espera cada tarea:
{
"pdb_id": "1HSG",
"preparation": {
"chains": [
"A",
"B"
],
"ph": 7.0,
"reference_ligand": "B:902",
"keep_waters": [
"B:308"
]
},
"ligands": {
"name": "indinavir",
"smiles": "CC(C)(C)NC(=O)[C@@H]1CN(Cc2cccnc2)CCN1C[C@@H](O)C[C@@H](Cc1ccccc1)C(=O)N[C@H]1c2ccccc2C[C@H]1O indinavir",
"protonate": false
},
"docking": {
"exhaustiveness": 8,
"seed": 1
},
"system": {
"protein_ff": "ff14SB",
"water_model": "TIP3P"
},
"inputs": {
"values": {
"production_ns": 100
},
"hmr": false
},
"export": {
"name": "1hsg-indinavir",
"accept_warnings": true
}
}
python armandomd_client.py pipeline 1hsg.json --out 1hsg-indinavir.tar.gz
También tiene get, post y wait para llamar cualquier punto de la API.
API REST
Base: http://gqc.quimica.unlp.edu.ar/armandomd/api/v1/. Cada pedido lleva el token en el encabezado Authorization: Bearer. Los cuerpos y las respuestas son JSON; los errores tienen la clave «error» y, si son de validación, «errors» por campo. Las operaciones largas responden 202 con la tarea («job»): consultala hasta que su estado sea completed o failed.
curl -H "Authorization: Bearer $ARMANDOMD_TOKEN" http://gqc.quimica.unlp.edu.ar/armandomd/api/v1/me/
| Método | Ruta |
|---|---|
GET | me/ |
GET | jobs/<uuid>/ |
GET | structures/?pdb_id= |
POST | structures/ |
GET | structures/<id>/ |
POST | structures/<id>/prepare/ |
GET | receptors/<id>/ |
POST | receptors/<id>/boxes/ |
POST | receptors/<id>/redock/ |
GET | receptors/<id>/receptor.pdb |
POST | ligand-sets/ |
GET | ligand-sets/<id>/ |
POST | dockings/ |
GET | dockings/<id>/ |
POST | dockings/<id>/select/ |
POST | dockings/<id>/parametrize/ |
GET | parameters/<id>/ |
POST | systems/ |
GET | systems/<id>/ |
POST | systems/<id>/mcpb/ |
GET | templates/ |
POST | inputs/ |
GET | inputs/<id>/ |
GET | inputs/<id>/checks/ |
POST | exports/ |
GET | exports/<id>/ |
GET | exports/<id>/download/ |
Los campos de cada pedido son los de los formularios de la interfaz. Los errores de cuota responden 429.