An API for the Java-based synthetic biology simulation tool, iBioSim.
iBioSim was only previously accessible via the command line or a Java desktop app. The goal is to make the tool accessible via a webapp.
Synchronous endpoints complete the entire operation before responding with a 200 status (unless an error is encountered, resulting in a 500).
Note that these operations can be long-running depending on the parameters (>30 sec). If this is a problem, use asynchronous endpoints.
Asynchronous endpoints respond immediately with a 202 status (unless invalid parameters are provided, resulting in a 500).
These requests require the callback parameter, which must be a URL to which the server can post the results of the operation.
The callback URL must be of the following form:
http://host.com/this/part/doesnt/matter/{event}
including {event} with the curly braces. The API will replace {event} with either complete or error depending on the result.
For testing, try using Beeceptor to setup a mock callback server.
Important: All parameters are should be provided in the body of the request as multipart/form-data.
⏱ POST /sync/convert
📞 POST /async/convert
| Parameter | Type | Description |
|---|---|---|
sbol |
file |
SBOL file to convert (.sbol or .xml) |
topModelId |
string |
Default: topModel What to name the top model file in the case of multiple output files. |
📞 callback |
URL |
Callback URL |
⏱ POST /sync/analyze
📞 POST /async/analyze
Runs an analysis on the uploaded design. The request must satisfy one of the following cases:
- SBOL file (.sbol or .xml) with parameters
- SBOL file (.sbol or .xml) with an environment archive
- SBML file (.xml) with parameters
- SBML file (.xml) with an environment archive
- OMEX archive (.omex)
Providing an environment archive and parameters is an undefined case and may produce unexpected results.
| Parameter | Type | Description |
|---|---|---|
input |
file |
SBOL (.sbol or .xml), SBML (.xml), or OMEX (.omex) file to run analysis on. |
environment |
file |
Environment archive |
topModelId |
string |
Default: topModel What to name the top model file in the case of multiple output files. Only valid for SBOL files. |
simulationType |
string |
Type of simulation to conduct. Valid options are ode, hode, ssa, hssa, dfba, jode, and jssa. |
runs |
integer |
Number of runs to simulate. |
initialTime |
integer |
Start time for the simulation |
stopTime |
integer |
Stop time for the simulation |
outputTime |
integer |
Time at which the simulation begins outputting data |
printInterval |
integer |
Time interval between outputs |
minTimeStep |
integer |
Minimum time step |
maxTimeStep |
integer |
Maximum time step |
seed |
integer |
Seed used for pseudorandomness in simulation |
outputAll |
boolean |
Default: false Whether to output all produced files, or just run data |
📞 callback |
URL |
Callback URL |
Although this is a fairly simple Express app, it's easier to run containerized because of the dependency on iBioSim.
Clone the project
git clone https://github.com/zachsents/iBioSim-APIGo to the project directory
cd iBioSim-APIBuild the image
docker build -t ibiosim-api .Start the container
docker run -p 4000:4000 -it ibiosim-apiThe app will be exposed at http://localhost:4000.