This project is an interactive simulation tool designed to help researchers and students explore the dynamic relationship between hormone sensitivity and reproductive fitness in male songbirds. By manipulating key parameters like hormone concentrations and tissue sensitivity, users can visualize the impact of these factors on reproductive success over time.
The simulator is based on the dynamic state variable model developed by Dr. Nicole Baran, Ph.D., in behavioral neuroendocrinology. The model provides insights into how hormone receptor sensitivity, rather than just hormone concentration, plays a critical role in influencing various traits related to reproductive fitness. This forward-looking model aims to optimize fitness at each reproductive cycle by adjusting hormone sensitivity across different tissues.
- Interactive Sliders: Control hormone concentration, tissue sensitivity, and other variables through easy-to-use sliders.
- Multi-Run Simulations: Compare how varying specific inputs across multiple runs affects reproductive outcomes.
- Statistics & Model Insights: Generate visual and statistical outputs to deepen your understanding of the hormone-receptor interaction model.
- User-Controlled Inputs: Explore how hormone receptor counts and hormone concentration influence trait expression in male songbirds.
- Dynamic Legends & Buttons: Toggle between visualizations and legends that clarify the behavior of the model.
- Interactive Traits Visualization: View how a bird’s ability to regulate hormone sensitivity affects multiple traits, including reproductive behaviors, across breeding cycles.
- AI Integration: Add AI-generated explanations for model outputs to enhance usability for diverse audiences.
- Mobile Compatibility: Improve accessibility features for mobile devices.
- Reproductive Cycles: Incorporate full reproductive cycles to better link tissue sensitivity to reproductive outcomes.
- User Testing: Conduct testing with target audiences to refine the user experience.
- Publishing: Collaborate with Dr. Baran to publish the simulator alongside her research.
- Frontend: Svelte
- Backend: Flask, Python
- Karisma Lavana
- William McCune III
- Brandon Rivera
- Haruta Otaki
- Nelson Anderson
- Vanessa Lin
We extend our gratitude to:
- Dr. Nicole Baran, Faculty at Davidson College
- Aaron Kutnick, Team Lead
- Dr. Heyer, Stakeholder
- NCShare Project Sponsors and Code+ Directors
Install dependencies with npm install (or pnpm install or yarn)
Before running the application, make sure to set up your environment variables.
-
Copy the example environment file:
cp .env.example .env
-
Open the
.envfile and fill in the required values.
The
.env.examplefile lists all the required environment variables with sample keys or empty values.
Do not commit your.envfile to version control as it may contain sensitive information.
Start a development server:
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --openDownload and install Miniconda (recommended) from:
https://docs.conda.io/en/latest/miniconda.html
Follow the instructions for your operating system.
conda create -n hp_api python=3.12conda activate hp_apipip install -r requirements.txtconda deactivateTo create a production version of your app:
npm run buildYou can preview the production build with npm run preview.
To deploy your app, you may need to install an adapter for your target environment.
-
Update the environment variables in the Docker file if ports have changed.
-
Build SvelteKit image via Docker:
docker build -t hormonal-pathways .Run SvelteKit image in the background via Docker:
docker run -d --restart unless-stopped -p 3000:3000 hormonal-pathwaysBuild Flask image via Docker:
docker build --build-arg OPENAI_API_KEY=$OPENAI_API_KEY -t hp-api -f Dockerfile.api .Run Flask image in the background via Docker:
docker run -d --restart unless-stopped --env-file .env -p 4000:4000 hp-api