{"id":19744921,"url":"https://github.com/virtualpatientengine/aiagents4pharma","last_synced_at":"2025-04-06T22:06:13.686Z","repository":{"id":261048198,"uuid":"880897058","full_name":"VirtualPatientEngine/AIAgents4Pharma","owner":"VirtualPatientEngine","description":"AI Agents for drug discovery, drug development, and other pharmaceutical R\u0026D","archived":false,"fork":false,"pushed_at":"2025-03-28T21:19:25.000Z","size":161697,"stargazers_count":25,"open_issues_count":62,"forks_count":35,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T22:05:57.568Z","etag":null,"topics":["ai-agents","biomodels","knowledge-graph","langchain","langgraph","qsp-modeling","semantic-scholar","streamlit"],"latest_commit_sha":null,"homepage":"https://virtualpatientengine.github.io/AIAgents4Pharma/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VirtualPatientEngine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-30T15:02:16.000Z","updated_at":"2025-04-02T05:13:48.000Z","dependencies_parsed_at":"2024-11-04T12:35:17.093Z","dependency_job_id":"1fccb77a-c154-466e-85b6-66bf596d8cd2","html_url":"https://github.com/VirtualPatientEngine/AIAgents4Pharma","commit_stats":{"total_commits":90,"total_committers":4,"mean_commits":22.5,"dds":0.5,"last_synced_commit":"ca7dbf968487d1a4c1735538bd7069cc58366bb7"},"previous_names":["virtualpatientengine/aiagents4pharma"],"tags_count":66,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VirtualPatientEngine%2FAIAgents4Pharma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VirtualPatientEngine%2FAIAgents4Pharma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VirtualPatientEngine%2FAIAgents4Pharma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VirtualPatientEngine%2FAIAgents4Pharma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VirtualPatientEngine","download_url":"https://codeload.github.com/VirtualPatientEngine/AIAgents4Pharma/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247557767,"owners_count":20958047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","biomodels","knowledge-graph","langchain","langgraph","qsp-modeling","semantic-scholar","streamlit"],"created_at":"2024-11-12T02:01:04.866Z","updated_at":"2025-04-06T22:06:13.663Z","avatar_url":"https://github.com/VirtualPatientEngine.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Talk2BioModels](https://github.com/VirtualPatientEngine/AIAgents4Pharma/actions/workflows/tests_talk2biomodels.yml/badge.svg)](https://github.com/VirtualPatientEngine/AIAgents4Pharma/actions/workflows/tests_talk2biomodels.yml)\n[![Talk2Cells](https://github.com/VirtualPatientEngine/AIAgents4Pharma/actions/workflows/tests_talk2cells.yml/badge.svg)](https://github.com/VirtualPatientEngine/AIAgents4Pharma/actions/workflows/tests_talk2cells.yml)\n[![Talk2KnowledgeGraphs](https://github.com/VirtualPatientEngine/AIAgents4Pharma/actions/workflows/tests_talk2knowledgegraphs.yml/badge.svg)](https://github.com/VirtualPatientEngine/AIAgents4Pharma/actions/workflows/tests_talk2knowledgegraphs.yml)\n[![TESTS Talk2Scholars](https://github.com/VirtualPatientEngine/AIAgents4Pharma/actions/workflows/tests_talk2scholars.yml/badge.svg)](https://github.com/VirtualPatientEngine/AIAgents4Pharma/actions/workflows/tests_talk2scholars.yml)\n[![TESTS Talk2AIAgents4Pharma](https://github.com/VirtualPatientEngine/AIAgents4Pharma/actions/workflows/tests_talk2aiagents4pharma.yml/badge.svg)](https://github.com/VirtualPatientEngine/AIAgents4Pharma/actions/workflows/tests_talk2aiagents4pharma.yml)\n![GitHub Release](https://img.shields.io/github/v/release/VirtualPatientEngine/AIAgents4Pharma)\n![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FVirtualPatientEngine%2FAIAgents4Pharma%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)\n![Docker Pulls](https://img.shields.io/docker/pulls/virtualpatientengine/talk2biomodels?link=https%3A%2F%2Fhub.docker.com%2Frepository%2Fdocker%2Fvirtualpatientengine%2Ftalk2biomodels%2Fgeneral)\n\n## Introduction\n\nWelcome to **AIAgents4Pharma** – an open-source project by [Team VPE](https://github.com/VirtualPatientEngine) that brings together AI-driven tools to help researchers and pharma interact seamlessly with complex biological data.\n\nOur toolkit currently consists of the following agents:\n\n- **Talk2BioModels** _(v1 released; v2 in progress)_: Engage directly with mathematical models in systems biology.\n- **Talk2KnowledgeGraphs** _(v1 in progress)_: Access and explore complex biological knowledge graphs for insightful data connections.\n- **Talk2Scholars** _(v1 in progress)_: Get recommendations for articles related to your choice. Download, query, and write/retrieve them to your reference manager (currently supporting Zotero).\n- **Talk2Cells** _(v1 in progress)_: Query and analyze sequencing data with ease.\n- **Talk2AIAgents4Pharma** _(v1 in progress)_: Converse with all the agents above (currently supports T2B and T2KG)\n\n![AIAgents4Pharma](docs/assets/AIAgents4Pharma.png)\n\n## Getting Started\n\n![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FVirtualPatientEngine%2FAIAgents4Pharma%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)\n\n### Installation\n\n_Please use version 1.26.2 or later for better support with NVIDIA NIM models._\n\n#### Option 1: PyPI\n\n![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FVirtualPatientEngine%2FAIAgents4Pharma%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)\n\n```bash\npip install aiagents4pharma\n```\n\nCheck out the tutorials on each agent for detailed instructions.\n\n#### Option 2: Docker Hub\n\n_We now have `Talk2AIAgents4Pharma`, `Talk2Biomodels`, and `Talk2Scholars` available on Docker Hub._\n\n##### **Run Talk2AIAgents4Pharma and Talk2KnowledgeGraphs**\n\nTalk2AIAgents4Pharma and Talk2KnowledgeGraphs require Ollama for embedding models, so Docker Compose is used to run both containers in the same network.\n\n###### **Setup Environment Variables**\n\n1. Choose the app you want to use:\n\n```sh\n# Navigate to the correct directory before setting up environment variables.\n# Use one of the following commands based on the agent you want to use:\ncd AIAgents4Pharma/aiagents4pharma/talk2aiagents4pharma\ncd AIAgents4Pharma/aiagents4pharma/talk2knowledgegraphs\n```\n\n2. Copy the `.env.example` file and rename it to `.env`:\n   ```sh\n   cp .env.example .env\n   ```\n3. Open the `.env` file and add your API keys:\n\n   ```plaintext\n   OPENAI_API_KEY=your_openai_api_key\n   NVIDIA_API_KEY=your_nvidia_api_key\n   OLLAMA_HOST=http://ollama:11434\n   LANGCHAIN_TRACING_V2=true\n   LANGCHAIN_API_KEY=your_langchain_api_key_here\n   # Notes:\n   # The API endpoint for Ollama is already set in env.example.\n   # Both API keys (OPENAI_API_KEY and NVIDIA_API_KEY) are required for Talk2AIAgents4Pharma.\n   # If using Talk2KnowledgeGraphs separately, only the OPENAI_API_KEY is needed.\n   # Langsmith API for tracing is optional for both, set it in env.example if required.\n   ```\n\n4. Save the file.\n\nTo start the containers, run the following command:\n\n```sh\ndocker compose --profile cpu up # for CPU mode\ndocker compose --profile nvidia up # for GPU mode\ndocker compose --profile amd up # for AMD mode\n```\n\nThis will:\n\n- Pull the latest images if they are not already available.\n- Start both Talk2AIAgents4Pharma or Talk2KnowledgeGraphs and Ollama containers in the same network.\n- Ensure Ollama is running first before launching Talk2AIAgents4Pharma or Talk2KnowledgeGraphs.\n\nTo Access the web app, open your browser and go to:\n\n```\nhttp://localhost:8501\n```\n\nTo stop the containers, run:\n\n```sh\ndocker compose down\n```\n\n##### **Run Talk2Biomodels and Talk2Scholars**\n\n1. **Run the containers**\n\n   ```bash\n   docker run -d \\\n     --name talk2biomodels \\\n     -e OPENAI_API_KEY=\u003cyour_openai_api_key\u003e \\\n     -e NVIDIA_API_KEY=\u003cyour_nvidia_api_key\u003e \\\n     -p 8501:8501 \\\n     virtualpatientengine/talk2biomodels\n   ```\n\n   ```bash\n   docker run -d \\\n     --name talk2scholars \\\n     -e OPENAI_API_KEY=\u003cyour_openai_api_key\u003e \\\n     -e ZOTERO_API_KEY=\u003cyour_zotero_api_key\u003e \\\n     -e ZOTERO_USER_ID=\u003cyour_zotero_user_id\u003e \\\n     -p 8501:8501 \\\n     virtualpatientengine/talk2scholars\n   ```\n\n2. **Access the Web App**\n   Open your browser and go to:\n\n   ```\n   http://localhost:8501\n   ```\n\n   _You can create a free account at NVIDIA and apply for their\n   free credits [here](https://build.nvidia.com/explore/discover)._\n\n#### **Notes**\n\n- Ensure you **replace `\u003cyour_openai_api_key\u003e`, `\u003cyour_nvidia_api_key\u003e`, `\u003cyour_zotero_api_key\u003e`, and `\u003cyour_zotero_user_id\u003e`** with your actual credentials.\n- Both applications use **port `8501`**, so run them on different ports if needed:\n  ```bash\n  docker run -d -e OPENAI_API_KEY=\u003cyour_openai_api_key\u003e -p 8501:8501 virtualpatientengine/talk2scholars\n  ```\n  Then, access it via `http://localhost:8501`.\n\n#### Option 3: git\n\n![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FVirtualPatientEngine%2FAIAgents4Pharma%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)\n\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/VirtualPatientEngine/AIAgents4Pharma\n   cd AIAgents4Pharma\n   ```\n2. **Install dependencies:**\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n   ⚠️ The current version of T2KG requires additional Ollama library to be installed.\n\n   Ollama can be easily downloaded and installed from the following link: [https://ollama.com/download](https://ollama.com/download)\n\n   As an alternative, use the following commands to install the library using terminal and to pull necessary model:\n\n   - Ubuntu:\n     ```\n     curl -fsSL https://ollama.com/install.sh | sh\n     ollama pull nomic-embed-text\n     ```\n   - Windows:\n     ```\n     curl -L https://ollama.com/download/ollama-windows-amd64.zip -o ollama-windows-amd64.zip\n     tar -xzf .\\ollama-windows-amd64.zip\n     start ollama serve\n     ollama pull nomic-embed-text\n     ```\n   - macOS:\n     ```\n     brew install ollama\n     ollama pull nomic-embed-text\n     ```\n     A list of pulled Ollama models can be checked using the following command:\n\n   ```\n   ollama list\n   ```\n\n   ⚠️ `pcst_fast 1.0.10` library requires `Microsoft Visual C++ 14.0` or greater to be installed.\n   You can download `Microsoft C++ Build Tools` from [here](https://visualstudio.microsoft.com/visual-cpp-build-tools/).\n\n3. **Initialize OPENAI_API_KEY and NVIDIA_API_KEY**\n\n   ```bash\n   export OPENAI_API_KEY=....\n   export NVIDIA_API_KEY=....\n   ```\n\n   _You can create a free account at NVIDIA and apply for their\n   free credits [here](https://build.nvidia.com/explore/discover)._\n\n4. **Initialize ZOTERO_API_KEY and ZOTERO_USER_ID**\n\n   ```bash\n   export ZOTERO_API_KEY=....\n   export ZOTERO_USER_ID=....\n   ```\n\n   _Please note that ZOTERO keys are requried only if you want to launch Talk2Scholars. For all the other agents, please ignore this step._\n\n5. **[Optional] Initialize LANGSMITH_API_KEY**\n\n   ```bash\n   export LANGCHAIN_TRACING_V2=true\n   export LANGCHAIN_API_KEY=\u003cyour-api-key\u003e\n   ```\n\n   _Please note that this will create a new tracing project in your Langsmith\n   account with the name `T2X-xxxx`, where `X` can be `AA4P` (Main Agent),\n   `B` (Biomodels), `S` (Scholars), `KG` (KnowledgeGraphs), or `C` (Cells).\n   If you skip the previous step, it will default to the name `default`.\n   `xxxx` will be the 4-digit ID created for the session._\n\n6. **Launch the app:**\n   ```bash\n   streamlit run app/frontend/streamlit_app_\u003cagent\u003e.py\n   ```\n   _Replace \u003cagent\u003e with the agent name you are interested to launch._\n\nFor detailed instructions on each agent, please refer to their respective modules.\n\n---\n\n## Contributing\n\nWe welcome contributions to AIAgents4Pharma! Here’s how you can help:\n\n1. **Fork the repository**\n2. **Create a new branch** for your feature (`git checkout -b feat/feature-name`)\n3. **Commit your changes** (`git commit -m 'feat: Add new feature'`)\n4. **Push to the branch** (`git push origin feat/feature-name`)\n5. **Open a pull request** and reach out to any one of us below via Discussions:\n\n   _Note: We welcome all contributions, not just programming-related ones. Feel free to open bug reports, suggest new features, or participate as a beta tester. Your support is greatly appreciated!_\n\n- **Talk2Biomodels/Talk2Cells**: [@gurdeep330](https://github.com/gurdeep330) [@lilijap](https://github.com/lilijap) [@dmccloskey](https://github.com/dmccloskey)\n- **Talk2KnowledgeGraphs**: [@awmulyadi](https://github.com/awmulyadi) [@dmccloskey](https://github.com/dmccloskey)\n- **Talk2Scholars**: [@ansh-info](https://github.com/ansh-info) [@gurdeep330](https://github.com/gurdeep330) [@dmccloskey](https://github.com/dmccloskey)\n\n### Current Needs\n\n- **Beta testers** for Talk2BioModels and Talk2Scholars.\n- **Developers** with experience in Python and Bioinformatics and/or knowledge graphs for contributions to AIAgents4Pharma.\n\nFeel free to reach out to us via Discussions.\n\nCheck out our [CONTRIBUTING.md](CONTRIBUTING.md) for more information.\n\n---\n\n## Feedback\n\nQuestions/Bug reports/Feature requests/Comments/Suggestions? We welcome all. Please use `Issues` or `Discussions` 😀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirtualpatientengine%2Faiagents4pharma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvirtualpatientengine%2Faiagents4pharma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirtualpatientengine%2Faiagents4pharma/lists"}