Skip to content

Commit

Permalink
Add experiment notebooks (#167)
Browse files Browse the repository at this point in the history
  • Loading branch information
qcampbel authored Feb 22, 2025
1 parent b5a7029 commit d284cf6
Show file tree
Hide file tree
Showing 370 changed files with 1,373,193 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ repos:
hooks:
- id: ruff
args: [ --fix, --exit-non-zero-on-fix ]
exclude: ^notebooks/experiments/compare_python_code/llm_only/
- repo: https://github.com/psf/black
rev: "24.10.0"
hooks:
Expand All @@ -34,4 +35,4 @@ repos:
rev: v1.5.0
hooks:
- id: detect-secrets
args: [--exclude-files, ".github/workflows/"]
args: [--exclude-files, ".github/workflows/", --exclude-files, '.*\.ipynb$']
782 changes: 782 additions & 0 deletions notebooks/chat_examples.ipynb

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"from mdcrow import MDCrow\n",
"import os"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"descriptive_prompt_1 = \"Complete all of the following tasks: 1. Download the PDB file 1LYZ.\"\n",
"non_descriptive_prompt_1 = \"Download the PDB file 1LYZ.\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Required Tasks:\n",
"- Download"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"llm_model = \"claude-3-5-sonnet-20240620\"\n",
"tools = \"all\""
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Certainly! I'll start by downloading the PDB file 1LYZ using the PDBFileDownloader tool.\n",
"\n",
"Thought: To download the PDB file 1LYZ, I need to use the PDBFileDownloader tool. This tool can fetch PDB files using a protein's PDB ID.\n",
"\n",
"Action:\n",
"```\n",
"{\n",
" \"action\": \"PDBFileDownloader\",\n",
" \"action_input\": \"1LYZ\"\n",
"}\n",
"```PDB file found with this ID: 1LYZ\n",
"Thought: Great, we have successfully downloaded the PDB file for 1LYZ. Now, I need to provide a final answer summarizing what we've accomplished.\n",
"\n",
"Action:\n",
"```\n",
"{\n",
" \"action\": \"Final Answer\",\n",
" \"action_input\": \"Task 1 has been completed successfully. The PDB file for 1LYZ has been downloaded using the PDBFileDownloader tool. The file is now available in the system with the identifier '1LYZ_001358'. This PDB file contains the structural information for lysozyme, which is a well-studied enzyme often used as a model protein in molecular biology and biochemistry research.\"\n",
"}\n",
"```"
]
},
{
"data": {
"text/plain": [
"({'input': '\\n You are an expert molecular dynamics scientist, and\\n your task is to respond to the question or\\n solve the problem to the best of your ability using\\n the provided tools.\\n\\n You can only respond with a single complete\\n \\'Thought, Action, Action Input\\' format\\n OR a single \\'Final Answer\\' format.\\n\\n Complete format:\\n Thought: (reflect on your progress and decide what to do next)\\n Action:\\n ```\\n {\\n \"action\": (the action name, it should be the name of a tool),\\n \"action_input\": (the input string for the action)\\n }\\n \\'\\'\\'\\n\\n OR\\n\\n Final Answer: (the final response to the original input\\n question, once all steps are complete)\\n\\n You are required to use the tools provided,\\n using the most specific tool\\n available for each action.\\n Your final answer should contain all information\\n necessary to answer the question and its subquestions.\\n Before you finish, reflect on your progress and make\\n sure you have addressed the question in its entirety.\\n\\n If you are asked to continue\\n or reference previous runs,\\n the context will be provided to you.\\n If context is provided, you should assume\\n you are continuing a chat.\\n\\n Here is the input:\\n Previous Context: None\\n Question: Complete all of the following tasks: 1. Download the PDB file 1LYZ. ',\n",
" 'output': \"Task 1 has been completed successfully. The PDB file for 1LYZ has been downloaded using the PDBFileDownloader tool. The file is now available in the system with the identifier '1LYZ_001358'. This PDB file contains the structural information for lysozyme, which is a well-studied enzyme often used as a model protein in molecular biology and biochemistry research.\"},\n",
" '78CNEDIC')"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"agent_1 = MDCrow(agent_type=\"Structured\", model=llm_model, top_k_tools=tools)\n",
"agent_1.run(descriptive_prompt_1)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Files found in registry: 1LYZ_001358: PDB file downloaded from RSCB, PDBFile ID: 1LYZ_001358\n"
]
}
],
"source": [
"registry = agent_1.path_registry\n",
"print(registry.list_path_names_and_descriptions())"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"assert os.path.exists(registry.get_mapped_path(\"1LYZ_001358\"))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Certainly! I'll download the PDB file for 1LYZ using the PDBFileDownloader tool.\n",
"\n",
"Thought: To download the PDB file for 1LYZ, I need to use the PDBFileDownloader tool. This tool can fetch PDB files using a protein's PDB ID.\n",
"\n",
"Action:\n",
"```\n",
"{\n",
" \"action\": \"PDBFileDownloader\",\n",
" \"action_input\": \"1LYZ\"\n",
"}\n",
"```PDB file found with this ID: 1LYZ\n",
"Thought: The PDB file for 1LYZ has been successfully downloaded using the PDBFileDownloader tool. The file is now available in the system with the identifier \"1LYZ_001500\". I should provide this information as the final answer to the user.\n",
"\n",
"Action:\n",
"```\n",
"{\n",
" \"action\": \"Final Answer\",\n",
" \"action_input\": \"The PDB file for 1LYZ has been successfully downloaded. The file is now available in the system with the identifier '1LYZ_001500'. This file contains the structural information for the protein with the PDB ID 1LYZ, which corresponds to lysozyme. You can now use this file for further analysis or visualization using other tools if needed.\"\n",
"}\n",
"```"
]
},
{
"data": {
"text/plain": [
"({'input': '\\n You are an expert molecular dynamics scientist, and\\n your task is to respond to the question or\\n solve the problem to the best of your ability using\\n the provided tools.\\n\\n You can only respond with a single complete\\n \\'Thought, Action, Action Input\\' format\\n OR a single \\'Final Answer\\' format.\\n\\n Complete format:\\n Thought: (reflect on your progress and decide what to do next)\\n Action:\\n ```\\n {\\n \"action\": (the action name, it should be the name of a tool),\\n \"action_input\": (the input string for the action)\\n }\\n \\'\\'\\'\\n\\n OR\\n\\n Final Answer: (the final response to the original input\\n question, once all steps are complete)\\n\\n You are required to use the tools provided,\\n using the most specific tool\\n available for each action.\\n Your final answer should contain all information\\n necessary to answer the question and its subquestions.\\n Before you finish, reflect on your progress and make\\n sure you have addressed the question in its entirety.\\n\\n If you are asked to continue\\n or reference previous runs,\\n the context will be provided to you.\\n If context is provided, you should assume\\n you are continuing a chat.\\n\\n Here is the input:\\n Previous Context: None\\n Question: Download the PDB file 1LYZ. ',\n",
" 'output': \"The PDB file for 1LYZ has been successfully downloaded. The file is now available in the system with the identifier '1LYZ_001500'. This file contains the structural information for the protein with the PDB ID 1LYZ, which corresponds to lysozyme. You can now use this file for further analysis or visualization using other tools if needed.\"},\n",
" '1PCP3267')"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"agent_2 = MDCrow(agent_type=\"Structured\", model=llm_model, top_k_tools=tools)\n",
"agent_2.run(non_descriptive_prompt_1)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Files found in registry: 1LYZ_001358: PDB file downloaded from RSCB, PDBFile ID: 1LYZ_001358\n"
]
}
],
"source": [
"registry = agent_1.path_registry\n",
"print(registry.list_path_names_and_descriptions())"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"assert os.path.exists(registry.get_mapped_path(\"1LYZ_001358\"))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "mdcrow2",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Loading

0 comments on commit d284cf6

Please sign in to comment.