Introduction
Modelling is one of synthetic biology's most powerful tools, allowing researchers to test designs, accelerate discovery, and refine experiments with greater confidence. Yet, for many students and iGEM teams, its potential remains locked behind a steep learning curve. Existing tools often require deep expertise in specialized formats like SBML (Systems Biology Markup Language), SBOL (Synthetic Biology Open Language), and many more, which can be difficult to create or modify without prior experience.
To bridge this gap, we developed BioMap: an intuitive platform that makes biological modeling accessible to everyone, regardless of their computational background.
BioMap eliminates technical barriers by leveraging natural language processing. Users can simply describe their biological system in plain English, and our integrated AI assistant converts it into a valid, simulatable model. For those who already have a model, BioMap seamlessly handles SBML file uploads. The platform then runs the simulation and presents the results through interactive graphs and clear visual summaries.
By simplifying the design, build, test, and learn cycle, BioMap empowers a new generation of scientists to harness the full power of modeling. Our complete project, including all documentation, is open-source and available on our team's GitHub for community use and future development.
Planning & Development
We structured the development of BioMap using the Agile Scrum framework, allowing us to build, release, and adapt features incrementally. Our primary stakeholders were our Wet Lab team members, who needed to quickly prototype models without getting bogged down in low-level syntax.
To guide the project, we defined a series of Minimum Viable Products (MVPs). This approach allowed us to build a functional core first and then layer on advanced features, ensuring BioMap was always a working tool throughout its development.
MVP 1: The Core Simulation Engine
Our first step was creating a proof-of-concept for the backend. We built a single API endpoint that could take a predefined model, run it through the Tellurium/RoadRunner simulation engine, and return the time-series data. This validated our core technical foundation.
MVP 2: GPT-Powered Input
Next, we developed the intuitive user interface. We integrated OpenAI's GPT-4o to translate plain English descriptions of biological systems into a structured JSON format, which was then converted to SBML (Systems Biology Markup Language).
MVP 3: Model Hardening & Automation
With the input mechanism working, we focused on making model generation more robust. We implemented logic to automatically add default compartments and generate mass-action rate laws for reactions when kinetics were not specified, significantly reducing the amount of detail a user needed to provide.
MVP 4: Dynamic Real-Time Simulation
This phase brought the models to life. We built an interactive frontend with sliders for parameters and initial concentrations. By creating a high-speed feedback loop with the backend, users could adjust a parameter and watch the simulation graph update instantly, providing a powerful way to explore a model's sensitivity.
MVP 5: Refinement and Deployment
In the final sprint, we polished the platform for its official release. This involved refining the codebase, styling the user interface for a clean and professional feel, and preparing the entire application for deployment.
This iterative roadmap ensured that BioMap was always functional while steadily adding the intelligence and interactivity that now make it a unique and powerful tool. A more detailed summary of the planning and development of the software tool can be found on the Engineering Cycle page.
Architecture
BioMap is built on a modular, full-stack architecture designed for scalability and a seamless user workflow. The system is composed of several key components that work in concert:
- PostgreSQL Database: This relational database serves as the persistent storage layer for the application. It stores all user account information, projects, chat histories, and the finalized SBML models, ensuring data integrity and allowing users to save and resume their work across sessions.
- Python FastAPI Server: The backend acts as the central nervous system of the application, providing a RESTful API for all client interactions. It manages user authentication, handles all data operations with the PostgreSQL database, and orchestrates communication between the frontend client, the AI model, and the simulation engine.
- AI Language Model (OpenAI): This component is the core of our natural language modeling interface. The FastAPI server sends user prompts and the current model state to the AI, which interprets the biological descriptions and returns a structured JSON object representing the updated model. This process makes complex systems biology modeling accessible without requiring knowledge of SBML.
- Simulation Core (Tellurium & RoadRunner): This is the high-performance computational engine. The backend passes finalized SBML models to this core, which uses the libRoadRunner library to execute rapid time-course simulations. It returns the raw numerical data, which is then sent to the frontend for visualization.
- React Web Client: The frontend provides a dynamic and responsive user interface for the entire platform. Built with React and Vite, it allows users to manage projects, interact with the AI through a chat interface to build models, and visualize simulation results using Plotly.js for interactive charting. All communication with the backend is handled through asynchronous REST API calls.

