Skip to content

WIP: Scaffold Python/Docker CLI architecture for BioSimulators curation (#68) - #106

Open
dyrpsf wants to merge 1 commit into
draeger-lab:masterfrom
dyrpsf:biosimulators-curation-issue-68
Open

WIP: Scaffold Python/Docker CLI architecture for BioSimulators curation (#68)#106
dyrpsf wants to merge 1 commit into
draeger-lab:masterfrom
dyrpsf:biosimulators-curation-issue-68

Conversation

@dyrpsf

@dyrpsf dyrpsf commented Mar 19, 2026

Copy link
Copy Markdown
Contributor

Problem

This PR addresses Issue #68, aiming to reach Level 5 curation on BioSimulators, which requires a containerized command-line interface.

Architectural Setup

This Draft PR scaffolds the recommended architecture:

  1. Py4J Integration: Added py4j to pom.xml and created BioSimulatorsGateway.java to act as the Java-side server for the SBSCL engine.
  2. Python CLI: Created biosimulators/main.py utilizing biosimulators-utils to handle SED-ML parsing and interface with the Java Gateway.
  3. Containerization: Created a Dockerfile and entrypoint.sh to package the Fat JAR along with its dependencies, initialize the Java server in the background, and expose the Python CLI.
  4. Tested: Verified the Docker build and the Python entrypoint locally.

Next Steps

  • Submitting this as a WIP to get maintainer feedback on the Py4J/Docker architectural approach before fully mapping the SED-ML tasks.
  • Once approved, the main.py script needs the specific SED-ML variables mapped to the sbscl_engine via the Py4J gateway.

@draeger draeger left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did not spot any obvious errors in the implementation, but I am unsure about the project structure. In particular, is biosimulators in the repository root the right location for the biosimulators.org compatibility code, or should this be placed under src instead? I would appreciate the other reviewer’s opinion before approving.

@dyrpsf

dyrpsf commented Mar 26, 2026

Copy link
Copy Markdown
Contributor Author

I did not spot any obvious errors in the implementation, but I am unsure about the project structure. In particular, is biosimulators in the repository root the right location for the biosimulators.org compatibility code, or should this be placed under src instead? I would appreciate the other reviewer’s opinion before approving.

Thank you for the review, @draeger ! I'm really glad the core Py4J and Docker implementation looks solid.

I am completely flexible on the project structure. Since these are Python scripts, a Dockerfile, and shell scripts rather than Java source code, I initially placed them in a root biosimulators directory to keep them distinct from the Maven src tree. However, I can easily move the entire directory inside src/ (or any other preferred location) if that aligns better with the repository's conventions.

I will hold off on making any changes and wait for @matthiaskoenig and @tyzerrr to share their thoughts. Once there is a consensus, I'll update the folder structure immediately!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve the curation level on BioSimulators

2 participants