From f9fd70a6f3ab821497ce3056df50c7448f163fe1 Mon Sep 17 00:00:00 2001 From: kartik Date: Mon, 10 Aug 2026 01:56:11 +0530 Subject: [PATCH] Fix populate_db notebook to seed deployed KB with auth, idempotency, and source_url --- backend/populate_db.ipynb | 1713 +++++++++---------------------------- 1 file changed, 419 insertions(+), 1294 deletions(-) diff --git a/backend/populate_db.ipynb b/backend/populate_db.ipynb index 64e2db5..efb4b8b 100644 --- a/backend/populate_db.ipynb +++ b/backend/populate_db.ipynb @@ -2,1453 +2,578 @@ "cells": [ { "cell_type": "markdown", - "id": "edd8495f", + "id": "cef15c83", "metadata": {}, "source": [ - "# Source links for populating the database:\n", - "- **VCell Tutorials: (HTML pages)** https://vcell.org/webstart/VCell_Tutorials/VCell_Help/index.html\n", - "- **VCell Tutorials: (PDF files)**\n", - " - https://vcell.org/webstart/VCell_Tutorials/\n", - " - https://vcell.org/webstart/VCell_Tutorials/7.7/" - ] - }, - { - "cell_type": "markdown", - "id": "a81a63c1-5457-4fed-935c-c0421f7a52fe", - "metadata": {}, - "source": [ - "---\n", - "# Downloading all HTML Files" + "# VCell-AI Knowledge Base Seeding\n", + "\n", + "One-time (or occasional) script to populate the Qdrant knowledge base backing the RAG pipeline at `vcell-ai-dev.cam.uchc.edu`.\n", + "\n", + "**Sources scraped:**\n", + "- `vcell.org/webstart/VCell_Tutorials/VCell_Help/` (HTML tutorial pages)\n", + "- `vcell.org/webstart/VCell_Tutorials/` (top-level PDF tutorials)\n", + "- `vcell.org/webstart/VCell_Tutorials/7.7/` (v7.7 PDF tutorials)\n", + "\n", + "**Flow:** scrape source directories → download HTML+PDF locally → delete existing entries for each filename in the KB → upload to backend, which chunks, embeds via OpenAI `text-embedding-3-small`, and upserts into Qdrant.\n", + "\n", + "Run cells top to bottom." ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "id": "0b1158bd", "metadata": {}, - "outputs": [], - "source": [ - "import requests" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "c039dd2e", - "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "/home/kacem/projects/VCell-GSoC/backend\n" + "Backend: https://vcell-ai-dev.cam.uchc.edu/api\n", + "Downloads dir: /Users/kartikdeshpande/Desktop/vcell-repos/VCell-AI/backend/Downloads\n" ] } ], "source": [ - "!pwd" + "import os\n", + "from urllib.parse import urlparse, unquote\n", + "\n", + "import requests\n", + "from bs4 import BeautifulSoup\n", + "from dotenv import load_dotenv\n", + "\n", + "load_dotenv()\n", + "\n", + "# --- Config ---\n", + "BASE = \"https://vcell-ai-dev.cam.uchc.edu/api\"\n", + "# For local testing against docker-compose, use: BASE = \"http://127.0.0.1:8000\"\n", + "\n", + "TOKEN = os.environ.get(\"VCELL_KB_ADMIN_TOKEN\")\n", + "if not TOKEN:\n", + " raise RuntimeError(\n", + " \"Missing VCELL_KB_ADMIN_TOKEN in environment. \"\n", + " \"Add it to a .env file in this notebook's directory.\"\n", + " )\n", + "\n", + "HEADERS = {\"Authorization\": f\"Bearer {TOKEN}\"}\n", + "\n", + "DOWNLOADS_DIR = os.path.join(os.getcwd(), \"Downloads\")\n", + "os.makedirs(DOWNLOADS_DIR, exist_ok=True)\n", + "\n", + "# filename → original source URL; used to attach source_url on upload\n", + "source_url_by_filename: dict[str, str] = {}\n", + "\n", + "print(f\"Backend: {BASE}\")\n", + "print(f\"Downloads dir: {DOWNLOADS_DIR}\")" ] }, { "cell_type": "code", - "execution_count": 10, - "id": "3879e9d7-149c-4d05-8c99-32892f5e84de", + "execution_count": 3, + "id": "71b32d07", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "

VCell Desktop Help

\n", - "\n", - "\n" + "GET /kb/documents → 200\n", + "Existing entries in KB: n/a\n" ] } ], "source": [ - "# Getting html links\n", - "response = requests.get(\"https://vcell.org/webstart/VCell_Tutorials/VCell_Help/index.html\")\n", - "if response.status_code == 200:\n", - " html_content = response.text\n", - " print(html_content)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "f65cd89b-33e8-49dc-9e2d-ca7e5ab2b337", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['topics/ch_1/Introduction/GeneralOverview.html',\n", - " 'topics/ch_1/Introduction/General.html',\n", - " 'topics/ch_1/Introduction/GeneralNavAndWinSetup.html',\n", - " 'topics/ch_1/Introduction/TopMenu.html',\n", - " 'topics/ch_1/Introduction/Login.html',\n", - " 'topics/ch_1/Introduction/File.html',\n", - " 'topics/ch_1/Introduction/New.html',\n", - " 'topics/ch_1/Introduction/Open.html',\n", - " 'topics/ch_1/Introduction/SaveAs.html',\n", - " 'topics/ch_1/Introduction/RevertToSaved.html',\n", - " 'topics/ch_1/Introduction/Permissions.html',\n", - " 'topics/ch_1/Introduction/FieldData.html',\n", - " 'topics/ch_1/Introduction/Import.html',\n", - " 'topics/ch_1/Introduction/ImportBNGL.html',\n", - " 'topics/ch_1/Introduction/Export.html',\n", - " 'topics/ch_1/Introduction/Account.html',\n", - " 'topics/Auth0/Auth0Overview.html',\n", - " 'topics/Auth0/Auth0ProfilePage.html',\n", - " 'topics/Auth0/Auth0ExistingUserAccountLinking.html',\n", - " 'topics/Auth0/Auth0ReturningUserAccountLinking.html',\n", - " 'topics/Auth0/Auth0NewUserAccountCreation.html',\n", - " 'topics/ch_1/Introduction/SetProxy.html',\n", - " 'topics/ch_1/Introduction/ViewSimStatus.html',\n", - " 'topics/ch_1/Introduction/Window.html',\n", - " 'topics/ch_1/Introduction/Tools.html',\n", - " 'topics/ch_1/Introduction/LaunchVirtualFRAP.html',\n", - " 'topics/ch_1/Introduction/ExportedDataViewer.html',\n", - " 'topics/ch_1/Introduction/TransformToStochCapable.html',\n", - " 'topics/ch_1/Introduction/Help.html',\n", - " 'topics/ch_10/RuleBasedChapter/RuleBasedOverview.html',\n", - " 'topics/ch_10/RuleBasedChapter/RuleBasedTheory.html',\n", - " 'topics/ch_10/RuleBasedChapter/RBCreate.html',\n", - " 'topics/ch_10/RuleBasedChapter/RBSimulate.html',\n", - " 'topics/ch_10/RuleBasedChapter/NFSimApp.html',\n", - " 'topics/ch_2/Physiology/PhysOverview.html',\n", - " 'topics/ch_2/Physiology/ReactDiagView.html',\n", - " 'topics/ch_2/Physiology/ReactTabView.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Reactions.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_MemFlux.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_ReactionRulesEditor.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_ReactionRulesKinetics.html',\n", - " 'topics/ch_2/Physiology/PathLink.html',\n", - " 'topics/ch_2/Physiology/PhysStructTabView.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Structures.html',\n", - " 'topics/ch_2/Physiology/SpeciesTabView.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Species.html',\n", - " 'topics/ch_2/Physiology/PathLink.html',\n", - " 'topics/ch_2/Physiology/Molecules.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Molecules.html',\n", - " 'topics/ch_2/Physiology/Observables.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Observables.html',\n", - " 'topics/ch_3/BioModelApplications/ApplicationOverview.html',\n", - " 'topics/ch_3/BioModelApplications/Geometry/GeometryOverview.html',\n", - " 'topics/ch_3/BioModelApplications/Geometry/geom_Analytic.html',\n", - " 'topics/ch_3/BioModelApplications/Geometry/geom_from_images.html',\n", - " 'topics/ch_3/BioModelApplications/Geometry/geom_from_surface.html',\n", - " 'topics/ch_3/BioModelApplications/Geometry/geom_struct_mapping.html',\n", - " 'topics/ch_3/BioModelApplications/Geometry/geom_spatial_mapping.html',\n", - " 'topics/ch_3/BioModelApplications/Geometry/geom_nonspatial_mapping.html',\n", - " 'topics/ch_3/BioModelApplications/Geometry/Kinematics.html',\n", - " 'topics/ch_3/BioModelApplications/Specifications/SpecificationsOverview.html',\n", - " 'topics/ch_3/BioModelApplications/Specifications/SpeciesSpecifications.html',\n", - " 'topics/ch_3/BioModelApplications/fieldData.html',\n", - " 'topics/ch_3/BioModelApplications/Specifications/ReactionsSpecifications.html',\n", - " 'topics/ch_3/BioModelApplications/Specifications/NetworkSpecifications.html',\n", - " 'topics/ch_3/BioModelApplications/Specifications/NetworkFreeSpecifications.html',\n", - " 'topics/ch_3/BioModelApplications/Protocols/ProtocolsOverview.html',\n", - " 'topics/ch_3/BioModelApplications/Protocols/Events.html',\n", - " 'topics/ch_3/BioModelApplications/Protocols/Electrical.html',\n", - " 'topics/ch_3/BioModelApplications/Protocols/MicroscopeMeasurement.html',\n", - " 'topics/ch_3/BioModelApplications/Protocols/RateRules.html',\n", - " 'topics/ch_3/BioModelApplications/Protocols/AssignmentRules.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/simulations_overview.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/simulations.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/BatchSimulations.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/simulationEditor.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/NFSimSimulationEditor.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/output_functions.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/generated_math.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/numerical_solvers.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/SimulationViewerOverview.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SpatialSimResultsOverview.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SimResSpatialSliceView.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SpatialSimResultsDrawingTools.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SimResultsSpatialSurfaceView.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SimResultsSpatialROIandStatistics.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SimResultsKymograph.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Spatial/PostProcessingStats.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Spatial/PostProcessingImage.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Spatial/ExportingSpatialSimResults.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Spatial/ImageJDataViewerPlugin.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Spatial/OpenHDF5ImageJ.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SpecificFormatSettings.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Nonspatial/SimCompartmentResults.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Nonspatial/SimResultsNonSpatialPlotSettings.html',\n", - " 'topics/ch_3/BioModelApplications/Simulations/Results/Nonspatial/SimResultsNonSpatialStochHistogram.html',\n", - " 'topics/ch_3/BioModelApplications/ParameterEstimation/PEOverview.html',\n", - " 'topics/ch_3/BioModelApplications/ParameterEstimation/parameterEstimationMethods.html',\n", - " 'topics/ch_3/BioModelApplications/ParameterEstimation/parameterEstimationUsage.html',\n", - " 'topics/ch_4/ParametersAndFunctions/ParametersAndFunctionsOverview.html',\n", - " 'topics/ch_4/ParametersAndFunctions/ParametersAndFunctions.html',\n", - " 'topics/ch_4/ParametersAndFunctions/PredefinedConstAndMathFns.html',\n", - " 'topics/ch_4/ParametersAndFunctions/ModelUnits.html',\n", - " 'topics/ch_6/BiologicalPathways/PathwayOverview.html',\n", - " 'topics/ch_7/DatabaseSources/PathwayCommonsPanel.html',\n", - " 'topics/ch_6/BiologicalPathways/PathwayImportTable.html',\n", - " 'topics/ch_6/BiologicalPathways/PathwayDiagram/PathwayDiagramView.html',\n", - " 'topics/ch_6/BiologicalPathways/PathwayObjects/PathwayObjectsView.html',\n", - " 'topics/ch_6/BiologicalPathways/BiopaxSummary/BiopaxSummaryView.html',\n", - " 'topics/ch_6/BiologicalPathways/BiopaxSummary/BiopaxTreeView.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Pathways.html',\n", - " 'topics/ch_8/PropertiesPanes/GroupOperationsPanel.html',\n", - " 'topics/ch_7/DatabaseSources/DatabaseOverview.html',\n", - " 'topics/ch_7/DatabaseSources/VCellDatabase.html',\n", - " 'topics/ch_7/DatabaseSources/BioModelsNet.html',\n", - " 'topics/ch_7/DatabaseSources/PathwayCommonsPanel.html',\n", - " 'topics/ch_8/PropertiesPanes/PropertiesPaneOverview.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_ApplicationProps.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_VCellDatabaseInfo.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Annotations.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_KinematicsPointLocationProcess.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_KinematicsPointObject.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_KinematicsSurfaceObject.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_KinematicsSurfaceProcess.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_KinematicsVolumeObject.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_KinematicsVolumeProcess.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_MemFlux.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Molecules.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Observables.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Parameters.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Pathways.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Problems.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Reactions.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_ReactionRulesEditor.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_ReactionRulesKinetics.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Species.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Stoichiometries.html',\n", - " 'topics/ch_8/PropertiesPanes/PP_Structures.html',\n", - " 'topics/ch_9/Appendix/AppendixOverview.html',\n", - " 'topics/ch_9/Appendix/AnnotationProviders.html',\n", - " 'topics/ch_9/Appendix/Errors.html',\n", - " 'topics/ch_9/Appendix/Warnings.html']" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Get all hrefs for determining html file paths\n", - "from bs4 import BeautifulSoup\n", - "\n", - "soup = BeautifulSoup(response.text, 'html.parser')\n", + "# Confirm backend is reachable and the token is accepted as admin.\n", + "r = requests.get(f\"{BASE}/kb/files\", headers=HEADERS, timeout=30)\n", + "print(f\"GET /kb/documents → {r.status_code}\")\n", "\n", - "# Extract all tags and get the href attribute\n", - "hrefs = [a['href'] for a in soup.find_all('a', href=True)]\n", - "hrefs" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "1a57514e-eab6-4268-a4f5-00c7b27ac405", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/GeneralOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/General.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/GeneralNavAndWinSetup.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/TopMenu.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/Login.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/File.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/New.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/Open.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/SaveAs.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/RevertToSaved.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/Permissions.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/FieldData.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/Import.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/ImportBNGL.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/Export.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/Account.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/Auth0/Auth0Overview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/Auth0/Auth0ProfilePage.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/Auth0/Auth0ExistingUserAccountLinking.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/Auth0/Auth0ReturningUserAccountLinking.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/Auth0/Auth0NewUserAccountCreation.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/SetProxy.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/ViewSimStatus.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/Window.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/Tools.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/LaunchVirtualFRAP.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/ExportedDataViewer.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/TransformToStochCapable.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_1/Introduction/Help.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_10/RuleBasedChapter/RuleBasedOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_10/RuleBasedChapter/RuleBasedTheory.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_10/RuleBasedChapter/RBCreate.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_10/RuleBasedChapter/RBSimulate.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_10/RuleBasedChapter/NFSimApp.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_2/Physiology/PhysOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_2/Physiology/ReactDiagView.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_2/Physiology/ReactTabView.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Reactions.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_MemFlux.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_ReactionRulesEditor.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_ReactionRulesKinetics.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_2/Physiology/PathLink.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_2/Physiology/PhysStructTabView.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Structures.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_2/Physiology/SpeciesTabView.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Species.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_2/Physiology/PathLink.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_2/Physiology/Molecules.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Molecules.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_2/Physiology/Observables.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Observables.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/ApplicationOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Geometry/GeometryOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Geometry/geom_Analytic.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Geometry/geom_from_images.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Geometry/geom_from_surface.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Geometry/geom_struct_mapping.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Geometry/geom_spatial_mapping.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Geometry/geom_nonspatial_mapping.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Geometry/Kinematics.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Specifications/SpecificationsOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Specifications/SpeciesSpecifications.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/fieldData.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Specifications/ReactionsSpecifications.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Specifications/NetworkSpecifications.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Specifications/NetworkFreeSpecifications.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Protocols/ProtocolsOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Protocols/Events.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Protocols/Electrical.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Protocols/MicroscopeMeasurement.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Protocols/RateRules.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Protocols/AssignmentRules.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/simulations_overview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/simulations.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/BatchSimulations.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/simulationEditor.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/NFSimSimulationEditor.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/output_functions.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/generated_math.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/numerical_solvers.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/SimulationViewerOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SpatialSimResultsOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SimResSpatialSliceView.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SpatialSimResultsDrawingTools.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SimResultsSpatialSurfaceView.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SimResultsSpatialROIandStatistics.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SimResultsKymograph.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Spatial/PostProcessingStats.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Spatial/PostProcessingImage.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Spatial/ExportingSpatialSimResults.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Spatial/ImageJDataViewerPlugin.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Spatial/OpenHDF5ImageJ.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Spatial/SpecificFormatSettings.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Nonspatial/SimCompartmentResults.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Nonspatial/SimResultsNonSpatialPlotSettings.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/Simulations/Results/Nonspatial/SimResultsNonSpatialStochHistogram.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/ParameterEstimation/PEOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/ParameterEstimation/parameterEstimationMethods.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_3/BioModelApplications/ParameterEstimation/parameterEstimationUsage.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_4/ParametersAndFunctions/ParametersAndFunctionsOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_4/ParametersAndFunctions/ParametersAndFunctions.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_4/ParametersAndFunctions/PredefinedConstAndMathFns.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_4/ParametersAndFunctions/ModelUnits.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_6/BiologicalPathways/PathwayOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_7/DatabaseSources/PathwayCommonsPanel.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_6/BiologicalPathways/PathwayImportTable.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_6/BiologicalPathways/PathwayDiagram/PathwayDiagramView.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_6/BiologicalPathways/PathwayObjects/PathwayObjectsView.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_6/BiologicalPathways/BiopaxSummary/BiopaxSummaryView.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_6/BiologicalPathways/BiopaxSummary/BiopaxTreeView.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Pathways.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/GroupOperationsPanel.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_7/DatabaseSources/DatabaseOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_7/DatabaseSources/VCellDatabase.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_7/DatabaseSources/BioModelsNet.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_7/DatabaseSources/PathwayCommonsPanel.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PropertiesPaneOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_ApplicationProps.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_VCellDatabaseInfo.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Annotations.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_KinematicsPointLocationProcess.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_KinematicsPointObject.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_KinematicsSurfaceObject.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_KinematicsSurfaceProcess.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_KinematicsVolumeObject.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_KinematicsVolumeProcess.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_MemFlux.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Molecules.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Observables.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Parameters.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Pathways.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Problems.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Reactions.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_ReactionRulesEditor.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_ReactionRulesKinetics.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Species.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Stoichiometries.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_8/PropertiesPanes/PP_Structures.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_9/Appendix/AppendixOverview.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_9/Appendix/AnnotationProviders.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_9/Appendix/Errors.html',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/VCell_Help/topics/ch_9/Appendix/Warnings.html']" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# prepend base URL to relative links\n", - "base_url = \"https://vcell.org/webstart/VCell_Tutorials/VCell_Help/\"\n", - "full_links = [base_url + href if not href.startswith(\"http\") else href for href in hrefs]\n", + "if r.status_code == 401 or r.status_code == 403:\n", + " raise RuntimeError(\"Auth failed — check VCELL_KB_ADMIN_TOKEN and role.\")\n", + "if r.status_code != 200:\n", + " raise RuntimeError(f\"Backend not healthy: {r.status_code} {r.text[:300]}\")\n", "\n", - "full_links" + "try:\n", + " existing = r.json()\n", + " print(f\"Existing entries in KB: {len(existing) if isinstance(existing, list) else 'n/a'}\")\n", + "except Exception:\n", + " print(\"(response was not JSON)\")" ] }, { - "cell_type": "code", - "execution_count": 16, - "id": "edeb8aea-2e54-415c-9a6a-6554e4e44c08", - "metadata": {}, - "outputs": [], - "source": [ - "# Create a directory for downloads (saving these html files as cleaned text files)\n", - "import os\n", - "\n", - "output_dir = \"Downloads\"\n", - "os.makedirs(output_dir, exist_ok=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "c89856df-0a3c-43c9-856b-d62f1af3f9f2", + "cell_type": "markdown", + "id": "9307a1df", "metadata": {}, - "outputs": [], "source": [ - "# Function to sanitize filename\n", - "def sanitize_filename(url_path):\n", - " return url_path.strip('/').replace('/', '__') + \".txt\"" + "---\n", + "## Step 1 — Scrape HTML tutorial pages" ] }, { "cell_type": "code", - "execution_count": 21, - "id": "c21ab8ae-cbfe-4597-b90c-ff30814e6fd9", + "execution_count": 5, + "id": "bbaa6a4a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__GeneralOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__General.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__GeneralNavAndWinSetup.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__TopMenu.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Login.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__File.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__New.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Open.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__SaveAs.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__RevertToSaved.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Permissions.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__FieldData.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Import.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ImportBNGL.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Export.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Account.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0Overview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ProfilePage.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ExistingUserAccountLinking.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ReturningUserAccountLinking.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0NewUserAccountCreation.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__SetProxy.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ViewSimStatus.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Window.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Tools.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__LaunchVirtualFRAP.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ExportedDataViewer.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__TransformToStochCapable.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Help.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RuleBasedOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RuleBasedTheory.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RBCreate.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RBSimulate.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__NFSimApp.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PhysOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__ReactDiagView.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__ReactTabView.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Reactions.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_MemFlux.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ReactionRulesEditor.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ReactionRulesKinetics.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PathLink.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PhysStructTabView.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Structures.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__SpeciesTabView.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Species.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PathLink.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__Molecules.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Molecules.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__Observables.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Observables.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ApplicationOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__GeometryOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_Analytic.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_from_images.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_from_surface.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_struct_mapping.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_spatial_mapping.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_nonspatial_mapping.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__Kinematics.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__SpecificationsOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__SpeciesSpecifications.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__fieldData.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__ReactionsSpecifications.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__NetworkSpecifications.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__NetworkFreeSpecifications.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__ProtocolsOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__Events.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__Electrical.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__MicroscopeMeasurement.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__RateRules.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__AssignmentRules.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulations_overview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulations.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__BatchSimulations.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulationEditor.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__NFSimSimulationEditor.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__output_functions.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__generated_math.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__numerical_solvers.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__SimulationViewerOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpatialSimResultsOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResSpatialSliceView.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpatialSimResultsDrawingTools.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsSpatialSurfaceView.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsSpatialROIandStatistics.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsKymograph.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__PostProcessingStats.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__PostProcessingImage.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__ExportingSpatialSimResults.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__ImageJDataViewerPlugin.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__OpenHDF5ImageJ.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpecificFormatSettings.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimCompartmentResults.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimResultsNonSpatialPlotSettings.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimResultsNonSpatialStochHistogram.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__PEOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__parameterEstimationMethods.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__parameterEstimationUsage.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ParametersAndFunctionsOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ParametersAndFunctions.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__PredefinedConstAndMathFns.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ModelUnits.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__PathwayCommonsPanel.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayImportTable.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayDiagram__PathwayDiagramView.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayObjects__PathwayObjectsView.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__BiopaxSummary__BiopaxSummaryView.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__BiopaxSummary__BiopaxTreeView.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Pathways.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__GroupOperationsPanel.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__DatabaseOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__VCellDatabase.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__BioModelsNet.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__PathwayCommonsPanel.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PropertiesPaneOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ApplicationProps.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_VCellDatabaseInfo.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Annotations.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsPointLocationProcess.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsPointObject.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsSurfaceObject.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsSurfaceProcess.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsVolumeObject.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsVolumeProcess.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_MemFlux.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Molecules.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Observables.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Parameters.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Pathways.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Problems.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Reactions.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ReactionRulesEditor.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ReactionRulesKinetics.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Species.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Stoichiometries.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Structures.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__AppendixOverview.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__AnnotationProviders.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__Errors.html.txt\n", - "Saved text to: Downloads/https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__Warnings.html.txt\n" + "Found 142 HTML links from the index page\n" ] } ], "source": [ - "# Process each HTML page\n", - "for url in full_links:\n", - " response = requests.get(url)\n", - " if response.status_code != 200:\n", - " print(f\"🟥 🟥 🟥 Failed to fetch: {url}\")\n", - " continue\n", + "HTML_INDEX_URL = \"https://vcell.org/webstart/VCell_Tutorials/VCell_Help/index.html\"\n", + "HTML_BASE = \"https://vcell.org/webstart/VCell_Tutorials/VCell_Help/\"\n", "\n", - " soup = BeautifulSoup(response.text, 'html.parser')\n", "\n", - " # Remove scripts/styles/metadata\n", - " for tag in soup(['script', 'style', 'head', 'title', 'meta', '[document]']):\n", - " tag.extract()\n", + "def sanitize_filename(url_path: str) -> str:\n", + " \"\"\"Turn a URL path into a safe flat filename ending in .txt.\"\"\"\n", + " return url_path.strip(\"/\").replace(\"/\", \"__\") + \".txt\"\n", "\n", - " text = soup.get_text(separator='\\n', strip=True)\n", "\n", - " filename = sanitize_filename(url)\n", - " filepath = os.path.join(output_dir, filename)\n", - " with open(filepath, 'w', encoding='utf-8') as f:\n", - " f.write(text)\n", + "r = requests.get(HTML_INDEX_URL, timeout=30)\n", + "r.raise_for_status()\n", + "soup = BeautifulSoup(r.text, \"html.parser\")\n", "\n", - " print(f\"Saved text to: {filepath}\")" + "hrefs = [a[\"href\"] for a in soup.find_all(\"a\", href=True)]\n", + "html_links = [h if h.startswith(\"http\") else HTML_BASE + h for h in hrefs]\n", + "\n", + "print(f\"Found {len(html_links)} HTML links from the index page\")" ] }, { "cell_type": "code", - "execution_count": 22, - "id": "4228cf48-c9ff-4645-9ff5-868b6c053cfd", + "execution_count": 6, + "id": "57783b2f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Saved 142 files to /Downloads\n" + "Saved 142 HTML pages as text files\n" ] } ], "source": [ - "print(f\"Saved {len(full_links)} files to /Downloads\")" + "saved = 0\n", + "for url in html_links:\n", + " try:\n", + " r = requests.get(url, timeout=30)\n", + " if r.status_code != 200:\n", + " print(f\" SKIP {url} (HTTP {r.status_code})\")\n", + " continue\n", + "\n", + " page = BeautifulSoup(r.text, \"html.parser\")\n", + " for tag in page([\"script\", \"style\", \"head\", \"title\", \"meta\"]):\n", + " tag.extract()\n", + " text = page.get_text(separator=\"\\n\", strip=True)\n", + "\n", + " filename = sanitize_filename(url)\n", + " filepath = os.path.join(DOWNLOADS_DIR, filename)\n", + " with open(filepath, \"w\", encoding=\"utf-8\") as f:\n", + " f.write(text)\n", + "\n", + " source_url_by_filename[filename] = url\n", + " saved += 1\n", + " except Exception as e:\n", + " print(f\" ERROR {url}: {e}\")\n", + "\n", + "print(f\"Saved {saved} HTML pages as text files\")" ] }, { "cell_type": "markdown", - "id": "075eb75f-0b25-4285-b7e2-da0e83c73e15", + "id": "bbeb361c", "metadata": {}, "source": [ "---\n", - "# Downloading all PDF Files\n", - "#### **Let's start with the files at : https://vcell.org/webstart/VCell_Tutorials/7.7/** " + "## Step 2 — Scrape and download PDF tutorials" ] }, { "cell_type": "code", - "execution_count": 24, - "id": "1f96d346-9d8e-4ac1-985e-e0ca4dfe9014", + "execution_count": 7, + "id": "4173d0df", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\n", - "\n", - " \n", - " Index of /webstart/VCell_Tutorials/7.7\n", - " \n", - " \n", - "

Index of /webstart/VCell_Tutorials/7.7

\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - "
\"[ICO]\"NameLast modifiedSizeDescription

\"[PARENTDIR]\"Parent Directory   -  
\"[VCell Quick Guide_ I..>2025-07-17 15:02 1.6M 
\"[VCell Tutorial_ Cons..>2025-07-18 16:20 2.2M 
\"[VCell Tutorial_ Imag..>2025-07-18 16:21 4.9M 
\"[VCell Tutorial_ Mode..>2025-07-18 16:21 2.3M 
\"[VCell Tutorial_ Rule..>2025-07-18 16:21 7.8M 
\"[VCell Tutorial_ Rule..>2025-07-18 16:21 10M 

\n", - "\n", - "\n" + "Found 22 PDF files across both directories\n" ] } ], "source": [ - "# Getting html links\n", - "response = requests.get(\"https://vcell.org/webstart/VCell_Tutorials/7.7/\")\n", - "if response.status_code == 200:\n", - " html_content = response.text\n", - " print(html_content)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "ca90a6ca-db5e-4b1b-9603-18778cb01eca", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['?C=N;O=D',\n", - " '?C=M;O=A',\n", - " '?C=S;O=A',\n", - " '?C=D;O=A',\n", - " '/webstart/VCell_Tutorials/',\n", - " 'VCell%20Quick%20Guide_%20Image%20Based%20Geometry%207.7.pdf',\n", - " 'VCell%20Tutorial_%20Constructive%20Solid%20Geometry_%20Dendritic%20Spine%207.7.pdf',\n", - " 'VCell%20Tutorial_%20Image-Based%20Geometry%207.7.pdf',\n", - " 'VCell%20Tutorial_%20Model%20Physiology%207.7.pdf',\n", - " 'VCell%20Tutorial_%20Rule-Based%20EGFR%207.7.pdf',\n", - " 'VCell%20Tutorial_%20Rule-Based%20Ran%20Transport%207.7.pdf']" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Get all hrefs for determining html file paths\n", - "from bs4 import BeautifulSoup\n", + "PDF_DIRS = [\n", + " \"https://vcell.org/webstart/VCell_Tutorials/\",\n", + " \"https://vcell.org/webstart/VCell_Tutorials/7.7/\",\n", + "]\n", "\n", - "soup = BeautifulSoup(response.text, 'html.parser')\n", + "pdf_links: list[str] = []\n", + "for base in PDF_DIRS:\n", + " r = requests.get(base, timeout=30)\n", + " r.raise_for_status()\n", + " soup = BeautifulSoup(r.text, \"html.parser\")\n", + " for a in soup.find_all(\"a\", href=True):\n", + " href = a[\"href\"]\n", + " if href.lower().endswith(\".pdf\"):\n", + " full = href if href.startswith(\"http\") else base + href\n", + " pdf_links.append(full)\n", "\n", - "# Extract all
tags and get the href attribute\n", - "hrefs = [a['href'] for a in soup.find_all('a', href=True)]\n", - "hrefs" + "# dedupe, preserve order\n", + "pdf_links = list(dict.fromkeys(pdf_links))\n", + "print(f\"Found {len(pdf_links)} PDF files across both directories\")" ] }, { "cell_type": "code", - "execution_count": 27, - "id": "72aa7824-6898-4a7f-ad75-dfc371ac3f59", + "execution_count": 8, + "id": "0e026f15", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "['VCell%20Quick%20Guide_%20Image%20Based%20Geometry%207.7.pdf',\n", - " 'VCell%20Tutorial_%20Constructive%20Solid%20Geometry_%20Dendritic%20Spine%207.7.pdf',\n", - " 'VCell%20Tutorial_%20Image-Based%20Geometry%207.7.pdf',\n", - " 'VCell%20Tutorial_%20Model%20Physiology%207.7.pdf',\n", - " 'VCell%20Tutorial_%20Rule-Based%20EGFR%207.7.pdf',\n", - " 'VCell%20Tutorial_%20Rule-Based%20Ran%20Transport%207.7.pdf']" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + " FRAPBinding_7.0.pdf (8.3 MB)\n", + " FRAPBinding_7.2.pdf (17.8 MB)\n", + " MovingBoundaries.pdf (9.9 MB)\n", + " MultiAppTransport_7.0.pdf (14.4 MB)\n", + " MultiAppTransport_7.2.pdf (16.6 MB)\n", + " PHGFP_7.0.pdf (5.8 MB)\n", + " PHGFP_7.2.pdf (9.9 MB)\n", + " SimpleFRAP_7.0.pdf (3.9 MB)\n", + " SimpleFRAP_7.2.pdf (8.6 MB)\n", + " SingleCompartmentRuleBased.pdf (1.3 MB)\n", + " SpatialRuleBasedGuide.pdf (0.7 MB)\n", + " Tutorial06_PathwayCommons_6.0.pdf (4.8 MB)\n", + " VCell6.1_Rule-Based_Ran_Transport_Tutorial.pdf (10.3 MB)\n", + " VCell6.1_Rule-Based_Tutorial.pdf (8.6 MB)\n", + " VCell_Quickstart_6.pdf (0.9 MB)\n", + " VCell_Quickstart_7_Biomodel.pdf (0.7 MB)\n", + " VCell Quick Guide_ Image Based Geometry 7.7.pdf (1.7 MB)\n", + " VCell Tutorial_ Constructive Solid Geometry_ Dendritic Spine 7.7.pdf (2.3 MB)\n", + " VCell Tutorial_ Image-Based Geometry 7.7.pdf (5.2 MB)\n", + " VCell Tutorial_ Model Physiology 7.7.pdf (2.5 MB)\n", + " VCell Tutorial_ Rule-Based EGFR 7.7.pdf (8.2 MB)\n", + " VCell Tutorial_ Rule-Based Ran Transport 7.7.pdf (10.6 MB)\n", + "\n", + "Downloaded 22 PDFs\n" + ] } ], "source": [ - "pdf_files = [path for path in hrefs if 'pdf' in path]\n", - "pdf_files" + "for url in pdf_links:\n", + " filename = unquote(os.path.basename(urlparse(url).path))\n", + " filepath = os.path.join(DOWNLOADS_DIR, filename)\n", + " try:\n", + " r = requests.get(url, timeout=180)\n", + " r.raise_for_status()\n", + " with open(filepath, \"wb\") as f:\n", + " f.write(r.content)\n", + " source_url_by_filename[filename] = url\n", + " print(f\" {filename} ({len(r.content) / 1e6:.1f} MB)\")\n", + " except Exception as e:\n", + " print(f\" ERROR {filename}: {e}\")\n", + "\n", + "pdf_count = sum(1 for fn in source_url_by_filename if fn.lower().endswith(\".pdf\"))\n", + "print(f\"\\nDownloaded {pdf_count} PDFs\")" ] }, { - "cell_type": "code", - "execution_count": 29, - "id": "15dfbb00-bd9b-481e-b709-1a55ce2225b8", + "cell_type": "markdown", + "id": "ca6a42ad", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['https://vcell.org/webstart/VCell_Tutorials/7.7/VCell%20Quick%20Guide_%20Image%20Based%20Geometry%207.7.pdf',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/7.7/VCell%20Tutorial_%20Constructive%20Solid%20Geometry_%20Dendritic%20Spine%207.7.pdf',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/7.7/VCell%20Tutorial_%20Image-Based%20Geometry%207.7.pdf',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/7.7/VCell%20Tutorial_%20Model%20Physiology%207.7.pdf',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/7.7/VCell%20Tutorial_%20Rule-Based%20EGFR%207.7.pdf',\n", - " 'https://vcell.org/webstart/VCell_Tutorials/7.7/VCell%20Tutorial_%20Rule-Based%20Ran%20Transport%207.7.pdf']" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ - "# prepend base URL to relative links\n", - "base_url = \"https://vcell.org/webstart/VCell_Tutorials/7.7/\"\n", - "pdf_links = [base_url + href if not href.startswith(\"http\") else href for href in pdf_files]\n", + "---\n", + "## Step 3 — Upload to Knowledge Base\n", "\n", - "pdf_links" + "Each file is (a) deleted from the KB first (best-effort, ignoring 404s\n", + "so the first-ever seed works too), then (b) re-uploaded. This keeps the\n", + "notebook idempotent — safe to re-run after a partial failure or when\n", + "sources are refreshed." ] }, { "cell_type": "code", - "execution_count": 33, - "id": "0bed8588-f147-4b96-9109-3b0c3df61f6a", + "execution_count": 9, + "id": "356d34fc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Downloading VCell Quick Guide_ Image Based Geometry 7.7.pdf...\n", - "Saved to: Downloads/VCell Quick Guide_ Image Based Geometry 7.7.pdf\n", - "Downloading VCell Tutorial_ Constructive Solid Geometry_ Dendritic Spine 7.7.pdf...\n", - "Saved to: Downloads/VCell Tutorial_ Constructive Solid Geometry_ Dendritic Spine 7.7.pdf\n", - "Downloading VCell Tutorial_ Image-Based Geometry 7.7.pdf...\n", - "Saved to: Downloads/VCell Tutorial_ Image-Based Geometry 7.7.pdf\n", - "Downloading VCell Tutorial_ Model Physiology 7.7.pdf...\n", - "Saved to: Downloads/VCell Tutorial_ Model Physiology 7.7.pdf\n", - "Downloading VCell Tutorial_ Rule-Based EGFR 7.7.pdf...\n", - "Saved to: Downloads/VCell Tutorial_ Rule-Based EGFR 7.7.pdf\n", - "Downloading VCell Tutorial_ Rule-Based Ran Transport 7.7.pdf...\n", - "Saved to: Downloads/VCell Tutorial_ Rule-Based Ran Transport 7.7.pdf\n" + " OK FRAPBinding_7.0.pdf\n", + " OK FRAPBinding_7.2.pdf\n", + " OK MovingBoundaries.pdf\n", + " OK MultiAppTransport_7.0.pdf\n", + " OK MultiAppTransport_7.2.pdf\n", + " OK PHGFP_7.0.pdf\n", + " OK PHGFP_7.2.pdf\n", + " OK SimpleFRAP_7.0.pdf\n", + " OK SimpleFRAP_7.2.pdf\n", + " OK SingleCompartmentRuleBased.pdf\n", + " OK SpatialRuleBasedGuide.pdf\n", + " OK Tutorial06_PathwayCommons_6.0.pdf\n", + " OK VCell Quick Guide_ Image Based Geometry 7.7.pdf\n", + " OK VCell Tutorial_ Constructive Solid Geometry_ Dendritic Spine 7.7.pdf\n", + " OK VCell Tutorial_ Image-Based Geometry 7.7.pdf\n", + " OK VCell Tutorial_ Model Physiology 7.7.pdf\n", + " OK VCell Tutorial_ Rule-Based EGFR 7.7.pdf\n", + " OK VCell Tutorial_ Rule-Based Ran Transport 7.7.pdf\n", + " OK VCell6.1_Rule-Based_Ran_Transport_Tutorial.pdf\n", + " OK VCell6.1_Rule-Based_Tutorial.pdf\n", + " OK VCell_Quickstart_6.pdf\n", + " OK VCell_Quickstart_7_Biomodel.pdf\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ExistingUserAccountLinking.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0NewUserAccountCreation.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0Overview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ProfilePage.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ReturningUserAccountLinking.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__NFSimApp.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RBCreate.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RBSimulate.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RuleBasedOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RuleBasedTheory.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Account.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Export.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ExportedDataViewer.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__FieldData.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__File.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__General.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__GeneralNavAndWinSetup.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__GeneralOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Help.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Import.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ImportBNGL.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__LaunchVirtualFRAP.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Login.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__New.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Open.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Permissions.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__RevertToSaved.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__SaveAs.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__SetProxy.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Tools.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__TopMenu.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__TransformToStochCapable.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ViewSimStatus.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Window.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__Molecules.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__Observables.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PathLink.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PhysOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PhysStructTabView.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__ReactDiagView.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__ReactTabView.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__SpeciesTabView.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ApplicationOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__GeometryOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__Kinematics.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_Analytic.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_from_images.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_from_surface.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_nonspatial_mapping.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_spatial_mapping.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_struct_mapping.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__PEOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__parameterEstimationMethods.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__parameterEstimationUsage.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__AssignmentRules.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__Electrical.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__Events.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__MicroscopeMeasurement.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__ProtocolsOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__RateRules.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__BatchSimulations.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__NFSimSimulationEditor.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimCompartmentResults.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimResultsNonSpatialPlotSettings.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimResultsNonSpatialStochHistogram.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__SimulationViewerOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__ExportingSpatialSimResults.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__ImageJDataViewerPlugin.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__OpenHDF5ImageJ.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__PostProcessingImage.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__PostProcessingStats.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResSpatialSliceView.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsKymograph.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsSpatialROIandStatistics.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsSpatialSurfaceView.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpatialSimResultsDrawingTools.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpatialSimResultsOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpecificFormatSettings.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__generated_math.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__numerical_solvers.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__output_functions.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulationEditor.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulations.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulations_overview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__NetworkFreeSpecifications.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__NetworkSpecifications.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__ReactionsSpecifications.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__SpeciesSpecifications.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__SpecificationsOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__fieldData.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ModelUnits.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ParametersAndFunctions.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ParametersAndFunctionsOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__PredefinedConstAndMathFns.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__BiopaxSummary__BiopaxSummaryView.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__BiopaxSummary__BiopaxTreeView.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayDiagram__PathwayDiagramView.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayImportTable.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayObjects__PathwayObjectsView.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__BioModelsNet.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__DatabaseOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__PathwayCommonsPanel.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__VCellDatabase.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__GroupOperationsPanel.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Annotations.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ApplicationProps.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsPointLocationProcess.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsPointObject.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsSurfaceObject.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsSurfaceProcess.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsVolumeObject.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsVolumeProcess.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_MemFlux.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Molecules.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Observables.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Parameters.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Pathways.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Problems.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ReactionRulesEditor.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ReactionRulesKinetics.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Reactions.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Species.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Stoichiometries.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Structures.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_VCellDatabaseInfo.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PropertiesPaneOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__AnnotationProviders.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__AppendixOverview.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__Errors.html.txt\n", + " OK https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__Warnings.html.txt\n", + "\n", + "Summary — uploaded: 153, failed: 0, skipped: 0\n" ] } ], "source": [ - "from urllib.parse import urlparse, unquote\n", + "pdf_endpoint = f\"{BASE}/kb/upload-pdf\"\n", + "text_endpoint = f\"{BASE}/kb/upload-text\"\n", "\n", - "# Download each PDF\n", - "for url in pdf_links:\n", - " filename = os.path.basename(urlparse(url).path)\n", - " filename = unquote(filename) # Decode URL-encoded characters (e.g. %20 to space)\n", - " filepath = os.path.join(output_dir, filename)\n", "\n", - " print(f\"Downloading {filename}...\")\n", + "def delete_existing(filename: str) -> None:\n", + " \"\"\"Best-effort delete; ignore missing files and network hiccups.\"\"\"\n", + " try:\n", + " requests.delete(\n", + " f\"{BASE}/kb/files/{filename}\",\n", + " headers=HEADERS,\n", + " timeout=30,\n", + " )\n", + " except Exception:\n", + " pass\n", + "\n", + "\n", + "uploaded, failed, skipped = 0, 0, 0\n", + "\n", + "for filename in sorted(os.listdir(DOWNLOADS_DIR)):\n", + " filepath = os.path.join(DOWNLOADS_DIR, filename)\n", + " if not os.path.isfile(filepath):\n", + " continue\n", + "\n", + " ext = os.path.splitext(filename)[1].lower()\n", + " source_url = source_url_by_filename.get(filename, \"\")\n", + "\n", + " if ext == \".pdf\":\n", + " endpoint, mime = pdf_endpoint, \"application/pdf\"\n", + " elif ext == \".txt\":\n", + " endpoint, mime = text_endpoint, \"text/plain\"\n", + " else:\n", + " skipped += 1\n", + " print(f\" SKIP {filename} (unsupported extension: {ext})\")\n", + " continue\n", + "\n", + " delete_existing(filename)\n", + "\n", " try:\n", - " response = requests.get(url)\n", - " response.raise_for_status() # Raise error for 404, etc.\n", - " with open(filepath, 'wb') as f:\n", - " f.write(response.content)\n", - " print(f\"Saved to: {filepath}\")\n", + " with open(filepath, \"rb\") as f:\n", + " files = {\"file\": (filename, f, mime)}\n", + " data = {\"source_url\": source_url}\n", + " r = requests.post(\n", + " endpoint,\n", + " files=files,\n", + " data=data,\n", + " headers=HEADERS,\n", + " timeout=600,\n", + " )\n", + "\n", + " if r.status_code == 200:\n", + " uploaded += 1\n", + " print(f\" OK {filename}\")\n", + " else:\n", + " failed += 1\n", + " print(f\" FAIL {filename} → HTTP {r.status_code}: {r.text[:200]}\")\n", " except Exception as e:\n", - " print(f\"Failed to download {url}: {e}\")" + " failed += 1\n", + " print(f\" ERROR {filename}: {e}\")\n", + "\n", + "print(f\"\\nSummary — uploaded: {uploaded}, failed: {failed}, skipped: {skipped}\")" ] }, { "cell_type": "markdown", - "id": "d5aa31ae-1a93-43ae-8f83-25e85dad3f7d", + "id": "118dd7fb", "metadata": {}, "source": [ "---\n", - "# Upload all files to knowledge base (PDF and TXT)" + "## Step 4 — Verify" ] }, { "cell_type": "code", - "execution_count": 40, - "id": "a6e99f0f-5dcc-4573-b747-f0a26d5c0e75", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'/home/kacem/projects/VCell-GSoC/backend/Downloads'" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Path to the local Downloads directory under current working directory\n", - "downloads_dir = os.path.join(os.getcwd(), \"Downloads\")\n", - "downloads_dir" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "id": "0f8e211d-7e08-47a3-ad22-d13c632b76a4", - "metadata": {}, - "outputs": [], - "source": [ - "# Upload endpoints\n", - "pdf_url = \"http://127.0.0.1:8000/kb/upload-pdf\"\n", - "text_url = \"http://127.0.0.1:8000/kb/upload-text\"" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "id": "5526fa90-6436-40b6-be69-6a7bd473e761", + "execution_count": 11, + "id": "9bf10a32", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulations.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulations.html.txt uploaded successfully with 5 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Tools.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Tools.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__PredefinedConstAndMathFns.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__PredefinedConstAndMathFns.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpatialSimResultsDrawingTools.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpatialSimResultsDrawingTools.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__AppendixOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__AppendixOverview.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__GeometryOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__GeometryOverview.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsSurfaceObject.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsSurfaceObject.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RBCreate.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RBCreate.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ReturningUserAccountLinking.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ReturningUserAccountLinking.html.txt uploaded successfully with 1 chunks.'}\n", - "[PDF] VCell Tutorial_ Rule-Based EGFR 7.7.pdf → 200\n", - "{'status': 'success', 'message': 'PDF file VCell Tutorial_ Rule-Based EGFR 7.7.pdf uploaded successfully with 34 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsSurfaceProcess.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsSurfaceProcess.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Problems.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Problems.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_from_images.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_from_images.html.txt uploaded successfully with 11 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResSpatialSliceView.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResSpatialSliceView.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_spatial_mapping.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_spatial_mapping.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Export.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Export.html.txt uploaded successfully with 5 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__GeneralOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__GeneralOverview.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0Overview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0Overview.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__Molecules.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__Molecules.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Account.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Account.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__TopMenu.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__TopMenu.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PathLink.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PathLink.html.txt uploaded successfully with 2 chunks.'}\n", - "[PDF] VCell Quick Guide_ Image Based Geometry 7.7.pdf → 200\n", - "{'status': 'success', 'message': 'PDF file VCell Quick Guide_ Image Based Geometry 7.7.pdf uploaded successfully with 7 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__BioModelsNet.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__BioModelsNet.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Help.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Help.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ParametersAndFunctions.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ParametersAndFunctions.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__ExportingSpatialSimResults.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__ExportingSpatialSimResults.html.txt uploaded successfully with 4 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__NetworkFreeSpecifications.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__NetworkFreeSpecifications.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RBSimulate.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RBSimulate.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayObjects__PathwayObjectsView.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayObjects__PathwayObjectsView.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__ReactDiagView.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__ReactDiagView.html.txt uploaded successfully with 8 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayImportTable.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayImportTable.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ProfilePage.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ProfilePage.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimCompartmentResults.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimCompartmentResults.html.txt uploaded successfully with 6 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ImportBNGL.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ImportBNGL.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsPointObject.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsPointObject.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsKymograph.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsKymograph.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ApplicationOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ApplicationOverview.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Molecules.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Molecules.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_MemFlux.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_MemFlux.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__Errors.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__Errors.html.txt uploaded successfully with 13 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpecificFormatSettings.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpecificFormatSettings.html.txt uploaded successfully with 5 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_Analytic.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_Analytic.html.txt uploaded successfully with 4 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__parameterEstimationMethods.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__parameterEstimationMethods.html.txt uploaded successfully with 9 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__RateRules.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__RateRules.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Structures.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Structures.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__ReactTabView.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__ReactTabView.html.txt uploaded successfully with 4 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__output_functions.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__output_functions.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PhysOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PhysOverview.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Permissions.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Permissions.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__AssignmentRules.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__AssignmentRules.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsVolumeObject.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsVolumeObject.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__VCellDatabase.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__VCellDatabase.html.txt uploaded successfully with 5 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayDiagram__PathwayDiagramView.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayDiagram__PathwayDiagramView.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__ProtocolsOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__ProtocolsOverview.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__PathwayCommonsPanel.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__PathwayCommonsPanel.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Pathways.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Pathways.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Open.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Open.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__SpecificationsOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__SpecificationsOverview.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Annotations.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Annotations.html.txt uploaded successfully with 1 chunks.'}\n", - "[PDF] VCell Tutorial_ Model Physiology 7.7.pdf → 200\n", - "{'status': 'success', 'message': 'PDF file VCell Tutorial_ Model Physiology 7.7.pdf uploaded successfully with 8 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__SaveAs.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__SaveAs.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PropertiesPaneOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PropertiesPaneOverview.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Login.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Login.html.txt uploaded successfully with 1 chunks.'}\n", - "[PDF] VCell Tutorial_ Image-Based Geometry 7.7.pdf → 200\n", - "{'status': 'success', 'message': 'PDF file VCell Tutorial_ Image-Based Geometry 7.7.pdf uploaded successfully with 10 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsPointLocationProcess.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsPointLocationProcess.html.txt uploaded successfully with 2 chunks.'}\n", - "[PDF] VCell Tutorial_ Rule-Based Ran Transport 7.7.pdf → 200\n", - "{'status': 'success', 'message': 'PDF file VCell Tutorial_ Rule-Based Ran Transport 7.7.pdf uploaded successfully with 29 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpatialSimResultsOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpatialSimResultsOverview.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__RevertToSaved.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__RevertToSaved.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__parameterEstimationUsage.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__parameterEstimationUsage.html.txt uploaded successfully with 4 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Window.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Window.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__numerical_solvers.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__numerical_solvers.html.txt uploaded successfully with 11 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__NFSimSimulationEditor.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__NFSimSimulationEditor.html.txt uploaded successfully with 4 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__SpeciesSpecifications.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__SpeciesSpecifications.html.txt uploaded successfully with 6 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__PostProcessingImage.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__PostProcessingImage.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__ImageJDataViewerPlugin.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__ImageJDataViewerPlugin.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RuleBasedOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RuleBasedOverview.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Stoichiometries.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Stoichiometries.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__TransformToStochCapable.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__TransformToStochCapable.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ReactionRulesKinetics.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ReactionRulesKinetics.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__General.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__General.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayOverview.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__Events.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__Events.html.txt uploaded successfully with 5 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimResultsNonSpatialStochHistogram.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimResultsNonSpatialStochHistogram.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Reactions.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Reactions.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__Observables.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__Observables.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__Electrical.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__Electrical.html.txt uploaded successfully with 4 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__Kinematics.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__Kinematics.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__fieldData.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__fieldData.html.txt uploaded successfully with 7 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulations_overview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulations_overview.html.txt uploaded successfully with 2 chunks.'}\n", - "[PDF] VCell Tutorial_ Constructive Solid Geometry_ Dendritic Spine 7.7.pdf → 200\n", - "{'status': 'success', 'message': 'PDF file VCell Tutorial_ Constructive Solid Geometry_ Dendritic Spine 7.7.pdf uploaded successfully with 14 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__GroupOperationsPanel.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__GroupOperationsPanel.html.txt uploaded successfully with 4 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__LaunchVirtualFRAP.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__LaunchVirtualFRAP.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__AnnotationProviders.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__AnnotationProviders.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsSpatialSurfaceView.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsSpatialSurfaceView.html.txt uploaded successfully with 4 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PhysStructTabView.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PhysStructTabView.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Parameters.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Parameters.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__SpeciesTabView.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__SpeciesTabView.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ModelUnits.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ModelUnits.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__BiopaxSummary__BiopaxSummaryView.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__BiopaxSummary__BiopaxSummaryView.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ParametersAndFunctionsOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ParametersAndFunctionsOverview.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_from_surface.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_from_surface.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsVolumeProcess.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsVolumeProcess.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ExportedDataViewer.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ExportedDataViewer.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsSpatialROIandStatistics.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsSpatialROIandStatistics.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__FieldData.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__FieldData.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__DatabaseOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__DatabaseOverview.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__Warnings.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__Warnings.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ExistingUserAccountLinking.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ExistingUserAccountLinking.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__New.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__New.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimResultsNonSpatialPlotSettings.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimResultsNonSpatialPlotSettings.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__File.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__File.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Species.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Species.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ViewSimStatus.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ViewSimStatus.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__BiopaxSummary__BiopaxTreeView.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__BiopaxSummary__BiopaxTreeView.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RuleBasedTheory.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RuleBasedTheory.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__generated_math.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__generated_math.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__GeneralNavAndWinSetup.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__GeneralNavAndWinSetup.html.txt uploaded successfully with 5 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__NetworkSpecifications.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__NetworkSpecifications.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__PostProcessingStats.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__PostProcessingStats.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__SimulationViewerOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__SimulationViewerOverview.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_nonspatial_mapping.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_nonspatial_mapping.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__BatchSimulations.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__BatchSimulations.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ApplicationProps.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ApplicationProps.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ReactionRulesEditor.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ReactionRulesEditor.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_VCellDatabaseInfo.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_VCellDatabaseInfo.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__MicroscopeMeasurement.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__MicroscopeMeasurement.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__ReactionsSpecifications.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__ReactionsSpecifications.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulationEditor.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulationEditor.html.txt uploaded successfully with 9 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_struct_mapping.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_struct_mapping.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0NewUserAccountCreation.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0NewUserAccountCreation.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__SetProxy.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__SetProxy.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Observables.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Observables.html.txt uploaded successfully with 3 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__PEOverview.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__PEOverview.html.txt uploaded successfully with 1 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__NFSimApp.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__NFSimApp.html.txt uploaded successfully with 2 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Import.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Import.html.txt uploaded successfully with 4 chunks.'}\n", - "[TXT] https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__OpenHDF5ImageJ.html.txt → 200\n", - "{'status': 'success', 'message': 'Text file https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__OpenHDF5ImageJ.html.txt uploaded successfully with 2 chunks.'}\n" + "{'status': 'success', 'files': ['https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__TopMenu.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ParametersAndFunctions.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__NFSimApp.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Problems.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Open.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ApplicationProps.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__SpecificationsOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PropertiesPaneOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimCompartmentResults.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_from_images.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__ReactTabView.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__BatchSimulations.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RuleBasedTheory.html.txt', 'VCell Quick Guide_ Image Based Geometry 7.7.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsSpatialSurfaceView.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RuleBasedOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__GroupOperationsPanel.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__ReactionsSpecifications.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__BiopaxSummary__BiopaxTreeView.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__fieldData.html.txt', 'SimpleFRAP_7.2.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Stoichiometries.html.txt', 'MovingBoundaries.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__ProtocolsOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__Electrical.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsPointObject.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Observables.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Import.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsPointLocationProcess.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsSurfaceObject.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__General.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayImportTable.html.txt', 'VCell_Quickstart_6.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0NewUserAccountCreation.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ApplicationOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResSpatialSliceView.html.txt', 'VCell6.1_Rule-Based_Tutorial.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_Analytic.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__OpenHDF5ImageJ.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Structures.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__PEOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__SimulationViewerOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__FieldData.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__RateRules.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__Molecules.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__ReactDiagView.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_MemFlux.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimResultsNonSpatialPlotSettings.html.txt', 'VCell Tutorial_ Rule-Based Ran Transport 7.7.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__parameterEstimationMethods.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__BioModelsNet.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsSpatialROIandStatistics.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ReactionRulesEditor.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__numerical_solvers.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Reactions.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__SaveAs.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ModelUnits.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PathLink.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpecificFormatSettings.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__NFSimSimulationEditor.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Account.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__LaunchVirtualFRAP.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpatialSimResultsOverview.html.txt', 'PHGFP_7.0.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Pathways.html.txt', 'Tutorial06_PathwayCommons_6.0.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__VCellDatabase.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__GeometryOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_struct_mapping.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__GeneralOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__AnnotationProviders.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__Events.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_from_surface.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ProfilePage.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ExportedDataViewer.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__output_functions.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Login.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayObjects__PathwayObjectsView.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__PostProcessingImage.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RBSimulate.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__ExportingSpatialSimResults.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__Observables.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_VCellDatabaseInfo.html.txt', 'VCell Tutorial_ Image-Based Geometry 7.7.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__NetworkFreeSpecifications.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__BiopaxSummary__BiopaxSummaryView.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Nonspatial__SimResultsNonSpatialStochHistogram.html.txt', 'SimpleFRAP_7.0.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__PathwayCommonsPanel.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__ImageJDataViewerPlugin.html.txt', 'VCell6.1_Rule-Based_Ran_Transport_Tutorial.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PhysStructTabView.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_nonspatial_mapping.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__AppendixOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__ParametersAndFunctionsOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsSurfaceProcess.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ImportBNGL.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__SpeciesTabView.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__SetProxy.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Help.html.txt', 'SingleCompartmentRuleBased.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulations_overview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_2__Physiology__PhysOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0Overview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__RevertToSaved.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Annotations.html.txt', 'VCell Tutorial_ Model Physiology 7.7.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__Warnings.html.txt', 'MultiAppTransport_7.0.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsVolumeProcess.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_4__ParametersAndFunctions__PredefinedConstAndMathFns.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__generated_math.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__PostProcessingStats.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Window.html.txt', 'VCell Tutorial_ Constructive Solid Geometry_ Dendritic Spine 7.7.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ExistingUserAccountLinking.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__Kinematics.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_9__Appendix__Errors.html.txt', 'FRAPBinding_7.0.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__MicroscopeMeasurement.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Tools.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__File.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__ParameterEstimation__parameterEstimationUsage.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Export.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulations.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Geometry__geom_spatial_mapping.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_6__BiologicalPathways__PathwayDiagram__PathwayDiagramView.html.txt', 'VCell_Quickstart_7_Biomodel.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Protocols__AssignmentRules.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__New.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__ViewSimStatus.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__NetworkSpecifications.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_ReactionRulesKinetics.html.txt', 'MultiAppTransport_7.2.pdf', 'FRAPBinding_7.2.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Species.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__TransformToStochCapable.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Specifications__SpeciesSpecifications.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__simulationEditor.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_10__RuleBasedChapter__RBCreate.html.txt', 'SpatialRuleBasedGuide.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__GeneralNavAndWinSetup.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__Auth0__Auth0ReturningUserAccountLinking.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SpatialSimResultsDrawingTools.html.txt', 'VCell Tutorial_ Rule-Based EGFR 7.7.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_3__BioModelApplications__Simulations__Results__Spatial__SimResultsKymograph.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_1__Introduction__Permissions.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Parameters.html.txt', 'PHGFP_7.2.pdf', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_KinematicsVolumeObject.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_7__DatabaseSources__DatabaseOverview.html.txt', 'https:____vcell.org__webstart__VCell_Tutorials__VCell_Help__topics__ch_8__PropertiesPanes__PP_Molecules.html.txt']}\n" ] } ], "source": [ - "# Iterate over files in Downloads\n", - "for filename in os.listdir(downloads_dir):\n", - " filepath = os.path.join(downloads_dir, filename)\n", - "\n", - " if not os.path.isfile(filepath):\n", - " continue # Skip directories\n", - "\n", - " file_ext = os.path.splitext(filename)[1].lower()\n", - "\n", + "r = requests.get(f\"{BASE}/kb/files\", headers=HEADERS, timeout=30)\n", + "if r.status_code == 200:\n", " try:\n", - " if file_ext == \".pdf\":\n", - " with open(filepath, 'rb') as f:\n", - " files = {'file': (filename, f, 'application/pdf')}\n", - " response = requests.post(pdf_url, files=files)\n", - " print(f\"[PDF] {filename} → {response.status_code}\")\n", - " print(response.json())\n", - "\n", - " elif file_ext == \".txt\" or file_ext == \".html\" or file_ext == \".html.txt\":\n", - " with open(filepath, 'rb') as f:\n", - " files = {'file': (filename, f, 'text/plain')}\n", - " response = requests.post(text_url, files=files)\n", - " print(f\"[TXT] {filename} → {response.status_code}\")\n", - " print(response.json())\n", - "\n", + " docs = r.json()\n", + " if isinstance(docs, list):\n", + " print(f\"Knowledge base now contains {len(docs)} entries.\")\n", + " for d in docs[:10]:\n", + " print(f\" - {d}\")\n", + " if len(docs) > 10:\n", + " print(f\" ... and {len(docs) - 10} more\")\n", " else:\n", - " print(f\"[SKIP] Unsupported file type: {filename}\")\n", - "\n", - " except Exception as e:\n", - " print(f\"[ERROR] {filename} → {e}\")" + " print(docs)\n", + " except Exception:\n", + " print(r.text[:500])\n", + "else:\n", + " print(f\"Verify failed: {r.status_code} {r.text[:300]}\")" ] }, { "cell_type": "code", "execution_count": null, - "id": "220cf6a4-901a-4a81-a7e8-704082b7446b", + "id": "c864c281", "metadata": {}, "outputs": [], "source": [] @@ -1456,9 +581,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "VCell Backend (Poetry)", "language": "python", - "name": "python3" + "name": "vcell-backend" }, "language_info": { "codemirror_mode": { @@ -1470,7 +595,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.12.7" } }, "nbformat": 4,