iphasimulator.pha_filepath_manager

PHA structure database management.

This module provides lightweight management classes for a PHA-specific structure database.

Classes

PHAFileManager

Handles directory creation, filepath construction and simple file lookup.

PHAResidueCodeManager

Handles the residue code registry stored in residue_codes.csv.

Notes

This module should not contain chemistry-building logic. Parameterisation, prepin generation and polymer construction should live in the polymer builder layer.

Classes

PHAFileManager

Manage paths for a PHA structure database.

PHAResidueCodeManager

Manage the PHA residue code registry.

Module Contents

class iphasimulator.pha_filepath_manager.PHAFileManager(root_dir='structure_database')

Manage paths for a PHA structure database.

root_dir
PHA_types_dir
built_PHAs_dir
PHA_melts_dir
dry_PHAs_dir
solvated_PHAs_dir
solvated_ions_PHAs_dir
temp_dir
residue_codes_csv
polymer_smiles_csv
get_root_dir()
get_temp_dir()
get_residue_codes_csv()
get_polymer_smiles_csv()
get_PHA_type_dir(PHA_type)
create_PHA_type_dir(PHA_type)
get_PHA_input_dir(PHA_type)
get_PHA_trimer_dir(PHA_type)
get_PHA_monomer_units_dir(PHA_type)
get_PHA_leap_template_dir(PHA_type)
get_PHA_monomer_unit_files(PHA_type)
get_built_PHA_name(PHA_type, length)
parse_built_PHA_name(polymer_name)
get_built_PHA_dir(PHA_type, length)
create_built_PHA_dir(PHA_type, length)
get_built_PHA_leap_dir(PHA_type, length)
get_built_PHA_amber_dir(PHA_type, length)
get_built_PHA_gromacs_dir(PHA_type, length)
get_built_PHA_amber_files(polymer_name)
get_dry_PHAs_dir()
get_dry_PHA_system_name(polymer_name)
get_dry_PHA_dir(polymer_name)
get_dry_PHA_inputs_dir(polymer_name)
get_dry_PHA_simulations_dir(polymer_name)
create_dry_PHA_dir(polymer_name)
get_solvated_PHAs_dir()
get_solvated_PHA_system_name(polymer_name)
get_solvated_PHA_dir(polymer_name)
get_solvated_PHA_inputs_dir(polymer_name)
get_solvated_PHA_simulations_dir(polymer_name)
create_solvated_PHA_dir(polymer_name)
get_solvated_ions_PHAs_dir()
format_ion_label(ion_names)
format_concentration_label(ion_concentration)
get_solvated_ions_PHA_system_name(polymer_name, ion_names, ion_concentration)
get_solvated_ions_PHA_dir(polymer_name, ion_names, ion_concentration)
get_solvated_ions_PHA_inputs_dir(polymer_name, ion_names, ion_concentration)
get_solvated_ions_PHA_simulations_dir(polymer_name, ion_names, ion_concentration)
create_solvated_ions_PHA_dir(polymer_name, ion_names, ion_concentration)
get_PHA_melt_name(polymer_names, number_of_polymers)
get_PHA_melt_dir(polymer_names, number_of_polymers)
create_PHA_melt_dir(polymer_names, number_of_polymers)
get_PHA_melt_inputs_dir(polymer_names, number_of_polymers)
get_PHA_melt_simulations_dir(polymer_names, number_of_polymers)
create_PHA_melt_simulation_run_dir(polymer_names, number_of_polymers, timestamp=None)
create_named_PHA_melt_simulation_run_dir(polymer_names, number_of_polymers, run_name)
find_file(directory, extension)
find_files(directory, extension)
class iphasimulator.pha_filepath_manager.PHAResidueCodeManager(paths)

Manage the PHA residue code registry.

The residue code CSV links user-facing PHA names to internal Amber-style residue codes.

Expected CSV format:

PHA_type,component,readable_name,residue_code,smiles

3HB,trimer,P3HB_3,AAA,… 3HB,head,hP3HB,AAB,… 3HB,mainchain,mP3HB,AAC,… 3HB,tail,tP3HB,AAD,…

Parameters:

paths (PHAFileManager) – Filepath manager used to locate residue_codes.csv.

forbidden_codes
header = ['PHA_type', 'component', 'readable_name', 'residue_code', 'smiles']
paths
csv_path
load_rows()

Load all rows from residue_codes.csv.

Returns:

List of CSV entries.

Return type:

list[dict]

get_used_codes()

Return all residue codes currently stored in the CSV.

Returns:

Set of used residue codes.

Return type:

set

PHA_type_exists(PHA_type)

Check whether a PHA type has already been registered.

Parameters:

PHA_type (str)

Return type:

bool

get_code(PHA_type, component)

Return the residue code for a given PHA component.

Parameters:
  • PHA_type (str)

  • component (str) –

    One of:

    trimer head mainchain tail

Return type:

str or None

generate_unique_codes(number_of_codes)

Generate multiple unique residue codes.

Examples

Existing CSV:

AAA AAB

generate_unique_codes(4)

Returns:

AAC AAD AAE AAF

Parameters:

number_of_codes (int)

Return type:

list[str]

register_PHA_type(PHA_type, trimer_name, trimer_smiles, monomer_smiles)

Register a new PHA type.

Creates four residue entries:

trimer head mainchain tail

Example

PHA_type = “3HB”

trimer_name = “P3HB_3”

Generates:

AAA trimer AAB head AAC mainchain AAD tail

Parameters:
  • PHA_type (str)

  • trimer_name (str)

  • trimer_smiles (str)

  • monomer_smiles (str)