SMArt.md package

Submodules

SMArt.md.data_st module

class SMArt.md.data_st.BBAtom(atom_id=None, **kwargs)[source]

Bases: SMArt.md.data_st.GeneralAtom, SMArt.md.gromos.io.incl.grBBAtomWriting

class SMArt.md.data_st.BBdb(mtb_file=None, ifp_file=None, int_db=None)[source]

Bases: SMArt.md.data_st.TopBBdb, SMArt.md.data_st.FF, SMArt.md.gromos.io.incl.MTBBlocksParser, SMArt.md.gromos.io.incl.GromosWriter

Building Block database class

class BuildingBlock(bb_id=None, parse_from=None, ff=None, **kwargs)

Bases: SMArt.md.gromos.io.incl.BBParsing, SMArt.md.gromos.io.incl.BBWriting, SMArt.md.data_st.GeneralTopology

Building block class

Atom

alias of BBAtom

container2write = 'bb'
parse_bb(parse_from, parse_from_file=True, ff=None)
write_bb(gs=None, get_str=False)
add_bb(bb_id=None, parse_from=None, parse_from_file=True, **kwargs)[source]

adds building blocks to the MTB; see add2container for the variables

write_mtb(f_path)[source]
class SMArt.md.data_st.Box(a=None, b=None, c=None, vec=None, **kwargs)[source]

Bases: object

abc2vec()[source]
vec2abc()[source]
class SMArt.md.data_st.BuildingBlock(bb_id=None, parse_from=None, ff=None, **kwargs)[source]

Bases: SMArt.md.gromos.io.incl.BBParsing, SMArt.md.gromos.io.incl.BBWriting, SMArt.md.data_st.GeneralTopology

Building block class

Atom

alias of BBAtom

container2write = 'bb'
parse_bb(parse_from, parse_from_file=True, ff=None)[source]
write_bb(gs=None, get_str=False)[source]
class SMArt.md.data_st.ChargeGroup(*args, **kwargs)[source]

Bases: object

net_ch - net charge atoms - list of atoms

add_atom(atom, **kwargs)[source]

adds an atom and updates the net_ch

container2write = 'cg'
update()[source]

updates the net_ch - if p_ch of an atom changes

class SMArt.md.data_st.ConfAtom[source]

Bases: object

container2write = 'atoms'
class SMArt.md.data_st.Configuration(f_path=None, N_dim=3, **kwargs)[source]

Bases: SMArt.md.gromos.io.incl.cnfBlocksParser, SMArt.md.gromos.io.incl.cnfBlocksWriter, SMArt.md.gromacs.io.incl.gmConfigurationIO

Configuration class

main container: atoms _N_dim (usually 3) _coord - np.array to store coordinate _vel - np.array to store velocities

Atom

alias of ConfAtom

class Box(a=None, b=None, c=None, vec=None, **kwargs)

Bases: object

abc2vec()
vec2abc()
cog(atoms)[source]
d2(at1, at2, periodic=True)[source]
d2_within(at1, at2, cutoff, periodic=True)[source]
d2_within_c2(at1, at2, cutoff2, periodic=True)[source]
find_within(atom, atoms_others, cutoff, periodic=True)[source]
find_within_box(atoms, cutoff, periodic=True)[source]
find_within_c2(atom, atoms_others, cutoff2, periodic=True)[source]
parse_cnf(f_path)[source]
reduce_cnf(atoms)[source]
renumber()[source]
write_cnf(f_path)[source]
write_por(f_path, *args, **kwargs)[source]
write_rpr(f_path)[source]
class SMArt.md.data_st.FF(parse_from=None, parse_from_file=True, format_type='gr', int_db=None, **kwargs)[source]

Bases: SMArt.md.incl.AvailableInteractionTypes, SMArt.incl.DataDumping, SMArt.md.gromos.io.incl.IFPBlocksParser, SMArt.md.gromos.io.incl.IFPBlocksWriter, SMArt.md.gromacs.io.incl.gmFFParser, SMArt.md.gromacs.io.incl.gmFFWriter, SMArt.md.gro2gro.g2g.FFg2g

Force field class

add_a_type(atom_type_id, atom_name, vdw=None, rules=None, replace=False, **kwargs)[source]

