virtualcell / vcell

Virtual Cell Framework
http://vcell.org/
Other
65 stars 20 forks source link
install4j simulation vcell-clients vcell-server


CI

Virtual Cell

VCell - a modeling and simulation framework for computational cell biology

The VCell is a comprehensive framework for modeling and simulating cell biology from biological pathways down to cell biophysics. VCell supports the biochemical network and rule-based modeling and electrophysiology in compartmental modeling and within cellular geometry.

Simulation capabilities include ODEs, Reaction-Diffusion equations within cellular geometry, Gillespie and Hybrid stochastic solvers, Particle-based spatial simulations, network free simulations, and cell kinematics (moving boundary problems).

Contents

VCell software consists of

1) a standalone modeling and simulation tool (vcell-client) 2) a shared server providing a centralized model database, cluster computing and shared storage (vcell-server, vcell-api) 3) simulation solvers written in C++/Fortran/Python and developed as part of the project as well as third party solvers and analysis.

Download VCell

git clone https://github.com/virtualcell/vcell
cd vcell

Building, testing and running VCell on the command line

Build Java and Python

mvn clean install -DskipTests

INSTALL_DIR=$(pwd)
cd ${INSTALL_DIR}/pythonCopasiOpt/vcell-opt
poetry env use 3.10
poetry install

cd ${INSTALL_DIR}/docker/swarm/vcell-admin
poetry env use 3.10
poetry install

cd ${INSTALL_DIR}/pythonVtk
poetry env use 3.10
poetry install

cd ${INSTALL_DIR}/vcell-cli-utils
poetry env use 3.10
poetry install

Test Java and Python

mvn test -Dgroups="Fast"

INSTALL_DIR=$(pwd)
cd ${INSTALL_DIR}/pythonCopasiOpt/vcell-opt
poetry run python -m pytest

cd ${INSTALL_DIR}/docker/swarm/vcell-admin
poetry run python -m pytest

cd ${INSTALL_DIR}/pythonVtk
poetry run python -m pytest

cd ${INSTALL_DIR}/vcell-cli-utils
poetry run python -m pytest

cd ${INSTALL_DIR}

Run the VCell client (connects to the VCell servers)

./vcell.sh

VCell client IntelliJ setup for Windows and Mac (follow command line instructions first)

Requirements: IntelliJ, Java 17, Python 3.10 and poetry

VCell client Eclipse setup for Windows and Mac (follow command line instructions first)

Requirements: Eclipse IDE for Java Developers and Java 17, Python 3.10 and poetry

Building and Running VCell Server

  1. Service has 1 image and configuration, manages 1 or more containers, container is a running image
  2. All services defined in ./swarm/docker-compose.yml (collection of services,volumes, dependencies,...)

VCell Server Installation General Requirements

VCell CLI Requirements

  1. VCell-CLI module requires python 3.10 and poetry

Other Details

  1. Creating certs details
    1.1. (TLS/SSL website for (vcellapi.cam.uchc.edu,vcell-api.cam.uchc.edu)
    1.2. Microsoft authenticode codesigning (to prevent install4j from being rejected on windows clients)
    1.3. Apple codesigning for macos (prevents from mac refusing install4j install))
  2. Understanding VCell services detailed instructions
  3. NEW VCell Server Node configuration detailed instructions
    3.1. Create new Docker swarm with node or Add node to existing Docker swarm detailed instructions
    3.2. Finish NEW VCell Server Node configuration detailed instructions
  4. Building VCell Client/Server Software detailed instructions
    4.1. Github/Travis/Appveyor/Dockerhub Instructions
  5. Deploying VCell Client/Server software detailed instructions
    5.1. VCell System Flow-Control
  6. Server Administration detailed instructions (.e.g restarting VCell services)
  7. Debugging detailed instructions (.e.g debug vcell client/server)
  8. serverconfig.sh file must be customized for your configuration (see vcell/docker/swarm/serverconfig-uch.sh).

License

Virtual Cell software is licensed under the MIT open source license.