Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

HaMolSet Class Reference

Class to describe a collection of molecules - Central Class of HARLEM. More...

#include <hamolset.h>

Inheritance diagram for HaMolSet:

HaResDB List of all members.

Axxiliary classes:

typedef BondIteratorMolSet BondIterator
typedef ResidueIteratorMolSet ResidueIterator

Chemical(Functional) Groups:

typedef list< ChemGroupChemGroupsType
int GetNChemGroups () const
 Get total number of chemical groups.

ChemGroupAddBlankChemGroup (const HaString &gid="")
 Add an empty chemical groups.

bool DeleteChemGroup (const HaString &gid)
 Delete Chemical group.

bool DeleteChemGroupPtr (ChemGroup *grp_ptr)
 Delete Chemical Group if pointer is known.

bool SetChemGrpSelected (const HaString &gid)
 Set Selected Atoms to a chemical group.

ChemGroupGetChemGroupByIdx (int index)
 Get Chemical Group by index.

ChemGroupGetChemGroupByID (const HaString &gid)
 Get Chemical Group by id.

ChemGroupGetChemGroupByAtom (const HaAtom *aptr)
 Get Chemical Group containg atom.

bool SetStdChemGroups ()
 Set Standard Chemical Group for a molecular set.

void RenumberGrp ()
bool CheckUniqChemGrpID (const HaString &gid)
HaString GetUniqChemGrpID (int buf_reg_flag)
list< ChemGroupChemGroups
 Chemical Functional Groups.

VecPtr chemg_idx

Named Atom Groups:

typedef list< AtomListNamedAtomListsType
AtomListAddAtomList (const char *id="")
 Add New Atom List with ID.

AtomListGetAtomListByID (const char *id)
 Get Atom List By ID.

AtomListSetAtomListFromSelection (const HaString &id)
 Set Atom List with id by selected atoms of the molset (create list if needed).

bool DeleteAtomList (const HaString &gid)
 Delete Atom List with id.

bool DeleteAtomListPtr (AtomList *alist_ptr)
 Delete Atom List if pointer is known.

list< AtomListNamedAtomLists
 Named Atom Lists.


Debug Control

enum  DEBUG_FLAG_PARAMS { file_reading_debug = 0x0001 }
bool Print_info (ostream &sout, const int level)
 Print molecular set info.

int debug_flag

Input/Output geometry from/to files

enum  MOL_SAVE_FLAG { SAVE_SELECTED = 0x0001, SAVE_AS_ONE_MOL = 0x0002, SAVE_TRANSFORMED = 0x0004 }
int FetchFile (int format, const char *file_name)
 Load file in a given format (FormatPDB,FormatHarlem etc..).

bool LoadHarlemFile (const char *fname)
 Load Molecules from file in HARLEM (*.HLM) format.

int LoadAmberPrepFile (const char *fname)
 Load Molecule in AMBER PREP (*.IN) format.

int LoadRWFMolecule (const char *fname)
 Load structure in binary Gaussian checkpoint (*.rwf, *.chk) format.

int LoadPDBFile (const char *fname, int flag=0)
 Load molecule in PDB format (flag = 1 - NMR extension).

int LoadMol2File (const char *fname)
 Load molecule in TRIPOS *.mol format.

int LoadMDLFile (const char *fname)
 Load molecule in TRIPOS *.mdl format.

int LoadXYZFile (const char *fname)
 Load molecule in XYZ format ( iat,x,y,z).

int SavePDBFile (const char *filename)
 Save molecules into a file in PDB format.

int SaveHarlemFile (const char *filename)
 Save molecules into a file in HARLEM format.

int SaveXYZFile (const char *filename)
 Save molecule into a XYZ file (elem_no,x,y,z).

int SaveXYZRadFile (const char *filename)
 Save file with lines (x,y,z, atom_radius) for MSMS input.

int m_unique_atom_names_flag
 flag to assign unique atom names in the atoms of the molecules during reading

int m_save_connect
 Flag to save connectivity information.

int m_save_transform
 Flag to save transformed atom coordinates.

int m_save_selected
 Flag to save only Selected Atoms.

HaString m_save_mol_name
enum HaMolSet::MOL_SAVE_FLAG save_flags
int m_calc_bonds_flag = True
 the flag to calculate bonds from atom distance criteria

void ProcessPDBAtom (int heta, IntPtrMap &id_at_map, HaMolecule *pMol)

Constructors and Destructors:

 HaMolSet (const HaString &new_name)

RASMOL-type Text Command Processing:

int ExecuteCommand (CmdParser &cmd_pr)
int ExecuteShowCommand (CmdParser &cmd_pr)