atom_id - 1,2,3… if False: defined as the next available number atom_name - CH3,OW… vdw - 4 LJ parameters + 2 LJpair parameters rules - [1,2,3] for every atom type

add_m_type(mass_id, mass, atom_name, replace=False)[source]
add_vdw(at_id1, at_id2, vdw_normal=None, vdw_pair=None, replace=False, **kwargs)[source]

adds vdw parameters for a pair of atoms in self.vdw - key is a tuple from self.__at_pair

atom_radius(at_type, at_type2=None)[source]
check_eq_int_type(int_type, **kwargs)[source]
find_imp_pairs()[source]
find_interaction_type(atoms, int_type_klass, fnc_type=None, allowed_perturbations=None, atoms_reversed=True, use_vdw=True, flag_fnc_type=True, **kwargs)[source]
Parameters
  • atoms – list of atom types!

  • int_type_klass – BondTypes for instance

  • fnc_type – e.g. ‘1’ - see int_type_klass.fnc

  • allowed_perturbations

  • atoms_reversed

  • kwargs – int_container allow_not_found allow_multiple_matches

Returns

find_matches_at_m_types()[source]
generate_vdw(at_ids=False, replace=False, format_type=None, **kwargs)[source]

generates vdw interaction parameters and sets them in self.vdw :param at_ids: :param replace: :param format_type: :param kwargs:

flag_generate_vdw_c612_se = True

Returns

generate_vdw_c612_se(format_type=None, **kwargs)[source]
property get_DUM_type
get_a_type(atom_type_id)[source]
get_intDB(int_type=None, create=True, **kwargs)[source]
get_vdw(at_id1, at_id2)[source]

gets vdw parameters (both normal and pair) for a pair of atom types

static match_at_m_name(at_name, m_names)[source]
parse_ff(parse_from, parse_from_file=True, format_type='gr', **kwargs)[source]

parse force field parameters :param parse_from: :param parse_from_file: :param format_type: :param kwargs: :return:

write_ff(f_path=None, format_type='gr', **kwargs)[source]
class SMArt.md.data_st.GeneralAtom(atom_id=None, **kwargs)[source]

Bases: SMArt.incl.GeneralContainer

add_atom_state(atom_type, p_ch, mass)[source]
add_excl(*atoms, **kwargs)[source]
add_pair(*atoms, **kwargs)[source]
container2write = 'atoms'
get_interaction_containers(EP_cont_exclude=False, **kwargs)
gr_get_element()[source]
class SMArt.md.data_st.GeneralTopology(adj_dict_edges=None, flag_edges=False, parents=None, **kwargs)[source]

Bases: SMArt.incl.DataDumping, SMArt.md.data_st.InteractionContainer, SMArt.graph.incl.GraphDirected

general class for any type of topology, including BB, molecule or whole system contains atoms, interactions and other attributes

Atom

alias of TopAtom

class ChargeGroup(*args, **kwargs)

Bases: object

net_ch - net charge atoms - list of atoms

add_atom(atom, **kwargs)

adds an atom and updates the net_ch

container2write = 'cg'
update()

updates the net_ch - if p_ch of an atom changes

property EP_l
class Interaction(int_type, atoms=None, states=None)

Bases: SMArt.incl.__VersionCompatibility

base class for each interaction type (bonds, angles…) each interaction type should be a new class inheriting from this class and defining na where na stands for number of atoms - 2 for bonds, 3 for angles, etc. attrib

