Package chemaxon.marvin.calculations
Class MSAPlugin
- java.lang.Object
-
- chemaxon.marvin.plugin.CalculatorPlugin
-
- chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
-
- chemaxon.marvin.calculations.MSAPlugin
-
- All Implemented Interfaces:
chemaxon.license.Licensable
@PublicAPI public class MSAPlugin extends MajorMicrospeciesAccessorPlugin
Plugin class for molecular surface area calculation. Both the incremental values for atoms and the overal surface area for the molecule can be calculated by this plugin.Reference:
- Ferrara, P,. Apostolakis J., Caflisch A., Proteins 2002, 46, 24-33
API usage example:
// read input molecule MolImporter mi = new MolImporter("test.mol"); Molecule mol = mi.read(); mi.close(); // create plugin MSAPlugin plugin = new MSAPlugin(); // optional: take major microspecies at pH=7.4 plugin.setpH(7.4); // set surface area type (default: VAN_DER_WAALS) plugin.setSurfaceAreaType(SOLVENT); // set target molecule plugin.setMolecule(mol); // run the calculation plugin.run(); // get result double area = plugin.getSurfaceArea(); // print result System.out.println("Solvent accessible surface area (pH=7.4): "+area);
For concurrent plugin example applications using ChemAxon's concurrent framework, refer to the Concurrent plugin examples.
- Since:
- Marvin 4.1
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class chemaxon.marvin.plugin.CalculatorPlugin
CalculatorPlugin.HydrogenData
-
-
Field Summary
Fields Modifier and Type Field Description static int
SOLVENT
Surface area type: 3D solvent accessible surface area.static int
VAN_DER_WAALS
Surface area type: 3D van der Waals surface area.-
Fields inherited from class chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
ionizer
-
Fields inherited from class chemaxon.marvin.plugin.CalculatorPlugin
ATOM, BLUE, CALCRGB_OFF, COVALENT_HYDRATION_ERROR_REMARK, CRITICAL_ERROR_MSG, EPSILON, explicitHydrogens, INCORRECT_AROMATIC_NITROGEN_REMARK, INSTABLE_TAUTOMERIC_FORM_REMARK, KEEP_HYDROGENS, keepHydrogens, licenseEnvironment, MOLECULE, MOLECULES, NAN, PLUGIN_CLASS_KEY, PLUGIN_DIR, RED, TRUE
-
-
Constructor Summary
Constructors Constructor Description MSAPlugin()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
checkMolecule(Molecule mol)
Checks the input molecule.Molecule
get3DMolecule()
Returns the 3D molecule used in 3D surface area calculation.double
getASA()
Returns water accessible surface area calculated using a radius of 1.4 A for the water molecule.double
getASAHydrophobic()
Returns water accessible surface area of all hydrophobic (|qi|<0.125) atoms.double
getASANegative()
Returns water accessible surface area of all atoms with negative partial charge (strictly less than 0).double
getASAPlus()
Returns water accessible surface area of all atoms with positive partial charge (strictly greater than 0).double
getASAPolar()
Returns water accessible surface area of all polar (|qi|>=0.125) atoms.double
getAtomicSurfaceAreaIncrement(int index)
Returns the 3D surface area increments.protected Molecule
getDisplayMolecule()
Returns the molecule object to be used for GUI display.String
getErrorMessage()
Returns the calculation error information message ifrun()
returnedfalse
(calculation error).String
getProductName()
Returns the product identifier of the plugin as given byLicenseManager
.Object
getResult(Object type, int index)
Returns the result item for the specified key and index.String
getResultAsString(Object type, int index, Object result)
Returns the specified result in String format.int
getResultCount(Object type)
Returns the number of result items for the given result key.int
getResultDomain(Object type)
Returns the calculation domainCalculatorPlugin.MOLECULE
orCalculatorPlugin.MOLECULE
in case of increments .Molecule
getResultMolecule()
Returns the result molecule for display.Object[]
getResultTypes()
Returns the result types.double
getSurfaceArea()
Returns the surface area, calculation type is previously set insetSurfaceAreaType(int)
.String
getTypeString(Object type)
Returns a string representation of the given type.double
getVDWSA()
Returns van der Waals surface area.boolean
isLicensed()
Returnstrue
if the plugin is licensed.boolean
isMultiThreadedRunEnabled()
For internal use only.boolean
run()
Runs the surface area calculation.protected void
setInputMolecule(Molecule mol)
Sets the input molecule.void
setParameters(Properties params)
Sets the input parameters for the plugin.void
setSolventRadius(double r)
Sets solvent radius.void
setSurfaceAreaType(int saType)
Sets surface area calculation type:VAN_DER_WAALS
orSOLVENT
.-
Methods inherited from class chemaxon.marvin.calculations.MajorMicrospeciesAccessorPlugin
createModifiedInputMolecule, getIonizerErrorMessage, getpH, setpH, standardize
-
Methods inherited from class chemaxon.marvin.plugin.CalculatorPlugin
arrangeHydrogenIncerments, canRepeat, checkLicense, checkType, containsCoordinateBond, containsMulticenterSgroup, containsPseudoAtom, containsSRUSgroup, create, createStandardizedMolecule, createStandardizedMolecule, dehydrogenize, format, format, format, format, getAtomCount, getAtomIndex, getAtomIndexMap, getCalcMolecule, getDocument, getDoublePrecision, getExplicitHydrogenData, getInputMolDim, getMainMolecule, getOriginalMolecule, getPluginResource, getQueryMoleculeErrorMessage, getRemark, getResult, getResult, getResult, getResultAsRGB, getResultAsRGB, getResultAsString, getResultCount, getResultDomain, getResultMessage, getResultMolecules, getResultsAsRGB, getResultsAsRGB, getResultsAsString, getResultsAsString, getResultSource, getWarningMessage, handlesMultiFragmentMolecules, isInputMoleculeAromatized, isMsCalc, isNegligibleResult, isOK, isRgrouped, loadClass, readAttribute, removeWhitespace, restoreExplicitHydrogens, setAtomIndexMap, setDoublePrecision, setDoublePrecision, setDoublePrecision, setKeepHydrogens, setLicenseEnvironment, setMolecule, setMolecule, setMolecule, setMolecule, setProgressMonitor, standardizeIonicGroups, standardizeNeutralGroups
-
-
-
-
Field Detail
-
VAN_DER_WAALS
public static final int VAN_DER_WAALS
Surface area type: 3D van der Waals surface area.- See Also:
- Constant Field Values
-
SOLVENT
public static final int SOLVENT
Surface area type: 3D solvent accessible surface area.- See Also:
- Constant Field Values
-
-
Method Detail
-
isLicensed
public boolean isLicensed()
Returnstrue
if the plugin is licensed. The license checking is based on the product name, returned bygetProductName()
.- Specified by:
isLicensed
in interfacechemaxon.license.Licensable
- Overrides:
isLicensed
in classMajorMicrospeciesAccessorPlugin
- Returns:
true
if the plugin is licensed
-
getProductName
public String getProductName()
Returns the product identifier of the plugin as given byLicenseManager
.- Specified by:
getProductName
in classCalculatorPlugin
- Returns:
- The identifier
LicenseManager.GEOMETRY_PLUGIN_GROUP
-
setParameters
public void setParameters(Properties params) throws PluginException
Sets the input parameters for the plugin. MSA parameters and value ranges:- precision: 0-8 or inf (number of displayed fractional digits, inf for unrounded value)
- type: "vanderwaals", "solvent" (default: "vanderwaals")
- increments: "true" if surface increments should be returned (for 3D surface ("vanderwaals", "solvent") only)
- pH: major microspecies on given pH is taken as input molecule if omitted then the input molecule is taken as it is
- Overrides:
setParameters
in classMajorMicrospeciesAccessorPlugin
- Parameters:
params
- is the parameter table- Throws:
PluginException
- on error
-
setSurfaceAreaType
public void setSurfaceAreaType(int saType)
Sets surface area calculation type:VAN_DER_WAALS
orSOLVENT
. The surface area is returned bygetSurfaceArea()
. The atomic increments and the 3D molecule can also be enquired bygetAtomicSurfaceAreaIncrement(int)
andget3DMolecule()
. Default:VAN_DER_WAALS
.- Parameters:
saType
- isVAN_DER_WAALS
orSOLVENT
-
checkMolecule
public void checkMolecule(Molecule mol) throws PluginException
Checks the input molecule. Throws exception if the molecule isRxnMolecule
, if the molecule contains R-groups or if the molecule consists of more than one fragments.- Overrides:
checkMolecule
in classMajorMicrospeciesAccessorPlugin
- Parameters:
mol
- is the input molecule- Throws:
PluginException
- with error message for the user if the molecule is refused
-
setInputMolecule
protected void setInputMolecule(Molecule mol) throws PluginException
Sets the input molecule.- Specified by:
setInputMolecule
in classCalculatorPlugin
- Parameters:
mol
- is the (standardized) input molecule- Throws:
PluginException
- on error
-
run
public boolean run() throws PluginException
Runs the surface area calculation.- Specified by:
run
in classCalculatorPlugin
- Returns:
- true if the calculation was successful, false on calculation problems
- Throws:
PluginException
- on error- See Also:
CalculatorPlugin.getErrorMessage()
-
getErrorMessage
public String getErrorMessage()
Returns the calculation error information message ifrun()
returnedfalse
(calculation error). This implementation returns the empty string.- Overrides:
getErrorMessage
in classMajorMicrospeciesAccessorPlugin
- Returns:
- the calculation error information message
-
getResultTypes
public Object[] getResultTypes()
Returns the result types. Possible result types: "vanderwaals", "solvent", "increments".- Overrides:
getResultTypes
in classCalculatorPlugin
- Returns:
- the result types
-
getResultDomain
public int getResultDomain(Object type)
Returns the calculation domainCalculatorPlugin.MOLECULE
orCalculatorPlugin.MOLECULE
in case of increments .- Overrides:
getResultDomain
in classCalculatorPlugin
- Parameters:
type
- is the result type- Returns:
CalculatorPlugin.MOLECULE
- See Also:
getResultTypes()
-
getResultCount
public int getResultCount(Object type)
Returns the number of result items for the given result key. TPSA returns1
for surface area, the atom count for increments.- Overrides:
getResultCount
in classCalculatorPlugin
- Parameters:
type
- is the result type- Returns:
- the number of result items
- See Also:
getResultTypes()
-
setSolventRadius
public void setSolventRadius(double r)
Sets solvent radius. Default: 1.4 Angstrom.
-
getSurfaceArea
public double getSurfaceArea()
Returns the surface area, calculation type is previously set insetSurfaceAreaType(int)
. Default:VAN_DER_WAALS
.- Returns:
- the surface area
-
getVDWSA
public double getVDWSA()
Returns van der Waals surface area. Calculation type must be set toVAN_DER_WAALS
usingsetSurfaceAreaType(int)
, and the alculation should be run beforehand byrun()
- Returns:
- van der Waals surface area
- Since:
- Marvin 5.0
-
getASA
public double getASA()
Returns water accessible surface area calculated using a radius of 1.4 A for the water molecule. Calculation type must be set toSOLVENT
usingsetSurfaceAreaType(int)
, and the calculation should be run beforehand byrun()
- Returns:
- water accessible surface area
- Since:
- Marvin 5.0
-
getASAPlus
public double getASAPlus()
Returns water accessible surface area of all atoms with positive partial charge (strictly greater than 0). Calculation type must be set toSOLVENT
usingsetSurfaceAreaType(int)
, and the calculation should be run beforehand byrun()
- Returns:
- water accessible surface area of all atoms with positive partial charge
- Since:
- Marvin 5.0
-
getASANegative
public double getASANegative()
Returns water accessible surface area of all atoms with negative partial charge (strictly less than 0). Calculation type must be set toSOLVENT
usingsetSurfaceAreaType(int)
, and the calculation should be run beforehand byrun()
- Returns:
- water accessible surface area of all atoms with negative partial charge
- Since:
- Marvin 5.0
-
getASAHydrophobic
public double getASAHydrophobic()
Returns water accessible surface area of all hydrophobic (|qi|<0.125) atoms. Calculation type must be set toSOLVENT
usingsetSurfaceAreaType(int)
, and the calculation should be run beforehand byrun()
- Returns:
- water accessible surface area of all hydrophobic atoms
- Since:
- Marvin 5.0
-
getASAPolar
public double getASAPolar()
Returns water accessible surface area of all polar (|qi|>=0.125) atoms. Calculation type must be set toSOLVENT
usingsetSurfaceAreaType(int)
, and the calculation should be run beforehand byrun()
- Returns:
- water accessible surface area of all polar atoms
- Since:
- Marvin 5.0
-
getAtomicSurfaceAreaIncrement
public double getAtomicSurfaceAreaIncrement(int index)
Returns the 3D surface area increments. Calculated only if surface area type is set toSOLVENT
orVAN_DER_WAALS
insetSurfaceAreaType(int)
.- Parameters:
index
- is the atom index- Returns:
- the surface area increment for the specified atom index
-
get3DMolecule
public Molecule get3DMolecule()
Returns the 3D molecule used in 3D surface area calculation. Can be called only if surface area type is set toSOLVENT
orVAN_DER_WAALS
insetSurfaceAreaType(int)
.- Returns:
- the 3D molecule used in 3D surface area calculation
-
getResult
public Object getResult(Object type, int index) throws PluginException
Returns the result item for the specified key and index.- Overrides:
getResult
in classCalculatorPlugin
- Parameters:
type
- is the result typeindex
- is the result index- Returns:
- the result item for the specified key and index
- Throws:
PluginException
- if the result cannot be returned- See Also:
getResultTypes()
-
getResultAsString
public String getResultAsString(Object type, int index, Object result) throws PluginException
Returns the specified result in String format.- Overrides:
getResultAsString
in classCalculatorPlugin
- Parameters:
type
- is the result typeindex
- is the result indexresult
- is the result item- Returns:
- the specified result in String format
- Throws:
PluginException
- if an invalid result item is given
-
getDisplayMolecule
protected Molecule getDisplayMolecule()
Returns the molecule object to be used for GUI display. This is the 3D molecule returned byget3DMolecule()
.- Overrides:
getDisplayMolecule
in classCalculatorPlugin
- Returns:
- the molecule object to be used for GUI display
-
getTypeString
public String getTypeString(Object type)
Returns a string representation of the given type.- Overrides:
getTypeString
in classCalculatorPlugin
- Parameters:
type
- is the type object- Returns:
- the type string
-
getResultMolecule
public Molecule getResultMolecule() throws PluginException
Returns the result molecule for display. Atomic results are stored in atom extra labels (MolAtom.getExtraLabel()
). Molecular results are stored in molecule properties with keys being the result types (Molecule.getProperty(String)
).- Overrides:
getResultMolecule
in classCalculatorPlugin
- Returns:
- the result molecule
- Throws:
PluginException
- on error- Since:
- Marvin 4.0
-
isMultiThreadedRunEnabled
public boolean isMultiThreadedRunEnabled()
For internal use only.- Overrides:
isMultiThreadedRunEnabled
in classCalculatorPlugin
- Returns:
true
if multi-threaded run is enabled
-
-