Superimpose molecules functions:

double OverlapMol (AtomList &fmolatset, AtomList &smolatset)
 Superimpose two molecules containing atom sets fmolatset and smolatset.

double AlignOverlapMol (AtomList &fmolatset, HaMolecule *pMol2, PtrPtrMap *fit=NULL, HaVec_double *p_trans=NULL, HaMat_double *p_rot=NULL)
 Align Sequences and Overlap two molecules containing atom sets fmolatset and smolatset, return RMS of atoms.


Molecular Structure Modifications

HaMoleculeCreateMolecule ()
 function to create a new molecule in the set

HaMoleculeGetFirstMolecule ()
 Get First Molecule in the set.

HaMoleculeGetMoleculeNum (int imol)
 Get Molecule number imol (0-based).

void DeleteAll ()
 Delete all the contents of the molecular set.

bool DeleteMol (HaMolecule *pMol)
 Delete molecule.

bool DeleteAtomWithRef (const char *atref)
 Delete Atom identified by reference.

bool DeleteAtom (HaAtom *aptr)
 Delete Atom.

bool DeleteAtoms (AtomCollection &atset)
 Delete Atoms.

int MergeMolecules (HaMolecule *pMol1, HaMolecule *pMol2)
 Merge molecule 2 into molecule 1.

int add_molset_copies (int nx, int ny, int nz)
int solvate ()
 solvate the molecular set

int place_to_orig ()
 place the molecular set to the center of origin;

HaMoleculeCreateTransAlk (const int nunit, const HaString name="ALK")
 Create trans-alkane with the length of nunit.

HaMoleculeCreateSurf (const int num_layers, const HaString name="GOLD")
 Create Several layers of the metal surface.

bool Create2DMolArray (HaMolecule *pMol_ref, const double deltx, const double delty, const int nx, const int ny, const double alpha, const double tilt)
 Create two-dimensional layer of molecules.

void DeleteExtraAtoms ()
 Delete atoms not found in residues templates.

void AddMissingAtoms ()
 Add Missing atoms in the the structure using residue templates.

void AddHydrogens ()
 Add hydrogens.

void AddPolarHydrogens ()
 Add Polar hydrogens involved in hydrogen-bonding.

void AddHydrogensHybrid ()
 Add Hydrogens using atom hybridization information.

bool AddElectrSurf (int add_surf_below_flag, int add_surf_top_flag, int add_atom_top_flag, int add_atom_below_flag)
 Add molecular surface or a single donor/acceptor atom to the structure.

int SetBondDist (HaAtom *aptr1, HaAtom *aptr2, double new_dist)
 Set bond distance between atoms to a new value.

int SetAngle (HaAtom *aptr1, HaAtom *aptr2, HaAtom *aptr3, double ang_new)
 Set Valence angle (in rad).

int SetTorsion (HaAtom *aptr1, HaAtom *aptr2, HaAtom *aptr3, HaAtom *aptr4, double tors_new)
 Set Dihedral angle (in rad).

vector< HaMolecule * > HostMolecules
 Molecules in the molecular set.

HaString solv_name
 Solvent to solvate molecular set.

int solv_buffer_dist
 thickness of the solvent buffer around the solute when the molecules solvated


Molecular Structure Info

int GetNMol () const
 Get the number of Molecules in the molecular set.

int GetNRes () const
 Get the number of Residues in the molecular set.

int GetNChains () const
 Get the number of chains in the molecular set.

int GetNAtoms () const
 Get the total number of atoms in the molecule set.

int GetNBonds () const
 Get the total number of bonds in the molecule set.

int GetSeqNumOfAtom (const HaAtom *aptr) const
 Get a linear index of the atom in the molecular set.

double FindClosestContact (HaAtom *atc1, HaAtom *atc2)
 Find closest Atom in the molecular Set.

HaResidueGetResByRef (const char *res_ref)
 get a residue by reference

HaAtomGetAtomByRef (const char *at_ref)
 get a single atom by reference

bool GetAtomsByRef (const char *at_ref, AtomList &at_set)
 get a group of atoms by reference

HaMoleculeGetMolByName (const char *mol_name)
 Get a moleculae by its name.

bool GetMinMaxCrd (double &MinX_v, double &MinY_v, double &MinZ_v, double &MaxX_v, double &MaxY_v, double &MaxZ_v)
 Get Min and Max Coordinates of the atoms in the Molecular Set.

bool GetMinMaxCrdSelected (double &MinX_v, double &MinY_v, double &MinZ_v, double &MaxX_v, double &MaxY_v, double &MaxZ_v)
 Get Min and Max Coordinates of selected atoms.

