Source code for dylightful.utilities

import json
import os
from pathlib import Path
import pandas as pd

dirname = os.path.dirname(__file__)


[docs]def load_parsed_dyno(traj_path): """Loads the parsed trajectory from the parser Args: traj_path ([type]): Path to the parsed traj Returns: [type]: trajectory as pd.DataFrame, number of observations as int """ with open(traj_path) as f: data = json.load(f) time_ser = pd.DataFrame(data) time_ser = time_ser.drop(columns="num_frames") obs = time_ser.drop_duplicates() num_obs = len(obs) print("There are actually ", num_obs, " present.") obs = obs.to_numpy() time_ser = time_ser.to_numpy() print("The length of the observation sequence is ", len(time_ser)) return [time_ser, obs]
[docs]def save_dict(d, save_path, name=None): if name is None: name = "_time_series.json" else: name = "_" + name name += "_time_series.json" with open(save_path + name, "w") as fp: json.dump(d, fp) print("Saved file to", save_path)
[docs]def make_name(prefix, name, dir=dirname): """Merge a prefix and a name Args: prefix ([type]): [description] name ([type]): [description] Returns: [type]: [description] """ if dir is None: dir = os.getcwd() if prefix is None: return os.path.join(dir, name) else: prefix = "_" + prefix name = prefix + name return os.path.join(dir, name)
[docs]def parse_file_path(path): """Automatically generates an output path for the time trajectory Args: path ([type]): Dynophore input path """ return get_dir(path) + "/" + get_name(path)
[docs]def get_dir(path): """Automatically extracts the path to the dynophore trajectory Args: path (str): File path to the dynophore trajectory Returns: str: /some/file/path """ dir_path = os.path.dirname(os.path.realpath(path)) return dir_path
[docs]def get_name(path): """Gets the name of the dynophore trajectory without the .pml extension Args: path (str): File path to the dynophore trajectory Returns: str: dynophore_pml """ file = Path(path).stem return file