Class: | Molecule |
Parent: | Object |
The class Molecule is the principal data structure in Molby. It contains the list of atoms, bonds, angles, dihedrals, and impropers. It may also contain optional information such as a unit cell, symmetry operations, multiple frames, electrostatic potentials, quantum chemistry information (basis sets and MO coefficients), MM/MD parameters (see class Parameter), and MM/MD runtime information (see class MDArena).
Molecule objects can be obtained from the documents; examples are the return values of Molecule#current and Molecule[name]. However, not all Molecule objects necessarily have the associated documents. Some methods of Molecule generates a new Molecule object that has no associated document (e.g. Molecule#new, Molecule#dup, Molecule#extract). Such Molecule objects are useful for keeping partial structures until model-building is complete.
Atoms are the most important component in Molecule. For efficiency reasons, the internal representation of atoms is a flat array, not a collection of "Atom" objects. Consequently, there is no "Atom" object in Molby; instead, an atom is represented by the AtomRef object, which "points" to a particular atom via a pointer to Molecule and an index.
The atom index in Molby is 0-based, unlike the 1-based index found in many chemical files. In addition, there is a convenient way to specify an atom via its name and (optionally) the residue name and residue number. Thus, if an atom has a name "CA" and belongs to a residue number 1 named "RES", then the atom can be specified by "CA", "1:CA", "RES:CA", or "RES.1:CA". If the description matches more than two atoms, it specifies the atom with the lowest index. Such description is acceptable in such methods like MolEnumerable#[], Molecule#atom_group, etc.
As described above, the components in Molecule such as atoms, bonds, etc. are not represented by Array objects of Ruby. Nevertheless, it is often convenient if we can treat the collection of these substances as a single Enumerable object. The class MolEnumerable does this job, and allows to access the individual substances in an Array-like manner, e.g. mol.atoms[n] (mol.atoms is a MolEnumerable object).
Many methods of Molecule take a "group" argument, which means a group of atoms. A group is represented by an IntGroup object, which is a collection of non-negative integers.
Many methods of Molecule are described as "undoable". This means, when such methods are invoked for a Molecule that has an associated document, an undo operation is automatically registered to the document.
Molecule[] is equivalent to Molecule.current. Molecule[n] (n is an integer) is equivalent to Molecule.list[n]. Molecule[name] gives the first document (in the order of creation time) that has the given name. If a second argument (k) is given, the k-th document that has the given name is returned. Molecule[regex] gives the first document (in the order of creation time) that has a name matching the regular expression. If a second argument (k) is given, the k-th document that has a name matching the regex is returned.
Calculate the angle defined by three vectors. The result is in degree.
See Also: Molecule#calc_angle (Instance Method)
Calculate the bond length defined by two vectors.
See Also: Molecule#calc_bond (Instance Method)
Calculate the dihedral angle defined by four vectors. The result is in degree.
See Also: Molecule#calc_dihedral (Instance Method)
Get the list of molecules associated to the documents, in the order of creation time of the document. If no document is open, returns an empry array.
Create a new molecule. If any arguments are given, call molload method with the same arguments. The created molecule has no associated document window.
See Also: Molecule#open, which opens the molecule as a document (i.e. with associated window).
Open a molecule from file as a document. If file is not given, an untitled document is created.
See Also: Molecule#new, which creates a new Molecule object but does not open as a document (i.e. no associated window is opened).
Get the list of molecules which are opened as documents, in the order of front-to-back ordering of the associated window. If no document is open, returns an empry array.
Combine two molecules. The residue numbers of the newly added atoms may be renumbered to avoid conflicts. This operation is undoable.
Add angle n1-n2-n3. Returns self. Usually, angles are automatically added when a bond is created, so it is rarely necessary to use this method explicitly. This operation is undoable.
See Also: Molecule#create_bond
Add a new atom. The arguments bond, base1, angle, base2, dihed, and base3 defines the position of the new atom in the Z-matrix style. (Note: angle and dihed should be given in degree, not in radian). If bond/base1 are specified, a new bond is also created between the new atom and base1. If bond/base1 are specified but angle/base2 are not, then the direction of the new bond is assumed as the most distant direction from the existing bonds. Returns the reference to the new atom. This operation is undoable.
See Also: Molecule#create_atom
Add dihedral n1-n2-n3-n4. Returns self. Usually, dihedrals are automatically added when a bond is created, so it is rarely necessary to use this method explicitly. This operation is undoable.
See Also: Molecule#create_bond
Add missing hydrogen (or other atom) according to the given geometry type. Atype is a String, which is one of the following: "td" (tetrahedral), "tr" (trigonal), "py" (pyramidal, like amine nitrogen), "li" (linear). This operation is undoable.
Add dihedral n1-n2-n3-n4. Returns self. Unlike angles and dihedrals, impropers are not automatically added when new bonds are created, so this method is more useful than the angle/dihedral counterpart. This operation is undoable.
Add a new symmetry operation. If no symmetry operation is defined and the given argument is not an identity transform, then an identity transform is added before the given transform is added. Returns the new total number of symmetry operations. This operation is undoable.
Returns a ParameterRef object (of type "angle") representing the MD parameter for the specified angle. If the MD parameters are not initialized yet, tries to initialize them by self.md_arena.prepare(true), which may throw exception.
See Also: Molecule#bond_par, Molecule#dihedral_par, Molecule#improper_par, Molecule#vdw_par
Returns a MolEnumerable object representing the array of angles. An angle n1-n2-n3 is represented [n1, n2, n3], where n1, n2, n3 are the atom indices.
See Also: Molecule#nangles
Assign the specified atoms (as IntGroup) to have the given residue. res can either be an integer, "resname" or "resname.resno". When the residue number is not specified, the residue number of the first atom in the group is used. This operation is undoable.
Specify a group of atoms. If no arguments are given, IntGroup[0..natoms-1] is the result. If arguments are given, then the atoms reprensented by the arguments are added to the group. For a conversion of a string to an atom index, see the description of Molecule#atom_index.
If a block is given, it is evaluated with an AtomRef (not atom index integers) representing each atom, and the atoms are removed from the result if the block returns false.
See Also: Molecule#all
Returns the atom index represented by val. Val can be either a non-negative integer (directly representing the atom index), a negative integer (representing natoms - val), a string of type "resname.resid:name" or "resname:name" or "resid:name" or "name", where resname, resid, name are the residue name, residue id, and atom name, respectively. If val is a string and multiple atoms match the description, the atom with the lowest index is returned.
Returns a MolEnumerable object representing the array of atoms.
See Also: Molecule#natoms
Returns a ParameterRef object (of type "bond") representing the MD parameter for the specified bond. If the MD parameters are not initialized yet, tries to initialize them by self.md_arena.prepare(true), which may throw exception.
See Also: Molecule#angle_par, Molecule#dihedral_par, Molecule#improper_par, Molecule#vdw_par
Returns a MolEnumerable object representing the array of bonds. A bond n1-n2 is represented by an array [n1, n2], where n1 and n2 are the atom index integers.
See Also: Molecule#nbonds
Returns an array of bonds that connect atoms in the group and atoms out of the group. The first atom in the bond always belongs to the group. If no such bonds are present, an empty array is returned.
Calculate the boundary. The return value is an array of two Vector3D objects.
See Also: Molecule#min, Molecule#max
Get the unit cell information in the form of a periodic bounding box. Avec, bvec, cvec, origin are Vector3D objects, and flags is a 3-member array of Integers which define whether the system is periodic along the axis. If no unit cell is defined, nil is returned.
See Also: Molecule#box=, Molecule#cell, Molecule#cell=
Set the unit cell parameters. Avec, bvec, and cvec can be either a Vector3D or a number. If it is a number, the x/y/z axis vector is multiplied with the given number and used as the cell axis vector. Flags, if present, is a 3-member array of Integers defining whether the system is periodic along the axis.
In the second form, an isotropic box with cell-length d is set.
In the third form, the existing unit cell is cleared.
This operation is undoable, in any of the above form.
See Also: Molecule#box, Molecule#cell, Molecule#cell=
Calculate the bond angle defined by the three atoms. The result is in degree.
See Also: Molecule#calc_angle (Class Method)
Calculate the bond length between the two atoms.
See Also: Molecule#calc_bond (Class Method)
Calculate the dihedral angle defined by the four atoms. The result is in degree.
See Also: Molecule#calc_dihedral (Class Method)
Returns the unit cell parameters. If a unit cell is not set, returns nil. Alpha/beta/gamma are in degree.
See Also: Molecule#box, Molecule#box=, Molecule#cell=
Set the unit cell parameters. Alpha/beta/gamma are in degree. If the right-hand value (or the first argument) is nil, then clear the current unit cell. If the second argument is given as non-nil, then the coordinates are transformed so that the cartesian coordinates remain the same. This operation is undoable.
See Also: Molecule#box, Molecule#box=, Molecule#cell
Return the Transform matrix that converts internal coordinates to cartesian coordinates. If the unit cell is not defined, nil is returned.
Calculate the center of mass for the given set of atoms. If the argument group is null, all atoms are considered.
Translate the molecule so that the center of mass of the given group is located at (0, 0, 0). Equivalent to self.translate(self.center_of_mass(group) * -1). This operation is undoable.
Count the (minimum) number of bonds between atoms n1 and n2. If there is no connection between n1 and n2, return -1.
Create a new atom with the specified name (may contain residue information) and position (if position is out of range, the atom is appended at the end). The occupancy of the new atom is 1.0, and other attributes are 0 or null. Returns the reference to the atom. This operation is undoable.
See Also: Molecule#add_atom
Create bond(s) between atoms n1 and n2, n3 and n4, and so on. If the atoms already have other bonds, new angles and dihedrals are automatically created. If a bond is already present for a particular pair of atoms, do nothing for that pair. Returns the number of bonds actually created. This operation is undoable.
Same as Molecule#insert_frames(nil, coordinates).
Calculate the molecular orbital with number mo and create a cube file. In the first form, the cube size is estimated from the atomic coordinates. In the second form, the cube dimension is explicitly given. Returns fname when successful, nil otherwise. If iflag is non-false, then interrupt check is enabled during calculation.
Calculate a default MO grid for cube file generation. Origin is Vector3D; dx, dy, dz are Float; nx, ny, nz are Integer. If the molecule does not contain a basis set information, then returns nil.
Check whether the group is detachable, i.e. the group is bound to the rest of the molecule via only one bond. If it is, then the indices of the atoms belonging to the bond is returned; n1 is the atom belonging to the group, and n2 is the atom not belonging to the group and bound to n1. If the above conditions are not met, nil is returned.
Returns a ParameterRef object (of type "dihedral") representing the MD parameter for the specified dihedral. If the MD parameters are not initialized yet, tries to initialize them by self.md_arena.prepare(true), which may throw exception.
See Also: Molecule#angle_par, Molecule#bond_par, Molecule#improper_par, Molecule#vdw_par
Returns a MolEnumerable object representing the array of dihedrals. A dihedral n1-n2-n3-n4 is represented by an array [n1, n2, n3, n4], where n1, n2, n3, n4 are the atom index integers.
See Also: Molecule#ndihedrals
Returns the full path name of the directory in which the file associated with the molecule is located. If the molecule has no associated file, then returns nil.
See Also: Molecule#path
Combine two molecules. A new bond is created between base1 and base2. Rem1 and rem2 specify the atom (or fragment) to be removed when creating the new bond. If nil is specified for either of them, a dummy atom (which has a name beginning with '#') is looked for, and if none is found then no atom is removed and the new bond is directed so that it is most remote from any of the existing bonds.
Rem1 and rem2 can also be Vector3D objects that specify the direction of the new bond. In this case, no atoms are removed.
If len is specified, then the length of the new bond is set to this value. Otherwise, it is set to 1.5.
If dihed is specified, then the dihedral angle def1-base1-base2-def2 is set to this value (in degree, not radian). If nil is specified for either def1 or def2 (or both), then the atom which is connected to base1 (base2) and has the smallest index is used.
Returns the group of atom indices that have been added. This operation is undoable.
See Also: Molecule#detachable? (for description of detachability), Molecule#dock_formula, Molecule#dock_fragment
Create a fragment from str and replace the group with the generated fragment. This method is invoked when a detachable selection is double-clicked and user enters the formula in the dialog box. This operation is undoable.
See Also: Molecule#dock, Molecule#dock_fragment
Replace the specified group with the given fragment, which is another Molecule object. This operation is undoable.
See Also: Molecule#dock, Molecule#dock_formula
Create a String that represent the atom list. If a group is given, only the atoms in the group will be included.
See Also: Molecule#from_dump
Duplicate a molecule. All entries are deep copied, so that modifying the newly created object does not affect the old object in any sense.
Create a new atom with the same attributes (but no bonding information) with the specified atom. Returns the reference to the new atom. Useful as a convenient version of Molecule#create_atom, with the various atomic attributes duplicated from the reference atom. This operation is undoable.
Execute the block for each atom, with the AtomRef object as the argument. If an atom group is given, only the specified atoms are processed. Otherwise, equivalent to self.atoms.each, except that the return value is self.
Execute the block for each fragment in the molecule, with the IntGroup object representing the fragment as the block argument. No new atoms or bonds should be created or removed during the execution of the block, otherwise the results will be unpredictable (may even cause a crash).
Set the frame number from 0 to nframes-1 and execute the block. The block argument is the frame number. After completion, the original frame number is restored. Roughly equivalent to the following code snippet:
old_frame = self.frame for n in 0..self.nframes-1 self.frame = n yield(n) end self.frame = old_frame
See Also: Molecule#nframes
Get the electrostatic potential info at the given index. The electrostatic potential are read from the output of quantum chemistry softwares. If present, then the return value is [Vector3D, Float] (position and potential). If not present, then returns nil.
See Also: Molecule#loadlog (to load GAMESS output), Molecule#nelpots
Expand the specified part of the molecule by the given symmetry operation. Sym is the index to the symmetries array, and dx/dy/dz are the integers representing the translational operations along the unit cell axes. Returns an IntGroup that represents the added atoms. This operation is undoable.
Extract the atoms represented by the given group, and return as a new Molecule object. If dummy_flag is true, then the atoms that are not selected but are connected to any selected atoms are also included as dummy atoms. (i.e. with element "Du" and names beginning with an underscore).
Find pairs of atoms that are within the limit distance. If group1 and group2 are given, the first and second atom in the pair should belong to group1 and group2, respectively. By default, the atom pairs separated by one to three bonds are excluded. However, if ignore_exclusion is given as non-false, then those pairs are also included.
Find dummy atoms, i.e. the atoms whose element is "Du" and whose name begins with an underscore.
Find the fragment (i.e. a group of connected atoms) including the atom n1 or the atom group. If additional arguments are given, those atoms will not be counted during the search.
Select the specified frame. If successful, returns true, otherwise returns false.
See Also: Molecule#nframes
Read the description of atoms from the String of the dump format. Self must be empty.
See Also: Molecule#dump
Get the atom attribute for the specified atom. Equivalent to self.atoms[index].key. See the methods of class AtomRef for available atrributes.
Copy the coordinates from the specified frame. If group is specified, then only the atoms in the group are modified. If cflag is true, then the cell information is also copied. This operation is undoable.
Create bonds between atoms that are close enough, i.e. the interatomic distance is smaller than the sum of the vdw radii times the argument limit. Returns the number of the newly created bonds. This operation is undoable.
Returns a ParameterRef object (of type "improper") representing the MD parameter for the specified improper torsion. If the MD parameters are not initialized yet, tries to initialize them by self.md_arena.prepare(true), which may throw exception.
See Also: Molecule#angle_par, Molecule#bond_par, Molecule#dihedral_par, Molecule#vdw_par
Returns a MolEnumerable object representing the array of impropers. improper is represented by an array of four atom indices.
See Also: Molecule#nimpropers
Insert new frames at the indices specified by the intGroup. If the first argument is an integer, a single new frame is inserted at that index. If the first argument is nil, a new frame is inserted at the last. If non-nil coordinates is given, it should be an array of arrays of Vector3Ds, and those coordinates are set to the new frame. Otherwise, the current coordinates are copied to the new frame. Returns an IntGroup representing the inserted frames if successful, nil if not.
Invert the molecule with the given center. If group is given, only the atoms in the group are moved. This operation is undoable.
Set the flag whether to draw the model in line mode. If no argument is given, the current flag is returned.
Import the frames from a crd file (from AMBER etc.). The molecule must not be empty, because a crd file does not contain structure information,
Read coordinates and ESP information (if present) from a GAMESS dat file. (TODO: read MO info as well) Return true if successful.
Read coordinates from a dcd file. The molecule must not be empty, because a dcd file does not contain structure information. This method is aware of the endian of the input file, so that you do not need to flip the endian when you transfer a dcd file created on other platform. Return true if successful.
Read coordinates and MO information from a Gaussian fchk file. Return true if successful.
Read a structure from a mbsf (Molby structure format) file. Return true if successful.
Read coordinates from a Gaussian output file. If molecule is empty, then structure is built by guessing bonds from the interatomic distances. Otherwise, only the coordinates are read in. Return true if successful.
Read coordinates from a pdb file. If molecule is empty, then structure is build by use of CONECT instructions. Otherwise, only the coordinates are read in. Return true if successful.
Read a structure from a psf file. molecule must be empty. The psf may be an "extended" version, which also contains coordinates. If pdbfile is given, then atomic coordinates are read from that file. Return true if successful.
Load molecule from a text file describing the cartesian coordinates. The first line may be "natoms a b c alpha beta gamma", which defines crystallographic unit cell; in this case, the coordinates are regarded as crystallographic internal coordinates. (The first "natoms" field is present for historical reasons.)
Return a Vector3D consisting of the largest value of x/y/z coordinates for the atoms in the group. If group is not given, all atoms are considered. Equivalent to self.bounds[1].
Returns the maximum residue number used in the given group. If group is not specified, all atoms are considered. If no atom is present, nil is returned.
Calculate the bond angle. The arguments can either be atom indices, the "residue:name" representation, or Vector3D values. The return value is in degree (not radian).
Calculate the bond length. The arguments can either be atom indices, the "residue:name" representation, or Vector3D values.
Calculate the dihedral angle. The arguments can either be atom indices, the "residue:name" representation, or Vector3D values. The return value is in degree (not radian).
Return a Vector3D consisting of the smallest value of x/y/z coordinates for the atoms in the group. If group is not given, all atoms are considered. Equivalent to self.bounds[0].
Returns the minimum residue number used in the given group. If group is not specified, all atoms are considered. If no atom is present, nil is returned.
Read a structure from the given file by calling the public method "loadXXX" (XXX is the file type given by the extension). If this method fails, then all defined (public) "loadXXX" methods are invoked, and raises an exception if none of them were successful.
Write a structure/coordinate to the given file by calling the public method "saveXXX" (XXX is the file type given by the extension).
Returns the name of the molecule, which is the basename of the filename of the associated document. If the molecule has no associated document, nil is returned.
Shift the partial charges of atoms, so that the sum of the charges becomes the specified value. If group is specified, only the atoms in the group are examined.
Get the number of frames. Note that the minimum number of frames is 1, not 0.
See Also: Molecule#frame, Molecule#frame=
Change the number of residues.
See Also: Molecule#residues, Molecule#nresidues.
Get the number of currently defined symmetry operations.
See Also: Molecule#symmetries
Offset the residue number of the specified atoms. If any of the residue number gets negative, then exception is thrown. This operation is undoable.
Get a Parameter object that represents the local
parameters for this molecule. This method may call self.md_arena.prepare(true)
internally, so that the side effect caused by MDArena#prepare may be observed.
Returns the full path name of the molecule, if it has an associated document. If the molecule has no associated document, then returns nil.
See Also: Molecule#dir, Molecule#name
Returns the time increment (in picoseconds) for one step (defined by dcd format).
See Also: Molecule#loaddcd, Molecule#ps_per_step=
Set the time increment (in picoseconds) for one step (defined by dcd format).
See Also: Molecule#loaddcd, Molecule#ps_per_step
Reflect the molecule by the plane which is perpendicular to axis and including center. axis must not be a zero vector. If group is given, only the atoms in the group are moved. This operation is undoable.
Register an undo operation with the current molecule. When "undo" menu command is selected, a command "script(*args)" is executed. If self has no associated document, do nothing.
The atoms in the group are removed from the molecule. This operation is undoable.
Remove angle n1-n2-n3. Returns self. Usually, angles are automatically removed when any of the constituent bonds are removed, so it is rarely necessary to use this method explicitly. This operation is undoable.
See Also: Molecule#remove_bond
Remove bond(s) between atoms n1 and n2, n3 and n4, and so on. The angles, dihedrals, and impropers including the removed bonds are automatically removed. If a bond for a particular pair of atoms is not present, do nothing for that pair. Returns the number of bonds actually removed. This operation is undoable.
Remove dihedral n1-n2-n3-n4. Returns self. Usually, dihedrals are automatically removed when any of the constituent bonds are removed, so it is rarely necessary to use this method explicitly. This operation is undoable.
See Also: Molecule#remove_bond
Remove the frames at group. If want_coordinates is false (default), returns true if successful and nil otherwise. If want_coordinates is true, an array of arrays of the coordinates in the removed frames is returned.
If the given group corrensponds to all frames, then the current frame is retained. Otherwise, if the current frame is included in the given group, the frame immediately before the group is selected (if no frame is present before the group, the frame with the lowest index is selected).
Remove improper n1-n2-n3-n4. Returns self. Usually, impropers are automatically removed when any of the constituent bonds are removed, so it is rarely necessary to use this method explicitly. This operation is undoable.
See Also: Molecule#remove_bond
Remove the specified number of symmetry operations. The last added ones are removed first. If count is nil, then all symmetry operations are removed. Returns the number of leftover symmetry operations. This operation is undoable.
Change the order of atoms so that the atoms specified in the array argument appear in this order from the top of the molecule. The atoms that are not included in array are placed after these atoms, and these atoms are returned as an intGroup. This operation is undoable.
Returns a MolEnumerable object representing the array of residue names.
See Also: Molecule#nresidues
Rotate the molecule. The axis must not a zero vector. angle is given in degree (not radian). If group is given, only the atoms in the group are moved. This operation is undoable.
Rotate the molecular fragment. The fragment given by "fragment(n2, n1)" is rotated, with the atom n1 as the center and the vector n2->n1 as the axis. Note the order of the arguments; the fragment including n2 is rotated. This operation is undoable.
Move the molecule (or the group if specified) so that c becomes the origin, x points to the x-axis, and y lies in the xy-plane (with the y-coordinate to be positive). X, y, and c can be either a Vector3D, an atom index, or an atom description like "1:CA1". If c is nil, it is equivalent to [0, 0, 0]. This operation is undoable.
Write structure as a psf file. Returns true if successful.
Note: when a document is saved as a psf file from a menu command, a pdb file is created at the same time. However, this is not the case with the script command savepsf. You need to invoke savepdb explicitly, if you want a pdb file.
Search topologically equivalent atoms (within the atom group if given). Returns an array of integers of size natoms, each entry designates the equivalent atom with the lowest index, or -1 if no equivalent atoms are present.
Returns a group of selected MO in the "MO Info" table. If the MO info table is not selected, returns nil. If the MO info table is selected but no MOs are selected, returns an empty IntGroup. The numbers in the table are 1-based.
Set the current selection. The right-hand operand (of class IntGroup) may be nil, in which case all atoms will be unselected. This operation is not undoable. If you need undo, use set_undoable_selection instead.
Set the atom attribute for the specified atom. Equivalent to self.atoms[index].key = value. See the methods of class AtomRef for available atrributes. This operation is undoable.
Set the dihedral angle n1-n2-n3-n4 to the specified value. The bond n2-n3 should be rotatable. The fragment including n3 and n4 are rotated. This operation is undoable.
Set the current selection with undo registration. The right-hand operand (of class IntGroup) may be nil, in which case all atoms are unselected. This operation is undoable.
Set the flag whether to show the dummy atoms. If no argument is given, the current flag is returned.
Set the flag whether to show the thermal ellipsoids. If no argument is given, the current flag is returned.
Set the flag whether to show the expanded atoms. If no argument is given, the current flag is returned.
Set whether to show the graphite plane. The plane is assumed to be on the xy plane. If the argument is positive, it also indicates the number of rings to display for each direction. If the argument is zero, the plane is not displayed. If no argument is given, the current value is returned.
Set the flag whether to show the hydrogen atoms. If no argument is given, the current flag is returned.
Set the number of periodic images to show along each cell axis. If the unit cell is not defined, the values are set but no visual effects are observed.
Set the flag whether to show the unit cell. If no argument is given, the current flag is returned.
Solvate the molecule with the given solvent box. The first argument (sbox) must be a Molecule containing the solvent, which must have a unit cell information. The second argument defines the size of the solvated system. A positive number represents an offset to the bounding box of the solute, and a negative number represents an absolute size. The third argument represents the limit distance to avoid conflict between the solute and solvent. The solvent molecule containing atoms within this limit from the solute is removed.
The return value is the IntGroup representing the added solvent atoms. This operation is undoable.
Get the currently defined symmetry operations. If no symmetry operation is defined, returns an empty array.
Transform the molecule by the given Transform object. If group is given, only the atoms in the group are moved. This operation is undoable.
Translate the molecule by vec. If group is given, only the atoms in the group are moved. This operation is undoable.
Enable or disable screen update. This is effective for automatic update on modification. Explicit call to Molecule#display always updates the screen.
Returns a ParameterRef object (of type "vdw") representing the vdw MD parameter for the specified atom. If the MD parameters are not initialized yet, tries to initialize them by self.md_arena.prepare(true), which may throw exception.
See Also: Molecule#angle_par, Molecule#bond_par, Molecule#dihedral_par, Molecule#improper_par
Move the specified group so that the center of mass of the group is within the unit cell. The offset vector is returned. If no unit cell is defined, exception is raised. This operation is undoable.