Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
biosimulators-simularium
Advanced tools
Converting Biosimulators spatial simulation outputs into a Simularium-compliant format.
Converting Biosimulators spatial simulation outputs into a Simularium-compliant format.
PLEASE NOTE: If you are using Apple silicon or Windows, you MUST use the Building from Source installation. Currently, smoldyn is only available on PyPI cleanly on Linux.
The easiest way to interact with Biosimulators_simularium
is via the Python Package Index and a
virtual environment.
poetry use python3.10
We recommend installing and using Conda:
After you have created the environment...
conda create -n biosimularium python=3.10
conda activate biosimularium
pip install biosimulators-simularium
To verify successful platform installation...
python3
import biosimulators_simularium as biosimularium
biosimularium.__version__
should display the most recent version with no errors.The preferred build-from-source method involves using Python Poetry. Please ensure that this
is globally installed on your machine. The preferred method of installation from source
is through the use of the install-deps.sh
script that is included at the root of this
repo. Follow the instructions below to install the environment on your machine (mac):
git clone https://github.com/biosimulators/biosimulators-simularium.git
cd Biosimulators_simularium
chmod +x ./install.sh
./install.sh
poetry shell
python3
import biosimulators_simularium
If there are no errors, you are all set!
Set up a virtual environment. We recommend using Conda: conda create -n biosimularium python=3.10
conda activate biosimularium
cd {REPO DESTINATION}
git clone https://github.com/biosimulators/biosimulators-simularium.git
cd Biosimulators_simularium
pip install -e .
FOR MAC ONLY: Download Smoldyn for your Mac (Silicon or Intel): https://www.smoldyn.org/download.html
cd /path/to/your/download/of/smoldyn-2.72-mac
sudo -H ./install.sh
OTHERWISE: pip install smoldyn
A Jupyter Notebook will soon be available which is based off of the simulariumio tutorial series. This will give users the ability to have a tool that quickly generates simularium files with the click of a button based on a valid COMBINE/OMEX archive.
from biosimulators_simularium import generate_simularium_file
archive_root = 'biosimulators_simularium/tests/fixtures/archives/MinE'
simularium_fn = 'simulation'
is_json = True
archive_root
:generate_simularium_file(
working_dir=archive_root,
simularium_filename=simularium_fn,
use_json=is_json
)
import os
assert os.path.exists(os.path.join(archive_root, simularium_fn)))
"""Generating a simularium file for the MinE Smoldyn model."""
import os
from biosimulators_simularium import generate_simularium_file
# define the working dir: here we use a dir from the tests library as an example.
working_dir = 'biosimulators_simularium/tests/fixtures/crowding'
# define the simularium filepath (using the working dir as root in this case)
simularium_fn = os.path.join(working_dir, 'simplified-api-output')
# define the path to the smoldyn model file which in this case is assumed to be in the working dir
model_fp = os.path.join(working_dir, 'model.txt')
# define agent parameters (for this example, we randomly select masses)
red_molecular_mass = 11004
green_molecular_mass = 12424
# create a parameter mapping that maps simulation species type names to respective density and molecular_mass
agent_params = {
'red': {
'density': 1.0,
'molecular_mass': red_molecular_mass,
},
'green': {
'density': 1.0,
'molecular_mass': green_molecular_mass,
}
}
# generate a simularium file from the given parameters
generate_simularium_file(
working_dir=working_dir,
simularium_filename=simularium_fn,
agent_params=agent_params,
model_fp=model_fp
)
# test the existence of a simularium file
try:
assert os.path.exists(simularium_fn)
print(f'{simularium_fn} has been successfully generated.')
except:
AssertionError('A simularium file could not be generated.')
Consider also this MinE simulation where we use the params function to extract parameters of agents from the Smoldyn model file:
import os
from biosimulators_simularium.simulation_data import generate_agent_params_for_minE
from biosimulators_simularium.exec import generate_simularium_file
# define the working dir
working_dir = 'biosimulators_simularium/tests/fixtures/MinE'
# define the simularium filepath (using the working dir as root in this case)
simularium_fn = os.path.join(working_dir, 'simplified-api-output')
model_fp = os.path.join(working_dir, 'model.txt')
base_mass = 12100
density = 1.0
agent_params = generate_agent_params_for_minE(model_fp, base_mass, density)
generate_simularium_file(
working_dir=working_dir,
simularium_filename=simularium_fn,
agent_params=agent_params,
model_fp=model_fp
)
try:
assert os.path.exists(simularium_fn)
print(f'{simularium_fn} has been successfully generated.')
except:
AssertionError('A simularium file could not be generated.')
You may then navigate to https://simularium.allencell.org/viewer and drag/drop the newly generated simularium file into the GUI window.
To report an issue, please visit our Github issues page.
To contact us, please send an email to apatrie@uchc.edu or info@biosimulators.org
FAQs
Converting Biosimulators spatial simulation outputs into a Simularium-compliant format.
We found that biosimulators-simularium demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.