atoms - real atoms (e.g. from topology or building block na - number of atoms _sol - A, B - but could have more as well int_type - interaction type (e.g. BondType)

add_atom(*atoms)
add_state(state=None, **kwargs)
check_atoms_int_match(atoms, **kwargs)
add_atom(atom_id=None, **kwargs)[source]
add_atom_pair2EP_l(at, *atoms, **kwargs)[source]
add_exclusions_neigh(nexcl=2)[source]
add_interactions2atoms_dict(EP_cont_exclude=True, **kwargs)[source]
create_adj_list(containers=('bonds', ), adj_type=<class 'dict'>, **kwargs)[source]
Parameters
  • containers – (‘bonds’,)

  • kwargs – adj_type dict, defaultdict (not so good for interactive use), OrderedDict… adj_format_new_vertex set; list… set_adj_format_type set; tuple…

Returns

find_interactions(atoms, container2search, **kwargs)[source]
gen_graph(containers='bonds')[source]
get_HH()[source]

get hydrogen and heavy atoms

get_atom_ptp_states(at, a_type_ptp, m_ptp, p_ch_ptp, **kwargs)[source]
get_atoms()[source]
get_bb(bb_atom_names='C', 'N', 'CA')[source]
get_excl_pair()[source]
get_ptp_states(at_int, top_state=None, other_state=None, **kwargs)[source]
get_residues()[source]
get_state(states, top_state=None, other_state=None, find_other_state=False, **kwargs)[source]
Parameters
  • states – list of n-states (e.g. at.m_states or interaction.states)

  • top_state – state to get (by default 0)

  • other_state – the other state for ptp

  • find_other_state – find the other state for ptp or EDS (‘any’, 1, -1) ‘any’ - any non-None; 1 - first non-None from top_state; -1 first non-None from top_state with the step -1

  • kwargs

Returns

improper_type(imp)[source]
reduce(atom_ids=None, **kwargs)[source]
Parameters
  • atom_ids

  • kwargs – flag_inplace

Returns

set_top_state(top_state=0, **kwargs)[source]
Parameters
  • top_state

  • kwargs – flag_EDS_mass will set the mass as the average of all matched atoms otherwise - see get_state function (e.g. other_state)

Returns

sort_atoms(attrib='id', **kwargs)[source]
class SMArt.md.data_st.InteractionContainer[source]

Bases: SMArt.incl.GeneralContainer

get_interaction_containers(EP_cont_exclude=False, **kwargs)[source]

finds all interaction containers (e.g. bonds, angels, etc.) - generator :param EP_cont_exclude: :param kwargs:

get_container_name flag_list_only (search for lists only - e.g. skip dictionaries) - False by default

Returns

class SMArt.md.data_st.MD_Parameters(template_md_in)[source]

Bases: SMArt.md.gromos.io.incl.GromosParser, SMArt.md.gromos.io.incl.GromosWriter

change_imd(md_kw, **kwargs)[source]
change_md_in(**kwargs)[source]
change_mdp(md_kw, **kwargs)[source]
get_LPs_pred()[source]
write_imd(f_path=None, **kwargs)[source]
class SMArt.md.data_st.MolSystem[source]

Bases: SMArt.md.data_st.Topology, SMArt.md.data_st.Configuration

class SMArt.md.data_st.MolTop(adj_dict_edges=None, flag_edges=False, parents=None, **kwargs)[source]

Bases: SMArt.md.data_st.GeneralTopology

Atom

alias of TopAtom

class Residue(res_id=None, res_name='res', **kwargs)

Bases: SMArt.incl.GeneralContainer

add_atom(atom, **kwargs)
container2write = 'residues'
find_atom(atom_name)
add_atom(atom_id=None, atom_name=None, **kwargs)[source]
add_interactions(int_type, **kwargs)[source]
add_residue(res_id=None, res_name=None, **kwargs)[source]
generate_constraints(constraints='bonds', excl_bonds=None, flag_check_form=True, **kwargs)[source]
get_HH()[source]

get hydrogen and heavy atoms

class SMArt.md.data_st.Molecule(mol_type=None, num_mols=None, **kwargs)[source]

Bases: object

container2write = 'molecules'
class SMArt.md.data_st.MoleculeType(molecule_id=None, nrexcl=0, ff=None, **kwargs)[source]

Bases: SMArt.md.data_st.MolTop, SMArt.md.gromacs.io.incl.gmFragmentMoleculeIO, SMArt.md.gro2gro.g2g.MolType_g2g

container2write = 'molecule_types'
id_pref = 'mol_'
class SMArt.md.data_st.Residue(res_id=None, res_name='res', **kwargs)[source]

Bases: SMArt.incl.GeneralContainer

add_atom(atom, **kwargs)[source]
container2write = 'residues'
find_atom(atom_name)[source]
class SMArt.md.data_st.TopAtom(atom_id=None, **kwargs)[source]

Bases: SMArt.md.data_st.GeneralAtom, SMArt.md.gromos.io.incl.grTOPAtomWriting

class SMArt.md.data_st.TopBBdb[source]

Bases: SMArt.incl.Defaults

setting default for _int_db for TOP and BBdb (MTB/RTP) classes

class SMArt.md.data_st.Topology(parse_from=None, parse_from_file=True, format_type='gr', **kwargs)[source]

Bases: SMArt.md.gro2gro.g2g.Top_g2g, SMArt.md.data_st.TopBBdb, SMArt.md.data_st.MolTop, SMArt.md.data_st.FF, SMArt.md.gromos.io.incl.topBlocksParser, SMArt.md.gromos.io.incl.topBlocksWriter, SMArt.md.gromos.io.incl.PTP_EDS_BlocksParser, SMArt.md.gromacs.io.incl.gmTopologyIO

Topology class - all atoms of the system + interactions + FF contains also Molecule class, which is very similar

class Molecule(mol_type=None, num_mols=None, **kwargs)

Bases: object

container2write = 'molecules'
class MoleculeType(molecule_id=None, nrexcl=0, ff=None, **kwargs)

Bases: SMArt.md.data_st.MolTop, SMArt.md.gromacs.io.incl.gmFragmentMoleculeIO, SMArt.md.gro2gro.g2g.MolType_g2g

container2write = 'molecule_types'
id_pref = 'mol_'
add_molecule(mol_type=None, num_mols=None, create=True, create_container=True, **kwargs)[source]
add_molecule_type(molecule_id=None, nrexcl=0, ff=None, **kwargs)[source]
check_molecule_atoms_order(molecules=None, print_warn=True, **kwargs)[source]
get_G_mol(m=None, **kwargs)[source]
get_molecules(at=None, flag_sort=False, flag_mol_atom_sort=False, **kwargs)[source]
Parameters
  • at – search in a subset of atoms

  • flag_sort – sort atoms

  • flag_mol_atom_sort – sort molecules

  • kwargs – flag_disres - use distance restraints in addition to bonds

Returns

get_reduced_state(top_state)[source]
get_rev_top_ptp()[source]
parse_eds(parse_from, parse_from_file=True, **kwargs)[source]

parse eds states :param parse_from: :param parse_from_file: :param kwargs: :return:

parse_top(parse_from, parse_from_file=True, format_type='gr', **kwargs)[source]
Parameters
  • parse_from

  • parse_from_file

  • format_type

  • kwargs

Returns

reduce_top(atom_ids=None, **kwargs)[source]
Parameters
  • atom_ids

  • kwargs – flag_inplace

Returns

renumber(**kwargs)[source]
Parameters

kwargs – c_init = 1 attrib = ‘id’ flag_id_map = False

Returns

id_map

write_top(f_path=None, format_type='gr', **kwargs)[source]
class SMArt.md.data_st.Trajectory(f_path=None, N_atoms=None, int_num_dtype=<class 'numpy.int32'>, real_num_dtype=<class 'numpy.float32'>, **kwargs)[source]

Bases: SMArt.md.gromos.io.incl.TrjCnfBlocksParser, SMArt.md.gromos.io.incl.TrjCnfBlocksWriter

get_frame_dtype()[source]
load_trc_npz(f_path)[source]
parse_trc(f_path, **kwargs)[source]
set_N_frames(N_frames)[source]

SMArt.md.incl module

class SMArt.md.incl.AngleType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

container2write = 'angles'
convert_harm_quad(check_cutoff=0.001, **kwargs)[source]
fnc = {'1': 'ff11', '2': 'ff11', '3': 'fff000', '4': 'ffff0000', '5': 'ffff1111', '6': 'fffff00000', '8': 'if01', 'gr_fnc': 'fff111'}
generate_params_khq(khq)
get_khq()
gm2gr(**kwargs)[source]
gr2gm(**kwargs)[source]
na = 3
class SMArt.md.incl.Angle_r(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType

container2write = 'angres'
fnc = {'1': 'ffi110'}
na = 4
class SMArt.md.incl.Angle_r_z(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType

container2write = 'angresz'
fnc = {'1': 'ffi110'}
na = 2
class SMArt.md.incl.AtomType(atom_id, atom_name, c612=None, rules=None, vdw=None, bond_atom_id=None, format_type=None, **kwargs)[source]

Bases: SMArt.incl.__VersionCompatibility

add_genborn(params)[source]
container2write = 'a_type'
convert_c612_2_se()[source]
convert_se_2_c612()[source]
class SMArt.md.incl.AvailableInteractionTypes[source]

Bases: object

class AngleType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

container2write = 'angles'
convert_harm_quad(check_cutoff=0.001, **kwargs)
fnc = {'1': 'ff11', '2': 'ff11', '3': 'fff000', '4': 'ffff0000', '5': 'ffff1111', '6': 'fffff00000', '8': 'if01', 'gr_fnc': 'fff111'}
generate_params_khq(khq)
get_khq()
gm2gr(**kwargs)
gr2gm(**kwargs)
na = 3
class Angle_r(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType

container2write = 'angres'
fnc = {'1': 'ffi110'}
na = 4
class Angle_r_z(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType

container2write = 'angresz'
fnc = {'1': 'ffi110'}
na = 2
class AtomType(atom_id, atom_name, c612=None, rules=None, vdw=None, bond_atom_id=None, format_type=None, **kwargs)

Bases: SMArt.incl.__VersionCompatibility

add_genborn(params)
container2write = 'a_type'
convert_c612_2_se()
convert_se_2_c612()
class BondAtomType

Bases: str

container2write = 'b_a_type'
class BondType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

container2write = 'bonds'
convert_harm_quad(**kwargs)
fnc = {'1': 'ff11', '10': 'ffff1111', '2': 'ff11', '3': 'fff111', '4': 'fff000', '5': '', '6': 'ff11', '7': 'ff00', '8': 'if01', '9': 'if01', 'gr_fnc': 'fff111'}
generate_params_khq(khq)
get_khq()
gm2gr(**kwargs)
gr2gm(**kwargs)
na = 2
class ConstraintType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

container2write = 'constraints'
fnc = {'1': 'f1', '2': 'f1', 'gr_fnc': 'f1'}
na = 2
class DihedralType(*args, **kwargs)

Bases: SMArt.md.incl.Dihedral_Check_atoms_int

container2write = 'dihedrals'
fnc = {'1': 'ffi110', '10': 'fffff00000', '11': 'ff00', '2': 'ff11', '3': 'ffffff111111', '4': 'ffi110', '5': 'ffff1111', '8': 'if01', '9': 'ffi110', 'gr_fnc': 'ffi111'}
na = 4
class Dihedral_Check_atoms_int(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

class Dihedral_r(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.Dihedral_Check_atoms_int

container2write = 'dihres'
fnc = {'1': 'ff11'}
na = 4
class Distance_r(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType

distance restraints extra gromos attributes: gr_extra_atoms, gr_atom_types; gr_distres_dis_const (in top)

container2write = 'disres'
fnc = {'1': 'iiiffff0000000', 'gr_fnc': 'ffi000'}
gr2gm(**kwargs)
Parameters

kwargs – index - gromacs dist res index - specifies to which group of dist res this one belongs to fac - factor with which the force constant will be multiplied (fc_gm = gr_weight / fac) r2 - parameter after which the potential energy becomes linear

Returns

na = 2
class ExclusionPairType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

exclusion type - but also carries info on 1-4 pair # 0 normal wdv # 1 excluded # 2 pair

# in GROMOS ptp (PERTATOMPAIR block) these would be the codes: # 0 excluded # 1 normal vdw # 2 pair

container2write = 'excl_pair'
fnc = {None: 'i1', 'gr_fnc': 'i1'}
na = 2
class ExclusionType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

exclusion type - but also carries info on 1-4 pair # 0 normal wdv # 1 excluded # 2 pair

container2write = 'exclusions'
fnc = {None: 'i1', 'gr_fnc': 'i1'}
na = 2
class ImproperType(*args, **kwargs)

Bases: SMArt.md.incl.DihedralType, SMArt.incl.Defaults

container2write = 'impropers'
fnc = {'1': 'ffi110', '10': 'fffff00000', '11': 'ff00', '2': 'ff11', '3': 'ffffff111111', '4': 'ffi110', '5': 'ffff1111', '8': 'if01', '9': 'ffi110', 'gr_fnc': 'ff11'}
gm2gr_param_trans_fnc = (None, None, None, None, <function <lambda>>)
gr2gm_param_trans_fnc = (None, None, None, None, <function <lambda>>)
class MassType(mass_id, mass, atom_name)

Bases: SMArt.incl.__VersionCompatibility

container2write = 'm_type'
class Orientation_r(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType

container2write = 'orires'
fnc = {'1': 'ffffff000000'}
na = 2
class PairNBType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

fnc = {'1': 'ffff0000'}
na = 2
class PairType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl._vdWTypeBase

container2write = 'vdw_pairs'
fnc = {'1': 'ff11', '2': 'ffff0000', 'gr_fnc': 'ff11'}
na = 2
class Position_r(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType

container2write = 'posres'
fnc = {'1': 'fff111', '2': 'ff00'}
na = 1
class SettleType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType

container2write = 'settles'
fnc = {'1': 'ff00'}
na = 1
class VirtualSite2Type(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType

container2write = 'VS2'
fnc = {'1': 'f0'}
na = 3
class VirtualSite3Type(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType

container2write = 'VS3'
fnc = {'1': 'ff00', '2': 'ff00', '3': 'ff00', '4': 'fff000'}
na = 4
class VirtualSite4Type(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl.InteractionType

container2write = 'VS4'
fnc = {'2': 'ff00'}
na = 5
class VirtualSitenType(fnc_type, int_code=None)

Bases: SMArt.md.incl.InteractionType

container2write = 'VSn'
na = 1
class cmap(int_code=None, params=None, fnc_type='1', atoms=None, grid_ind=False)

Bases: SMArt.md.incl.InteractionType, SMArt.md.gromacs.io.incl_md_only.gmCMAPWriter

container2write = 'cmap'
na = 5
class vdWAtomPairType(iterable=(), /)

Bases: SMArt.incl.__VersionCompatibility, tuple

container2write = 'vdw'
class vdWType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)

Bases: SMArt.md.incl._vdWTypeBase

container2write = 'vdw_normal'
fnc = {'1': 'ff11', '2': 'fff111', 'gr_fnc': 'ff11'}
na = 2
class SMArt.md.incl.BondAtomType[source]

Bases: str

container2write = 'b_a_type'
class SMArt.md.incl.BondType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

container2write = 'bonds'
convert_harm_quad(**kwargs)[source]
fnc = {'1': 'ff11', '10': 'ffff1111', '2': 'ff11', '3': 'fff111', '4': 'fff000', '5': '', '6': 'ff11', '7': 'ff00', '8': 'if01', '9': 'if01', 'gr_fnc': 'fff111'}
generate_params_khq(khq)
get_khq()
gm2gr(**kwargs)[source]
gr2gm(**kwargs)[source]
na = 2
class SMArt.md.incl.ConstraintType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

container2write = 'constraints'
fnc = {'1': 'f1', '2': 'f1', 'gr_fnc': 'f1'}
na = 2
class SMArt.md.incl.DescriptionPart(lines=None, file_type=None, form=None, **kwargs)[source]

Bases: object

in gromos for title and in gromacs for system/first line of gro file

add_line(line)[source]
container2write = 'sys_title'
class SMArt.md.incl.DihedralType(*args, **kwargs)[source]

Bases: SMArt.md.incl.Dihedral_Check_atoms_int

container2write = 'dihedrals'
fnc = {'1': 'ffi110', '10': 'fffff00000', '11': 'ff00', '2': 'ff11', '3': 'ffffff111111', '4': 'ffi110', '5': 'ffff1111', '8': 'if01', '9': 'ffi110', 'gr_fnc': 'ffi111'}
na = 4
class SMArt.md.incl.Dihedral_Check_atoms_int(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

class SMArt.md.incl.Dihedral_r(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.Dihedral_Check_atoms_int

container2write = 'dihres'
fnc = {'1': 'ff11'}
na = 4
class SMArt.md.incl.Distance_r(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType

distance restraints extra gromos attributes: gr_extra_atoms, gr_atom_types; gr_distres_dis_const (in top)

container2write = 'disres'
fnc = {'1': 'iiiffff0000000', 'gr_fnc': 'ffi000'}
gr2gm(**kwargs)[source]
Parameters

kwargs – index - gromacs dist res index - specifies to which group of dist res this one belongs to fac - factor with which the force constant will be multiplied (fc_gm = gr_weight / fac) r2 - parameter after which the potential energy becomes linear

Returns

na = 2
class SMArt.md.incl.Dummy[source]

Bases: object

a_type = None
coord = array([nan, nan, nan])
m = None
p_ch = None
class SMArt.md.incl.ExclusionPairType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

exclusion type - but also carries info on 1-4 pair # 0 normal wdv # 1 excluded # 2 pair

# in GROMOS ptp (PERTATOMPAIR block) these would be the codes: # 0 excluded # 1 normal vdw # 2 pair

container2write = 'excl_pair'
fnc = {None: 'i1', 'gr_fnc': 'i1'}
na = 2
class SMArt.md.incl.ExclusionType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

exclusion type - but also carries info on 1-4 pair # 0 normal wdv # 1 excluded # 2 pair

container2write = 'exclusions'
fnc = {None: 'i1', 'gr_fnc': 'i1'}
na = 2
class SMArt.md.incl.ImproperType(*args, **kwargs)[source]

Bases: SMArt.md.incl.DihedralType, SMArt.incl.Defaults

container2write = 'impropers'
fnc = {'1': 'ffi110', '10': 'fffff00000', '11': 'ff00', '2': 'ff11', '3': 'ffffff111111', '4': 'ffi110', '5': 'ffff1111', '8': 'if01', '9': 'ffi110', 'gr_fnc': 'ff11'}
gm2gr_param_trans_fnc = (None, None, None, None, <function <lambda>>)
gr2gm_param_trans_fnc = (None, None, None, None, <function <lambda>>)
class SMArt.md.incl.Interaction(int_type, atoms=None, states=None)[source]

Bases: SMArt.incl.__VersionCompatibility

base class for each interaction type (bonds, angles…) each interaction type should be a new class inheriting from this class and defining na where na stands for number of atoms - 2 for bonds, 3 for angles, etc. attrib

atoms - real atoms (e.g. from topology or building block na - number of atoms _sol - A, B - but could have more as well int_type - interaction type (e.g. BondType)

add_atom(*atoms)
add_state(state=None, **kwargs)[source]
check_atoms_int_match(atoms, **kwargs)[source]
class SMArt.md.incl.InteractionType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.gromacs.io.incl_md_only.gmInteractionTypeWriter, SMArt.md.gro2gro.g2g.IntType_g2g

base class for each interaction type (bonds, angles…) each interaction type should be a new class inheriting from this class and defining na, p_type and flag p_type is variable type for each of the parameters, for dihedrals (float, float, int) flag is gromacs-related flag representing if a parameter is allowed in ptp change - (for dihedrals (1,1,0))

add_atom(*atoms)
add_atom_types(atoms)[source]
add_p_type_flag(code=None)[source]
add_params(params, flag_check_len=False, flag_len_break=False)[source]

adds successively parameters to the interaction type len(params) could be one or more, even more than len(p_type) in combination with flag_len

calc_ptp_score(int_type2, **kwargs)[source]
static check_at_types(at1, at2)[source]
check_atom_types(atoms, ratoms)[source]
check_atoms_int_match(atom_types, **kwargs)[source]
check_eq_params(params2, cutoff=1e-05, check_type=True, flag_np=False, **kwargs)[source]
check_eq_ptp_flag_params(params2, cutoff=1e-05, check_type=True, flag_np=False, **kwargs)[source]
check_number_of_params()[source]
static check_param(param, p_type)[source]
classmethod find_int_container2write()[source]
get_form()[source]
set_params(params, replace=None)[source]

sets parameters for an interaction type - len(params) has to be the same as len(p_type)

class SMArt.md.incl.MassType(mass_id, mass, atom_name)[source]

Bases: SMArt.incl.__VersionCompatibility

container2write = 'm_type'
class SMArt.md.incl.Orientation_r(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType

container2write = 'orires'
fnc = {'1': 'ffffff000000'}
na = 2
class SMArt.md.incl.PairNBType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType, SMArt.incl.Defaults

fnc = {'1': 'ffff0000'}
na = 2
class SMArt.md.incl.PairType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl._vdWTypeBase

container2write = 'vdw_pairs'
fnc = {'1': 'ff11', '2': 'ffff0000', 'gr_fnc': 'ff11'}
na = 2
class SMArt.md.incl.Position_r(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType

container2write = 'posres'
fnc = {'1': 'fff111', '2': 'ff00'}
na = 1
class SMArt.md.incl.SettleType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType

container2write = 'settles'
fnc = {'1': 'ff00'}
na = 1
class SMArt.md.incl.VirtualSite2Type(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType

container2write = 'VS2'
fnc = {'1': 'f0'}
na = 3
class SMArt.md.incl.VirtualSite3Type(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType

container2write = 'VS3'
fnc = {'1': 'ff00', '2': 'ff00', '3': 'ff00', '4': 'fff000'}
na = 4
class SMArt.md.incl.VirtualSite4Type(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl.InteractionType

container2write = 'VS4'
fnc = {'2': 'ff00'}
na = 5
class SMArt.md.incl.VirtualSitenType(fnc_type, int_code=None)[source]

Bases: SMArt.md.incl.InteractionType

container2write = 'VSn'
na = 1
SMArt.md.incl.check_if_eq(param1, param2, cutoff=1e-05, check_type=True, flag_np=False, **kwargs)[source]
class SMArt.md.incl.cmap(int_code=None, params=None, fnc_type='1', atoms=None, grid_ind=False)[source]

Bases: SMArt.md.incl.InteractionType, SMArt.md.gromacs.io.incl_md_only.gmCMAPWriter

container2write = 'cmap'
na = 5
class SMArt.md.incl.vdWAtomPairType(iterable=(), /)[source]

Bases: SMArt.incl.__VersionCompatibility, tuple

container2write = 'vdw'
class SMArt.md.incl.vdWType(int_code=None, params=None, fnc_type='gr_fnc', atoms=None, **kwargs)[source]

Bases: SMArt.md.incl._vdWTypeBase

container2write = 'vdw_normal'
fnc = {'1': 'ff11', '2': 'fff111', 'gr_fnc': 'ff11'}
na = 2

SMArt.md.pipeline module

SMArt.md.pipeline.eq(top, conf, md_in, eq_jobs)[source]
SMArt.md.pipeline.gen_slurm_job(f_path, commands, **kwargs)[source]
SMArt.md.pipeline.get_slurm_job_settings(**slurm_kw)[source]
SMArt.md.pipeline.prep_pdb(pdb)[source]
SMArt.md.pipeline.run_intial_FE(t_eq, t_sim, LPs=None, **kwargs)[source]

SMArt.md.wrappers module

SMArt.md.wrappers.run_gm_prog(prog, pre_comm='gmx ', pipe=None, None, **flags)[source]

run GROMACS program

Parameters
  • prog – program to run (e.g. grompp)

  • pipe – pipe the output to a file

  • flags – flags to be passed to the program (e.g. dict(f=path_to_mdp_file))

Returns

command

SMArt.md.wrappers.run_gr_prog(prog, pre_comm='', pipe=None, None, **flags)[source]

run GROMOS program

Parameters
  • prog – program to run (e.g. make_top)

  • pipe – pipe the output to a file

  • flags – flags to be passed to the program (e.g. dict(topo=path_to_topo_file))

Returns

command

SMArt.md.wrappers.run_prog(prog, pipe=None, None, format_type='gr', **flags)[source]

run GROMOS/GROMACS program

Parameters
  • prog – program to run (e.g. make_top / grompp)

  • pipe – pipe the output to a file

  • flags – flags to be passed to the program (e.g. dict(f=path_to_mdp_file) or dict(topo=path_to_topo_file))

Returns

command

Module contents

SMArt.md.parse_cnf(f_path, **kwargs)[source]
Parameters
  • parse_from – this can also be gromos stream

  • parse_from_file

  • kwargs

Returns

configuration

SMArt.md.parse_ff(parse_from, parse_from_file=True, format_type='gr', **kwargs)[source]
Parameters
  • parse_from – this can also be gromos or gromacs stream

  • parse_from_file

  • format_type – gr or gm for gromos and gromacs

  • kwargs

Returns

force field object

SMArt.md.parse_mtb(parse_from, parse_from_file=True, **kwargs)[source]
Parameters
  • parse_from – this can also be gromos or gromacs stream

  • parse_from_file

  • kwargs

Returns

mtb

SMArt.md.parse_top(parse_from, parse_from_file=True, format_type='gr', **kwargs)[source]
Parameters
  • parse_from – this can also be gromos or gromacs stream

  • parse_from_file

  • format_type – gr or gm for gromos and gromacs

  • kwargs

Returns

toplogy object

SMArt.md.parse_trc(f_path, **kwargs)[source]
Parameters
  • parse_from – this can also be gromos stream

  • parse_from_file

  • kwargs

Returns

trajectory