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étodoRuta
GETme/
GETjobs/<uuid>/
GETstructures/?pdb_id=
POSTstructures/
GETstructures/<id>/
POSTstructures/<id>/prepare/
GETreceptors/<id>/
POSTreceptors/<id>/boxes/
POSTreceptors/<id>/redock/
GETreceptors/<id>/receptor.pdb
POSTligand-sets/
GETligand-sets/<id>/
POSTdockings/
GETdockings/<id>/
POSTdockings/<id>/select/
POSTdockings/<id>/parametrize/
GETparameters/<id>/
POSTsystems/
GETsystems/<id>/
POSTsystems/<id>/mcpb/
GETtemplates/
POSTinputs/
GETinputs/<id>/
GETinputs/<id>/checks/
POSTexports/
GETexports/<id>/
GETexports/<id>/download/

Los campos de cada pedido son los de los formularios de la interfaz. Los errores de cuota responden 429.