bool set_min_max
 flag to indicate that Min and Max coordinates have been set


Selection functions:

void SelectAllAtoms ()
 Select all atoms in the set.

void UnSelectAllAtoms ()
 Unselest all atoms in the set.

void ReverseAtomSelection ()
 Reverse atom selection, Select all unselected atoms and unselect all selected atoms.

void SelectOnly (AtomCollection *atom_coll)
 Select Atoms of the Atom collection and Unselect other atoms.

void SelectZone (int mask)
 Select Atoms with flags satisfying mask.

void SelectZoneExpr (Expr *expr)
 Select Atoms satisfying expression.

void DisplaySelectCount ()
 Print the number of selected atoms.


H-Bonds Manipulation:

int AreHBonded (HaAtom *src, HaAtom *dst) const
 check if atoms are H-Bonded (src - H-donor and dst H-acceptor

bool CalcHBonds (bool recalc=false)
int m_calc_s_hbonds_flag = False
 Flag if to find H-bonds involving S-atoms.


Names of Molecules and Molecular Set

void SetName (const char *new_name)
 Set the name of the molecular set.

const char * GetName ()
 Get the name of the molecular set.

HaString GetUniqueMolName (const HaString suggest_name)
 Modify a suggested name of the molecule to avoid a conflict with the existing names of the molecules in the set.

HaString name
 the name of the molecular set


molecular surfaces manipulations

HaDisplayedSurface * CalcMolSurface ()
 Calculate Molecular Surface.

HaDisplayedSurface * CalcMolSurfDens ()
 Calculate Molecular Surface computing isosurface of density.


pH dependence. pKa and redox-potentials calculations:

void SetStdResPK ()
 Set Standard pKa values for protonation and deprotonation of residues.

void SetStdResPK_G1 ()
 Set Standard pKa values for most activily protonatable residues(HIS,HEM, terminal groups, etc).

void CalcPKsForSelection ()
 Calc PK for residues in the selected part using interaction matricies.

int CalcSCFPK (VecPtr &act_chem_st, HaMat_double &inter_mat)
 Calculate self-consistenly average pKs of the alt states.

void SetAltStatesActive (int set_flag)
 Set Alternative Residue states active (or inactive) for selected residues.

bool SetChargesForPH (double pH_val)
 Set Atomic charges for a certain pH.

bool SetChargesForCurrentPH ()
 Set Atomic charged corresponding to a current pH.

void SetPH (double new_ph)
 Set current pH value in the system.

double GetPH () const
 Get current pH value in the system.

double ph
 Current pH value in the system.


Atomic Parameters (charges. force-field symbols etc):

bool SetStdAtomicParams (const int at_params_type)
 Set atomic parameters according to flag at_params_type.

double CalculatePotential (double x, double y, double z)
bool CalcDipole ()
 Calculate and print charge and dipole of selected atoms of mol set.

bool SetVdwRadii ()
 Set atomic radii to Standard Vdw Radii.

bool SetParseRadii ()
 Set atomic radii to PARSE radii set.

MatPoint_double_map * GetChargeMapByName (const char *map_name)
 Get a atom-charge map by the name.

MatPoint_double_map * CreateChargeMap (const char *map_name)
 Create an atom-charge map with a given name.

int SetChargeMapByCurrentCharges (const char *map_name)
 Set a atom-charge name by the current atomic chagres of the molecular set.

int SetChargesFromChargeMap (MatPoint_double_map *charge_map)
 Set atomic charges from the atom-charge map.

vector< MatPoint_double_map > ChargeMaps
 The vector of atom-charge maps that.


Fragmentation:

HaMolSetGetLastFragment ()
HaMolSetset_fragment_selected (const char *frag_name)
list< HaMolSet * > Fragments

Computational Modules:

HaQCModGetQCMod (const bool create_module=false)
 Get Quantum Chemical module associated with the molecular set.

ETCouplGetETCouplMod (const bool create_module=false)
 Get Electron Transfer computational module associated with the molecular set.

HaGaussianGetGaussMod (const bool create_module=false)
 Get Gaussian qchem package interaction module associated with the molecular set.

HaDaltonGetDaltonMod (const bool create_module=false)
 Get Dalton qchem package interaction module associated with the molecular set.

ElectrostModGetElectrostMod (const bool create_module=false)
 Get Continuum Electrostatic computational module associated with the molecular set.

HaInterMolModGetInterMolMod (const bool create_module=false)
 Get Intermolecular interaction module associated with the molecular set.

HaMolMechModGetMolMechMod (const bool create_module=false)
 Get Molecular Mechanics module associated with the molecular set.

HaScatterMod * GetScatterMod (const bool create_module=false)
 Get the Electron Scattering module associated with the molecular set.

StmMod * GetSTMMod (const bool create_module=false)
 Get the Electron Scattering module associated with the molecular set.

NuclAcidModGetNuclAcidMod (const bool create_module=false)
 Get Nucleic Acid modeling module.

HaCompModGetCompModule (const int mtype, const bool create_module=false)
 Get a computational module of a given type associated with the molecular set.

void ResetETModule ()
 clear ET module associated with the molset

list< HaCompMod * > CompModules
 List of Computational modulles associated with the molecular set.


Molecular Display functions:

virtual int AnnounceGeomChange ()
 Call to update views to reflect changes in the molecular geometry.

void RefreshAllViews (long lHint=0L)
 Refresh Molecular Views associated with the molecular set.

HaMolViewGetActiveMolView ()
 Get Active HaMolView object associated with the MolSet.

bool AddObject3D (Object3D *new_view_object)
 Add a new 3D object to the list.

bool DeleteObject3D (Object3D *pobj)
 Delete 3D object from the list using the pointer.

bool DeleteObject3D (const HaString obj_name)
 Delete 3D object from the list using its name.

void ClearPickedAtoms ()
 Clear Picked Atoms Set.

HaMolViewmset_pview
 A pointer to the Moleculular View object associated with the molecular set.

HaMolSetDoc * pmsetdoc
 A pointer to the MFC Molecular Set Document associated with the molecular set.

list< Object3D * > ViewObjects
 the list of 3D objects

AtomList picked_atoms
StrVec info_str
 vector of string to display on the screen


Periodical Boundary Conditions:

HaString spacegroup
double pbox_x
double pbox_y
double pbox_z
 Unit Cell sizes for periodical boundary conditions (Bohrs).

double pbox_alpha
double pbox_beta
double pbox_gamma
 Unit Cell Parameters for periodical boundary conditions (radians).


Public Types


Friends

class MolSetParDlg

Detailed Description

Class to describe a collection of molecules - Central Class of HARLEM.


Member Function Documentation

double HaMolSet::OverlapMol AtomList fmolatset,
AtomList smolatset
 

Superimpose two molecules containing atom sets fmolatset and smolatset.

Superimpose the two structures such that chosen set of atoms

Parameters:
firstatset atom group of the first molecule
secatset atom group of the second molecule corresponding to firstatset of the first molecule
Returns:
eps(Ang) - atom RMS deviation in superimposed structures

-1.0 on error

double HaMolSet::AlignOverlapMol AtomList atset1,
HaMolecule pMol2,
PtrPtrMap fit = NULL,
HaVec_double p_trans = NULL,
HaMat_double p_rot = NULL
 

Align Sequences and Overlap two molecules containing atom sets fmolatset and smolatset, return RMS of atoms.

Input Parameters: atset1 - list of atoms of the molecule1 that will be superimposed by the corresponding atoms of the molecule 2 Corresponding atoms of two molecules are found using graph matching algorithm finding the best match between two molecules molecules 1 and 2 should have the same number of atoms.

Return: eps - best RMS to fit atset1 by corresponding atoms of molecule 2

Optional parameters: fit - map of atom pointers of two molecules in the best fit trans,rot - translation vector and rotational matrix to superimpose molecule 2 to molecule 1

int HaMolSet::add_molset_copies int  nx,
int  ny,
int  nz
 

add to the molset its copies obtained < using periodical boundary conditions

int HaMolSet::SetBondDist HaAtom aptr1,
HaAtom aptr2,
double  new_dist
 

Set bond distance between atoms to a new value.

Atoms moved are aptr2 and all atoms reachable from aptr2 by a graph of covalent bonds

int HaMolSet::SetAngle HaAtom aptr1,
HaAtom aptr2,
HaAtom aptr3,
double  ang_new
 

Set Valence angle (in rad).

Atoms moved are aptr3 and all atoms reachable from aptr3 by a graph of covalent bonds Also moved atoms conected to aptr2 by 1/2 of ang_new

int HaMolSet::SetTorsion HaAtom aptr1,
HaAtom aptr2,
HaAtom aptr3,
HaAtom aptr4,
double  tors_new
 

Set Dihedral angle (in rad).

Atoms moved are aptr4 and all atoms reachable from aptr4 by a graph of covalent bonds

double HaMolSet::CalculatePotential double  x,
double  y,
double  z
 

calculate electrostatic potential < in a point from atomic point charges and eps=10.0


The documentation for this class was generated from the following files:
Generated on Tue Feb 17 02:03:19 2004 for harlem by doxygen 1.3.6