Figure 1: BioMap system architecture showing the interaction between frontend, backend, database, AI model, and simulation engine.

Figure 2: BioMap's React-based user interface showing the model building and simulation workflow.
This modular architecture ensures that each part of the application can be developed, scaled, and maintained independently. The backend and frontend are containerized and deployed on a cloud platform, which creates a consistent and reliable environment, streamlines updates, and ensures the application is robust and efficient.
Implementation
The implementation of BioMap is centered on a robust set of API endpoints that connect our user interface with the powerful backend services for model building and simulation. The user interface is broken down into three functional sections: the Project Dashboard, the Model Building Interface, and the Simulation & Analysis view.
Project Dashboard
Upon logging in, the user is presented with their project dashboard. This view is populated by making a GET
request to the /projects/{user_id}
endpoint, which retrieves all projects associated with their account. Users can initiate a new modeling workflow by clicking "New Project," which triggers a POST
request to /projects/create
. This action also automatically creates an initial chat session, seamlessly navigating the user to the Model Building Interface to begin their work.
Model Building (Chat Interface)
This is the core of BioMap, where natural language is translated into a formal systems biology model. The interface supports two primary methods for model creation:
- Conversational Input: The user describes their biological system in plain English. Each message is sent via a
POST
request to the/chat/
endpoint. The backend then packages this message with the current JSON representation of the model and sends it to the OpenAI GPT-4o service. The AI's response, a JSON object containing a conversational reply and the updated model state (new_model_state
), is parsed and displayed. A dedicated React component renders thenew_model_state
in real-time, providing the user with a continuously updated, structured view of their species, reactions, and events. - SBML Upload: Users can import existing models by uploading an SBML file (
.xml
or.sbml
), which sends the file's content to thePOST /chat/upload_sbml
endpoint. The backend then parses this file to establish the initial model state for the session.
The sidebar in this view allows for full management of chat sessions within a project, using POST
, PUT
, and DELETE
requests to endpoints like /chat/create
and /chat/{chat_id}
to handle creation, renaming, and deletion.
Simulation & Analysis
When a user is ready to simulate, they navigate to the "Simulation" tab. This action triggers a POST
request to /model/finalize/{session_id}
, where the backend converts the session's final JSON model into a valid SBML string. The frontend then calls the POST /simulate
endpoint, sending the model_id
and simulation settings (e.g., start/end time).
The results are rendered in an interactive graph using Plotly.js
. A key feature of this view is the real-time parameter tuning. A control panel displays sliders for every parameter in the model. Adjusting a slider instantly triggers a new call to the /simulate
endpoint with the updated parameter value, allowing users to perform rapid "what-if" analysis and observe how the system's dynamics change.
The "Report Summary" section integrates a rich text editor with our AI. Users can write their own observations or click "Generate" (POST /model/{model_id}/regenerate-summary
) to have the AI produce a structured, scientific summary of the simulation results. For collaboration and documentation, users can export the model as an SBML file (.xml)
, the time-series data as a CSV file
, or the plot as a PNG image
.
Automated Model Refinement
In addition to the user-facing features, we have implemented an automated process to enhance model robustness. Before a model is finalized for simulation, the backend analyzes the reaction network to intelligently identify species that act only as sources (only ever produced) or sinks (only ever consumed). It then automatically sets the boundaryCondition
attribute for these species to true
. This automated step prevents common simulation errors related to mass balance and improves the validity of the model without requiring expert intervention from the user.
Usage
BioMap is a full-stack web application. You can access the live, deployed version directly in your browser or run a local instance for development.
Online Access
The production version of BioMap is deployed online and is accessible without any installation. You can create an account and start building models immediately by visiting the following link:
- Live Application: https://www.bio-map.ca/login
Local Development
For developers who wish to run the application locally, the following steps will guide you through setting up and running the project.
1. Clone the Repository
Open your terminal and clone the project repository from GitHub:
Bash:
git clone https://gitlab.igem.org/2025/software-tools/guelph.git
cd igem2025-modelling-tool
2. Set Up the Backend
Navigate to the backend directory, create and activate a Python virtual environment, and install the required dependencies.
Bash:
cd backend
python -m venv venv
source venv/bin/activate
# On Windows, use: venv\Scripts\activate
pip install -r requirements.txt
3. Configure Environment Variables
In the backend directory, create a file named .env
and add your API keys and database URL.
Code snippet:
# backend/.env
DATABASE_URL="postgresql://user:password@host:port/database"
OPENAI_API_KEY="sk-YourSecretOpenAI_ApiKeyGoesHere"
4. Set Up the Frontend
Navigate to the frontend directory and install the Node.js packages. This single command will install everything needed to run the frontend, including the concurrently utility.
Bash:
cd ../frontend
npm install
Next, to enable the single-command startup, open frontend/package.json
and replace the existing start script with the following line:
JSON:
// frontend/package.json
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint .",
"preview": "vite preview",
"start": "concurrently \"npm run dev\" \"cd ../backend && uvicorn app.main:app --reload\""
},
5. Run the Application
From the frontend directory, run the single start command:
Bash:
npm start
This will launch both the React frontend and the Python backend servers simultaneously. The application will then be available in your browser (typically at http://localhost:5173
).
Reflection
Our development process followed an agile SCRUM methodology, which was instrumental in successfully delivering a functional and deployed application. This approach allowed our team to consistently iterate and ensure the core features of BioMap—translating natural language into simulatable SBML models—were robust and user-friendly.
While the primary goals were achieved, the project also presented significant challenges that led us to strategically defer two ambitious features.
Challenges and Scrapped Features
- Parameter Inference via Database Mining
- The Concept: A key goal was to create an advanced parameter-fitting model. The system was designed to search public SBML databases, identify models with similar topologies to the user's system, and infer plausible kinetic parameters.
- The Challenge: Despite successfully building the framework for this feature, the model's predictive accuracy did not meet our standards for scientific validity. During testing, the inferred parameters were unreliable, even for well-established models sourced directly from literature.
- The Outcome: Achieving the required level of accuracy would have demanded significant additional time for model training and validation. We made the decision to defer this feature to ensure the core simulation tool remained reliable and accurate.
- Real-Time SBOL Visualization
- The Concept: To enhance the user experience, we planned to integrate a real-time SBOL (Synthetic Biology Open Language) visualizer. As a user described their genetic circuit in the chat, the interface would render a graphical representation of the components, providing immediate visual feedback.
- The Challenge: The technical implementation of rendering dynamic, well-organized graphs that accurately updated with each chat message proved to be a significant front-end challenge. The initial prototypes did not meet our anticipated standards for visual clarity and usability.
- The Outcome: To prioritize a clean, stable, and performant user interface for the core modeling workflow, this feature was postponed.
These challenges provided valuable insights into the complexities of automated parameterization and dynamic biological visualization. The concepts remain compelling, and the groundwork laid during this project has created a solid foundation for pursuing them in future iterations of BioMap.
Conclusion
In under a year, our team successfully moved BioMap from concept to a fully deployed application, achieving our primary goal of making computational modeling accessible. While the core functionalities were successfully implemented, the project also presented significant technical challenges that led us to strategically defer two of our more ambitious features: automated parameter inference from databases and real-time SBOL visualization.
Despite these challenges, BioMap stands as a powerful tool that directly addresses a common bottleneck for iGEM teams: the high barrier to entry for computational modeling. By providing an intuitive platform where users can design and test systems in silico using natural language, our software allows teams to iterate on their designs and identify potential flaws before committing to expensive and time-consuming wet lab experiments. This workflow directly supports the "Design-Build-Test-Learn" cycle that is central to synthetic biology.
The groundwork laid in tackling the project's challenges has directly informed our path forward. We plan to revisit both automated parameter inference and dynamic visualization, building on the robust foundation we have now established. By continuing to lower the technical barriers, BioMap will empower future iGEM teams and researchers to innovate faster, making sophisticated modeling a standard and accessible part of the synthetic biology workflow.
Glossary
AI: Artificial Intelligence
GPT: Generated pre-trained transformer
SBML: Systems Biology Markup Language
SBOL: Synthetic Biology Open Language
Agile: A methodology that focuses on continuous delivery and improvement
SCRUM: A type of Agile process that allows teams to get multiple small parts done at a time, called sprints, with continuous testing and feedback.
Minimum Viable Products (MVPs): Functional prototypes which represent different iterations of the software tool.
Tellurium: A comprehensive Python accessible SBML-compliant modelling platform for biochemical reaction systems.