Source code for simulariumio.mcell.mcell_data

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import logging
from typing import Any, Dict, List

from ..data_objects import MetaData, DisplayData

###############################################################################

log = logging.getLogger(__name__)

###############################################################################


[docs] class McellData: path_to_data_model_json: str path_to_binary_files: str meta_data: MetaData nth_timestep_to_read: int display_data: Dict[str, DisplayData] surface_mol_rotation_angle: float plots: List[Dict[str, Any]] def __init__( self, path_to_data_model_json: str, path_to_binary_files: str, meta_data: MetaData = None, nth_timestep_to_read: int = 1, display_data: Dict[str, DisplayData] = None, surface_mol_rotation_angle: float = None, plots: List[Dict[str, Any]] = None, ): """ This object holds simulation trajectory outputs from MCell (https://mcell.org/) and plot data Parameters ---------- path_to_data_model_json : str A string path to the json file containing the data model path_to_binary_files : str A string path to the directory containing visualization .dat binary files meta_data : MetaData (optional) An object containing metadata for the trajectory including box size, scale factor, and camera defaults nth_timestep_to_read: int (optional) Visualize every Nth timestep e.g. if 10, only every 10th timestep will be visualized Default: 1 display_data: Dict[str, DisplayData] (optional) A mapping from molecule names in the MCell data to DisplayData, including names and display info to use for rendering this agent type in the Simularium Viewer Default: for names, use names from MCell, for radius, use value from MCell, for rendering, use default representations and colors surface_mol_rotation_angle: float (optional) The angle to use to calculate rotations around surface molecules' normals Default: use random angles plots : List[Dict[str, Any]] (optional) An object containing plot data already in Simularium format """ self.path_to_data_model_json = path_to_data_model_json self.path_to_binary_files = path_to_binary_files self.meta_data = meta_data if meta_data is not None else MetaData() self.nth_timestep_to_read = nth_timestep_to_read self.display_data = display_data if display_data is not None else {} self.surface_mol_rotation_angle = surface_mol_rotation_angle self.plots = plots if plots is not None else []