import java.io.IOException;
import chemaxon.marvin.calculations.MajorMicrospeciesPlugin;
import chemaxon.marvin.calculations.TPSAPlugin;
import chemaxon.marvin.calculations.logDPlugin;
import chemaxon.marvin.calculations.IUPACNamingPlugin;
import chemaxon.marvin.plugin.PluginException;
import chemaxon.struc.Molecule;
import chemaxon.formats.MolExporter;
import chemaxon.formats.MolImporter;
<p>
<pre></pre>
http://www.chemaxon.com/marvin/examples/plugin/index.html
@version
@since
@author
public class PluginExample {
public static void main(String[] args) {
try {
MajorMicrospeciesPlugin mmsPlugin = new MajorMicrospeciesPlugin();
TPSAPlugin tpsaPlugin = new TPSAPlugin();
logDPlugin logDPlugin = new logDPlugin();
IUPACNamingPlugin iupacNamingPlugin = new IUPACNamingPlugin();
mmsPlugin.setpH(7.4);
tpsaPlugin.setpH(7.4);
logDPlugin.setCloridIonConcentration(0.15);
logDPlugin.setNaKIonConcentration(0.15);
logDPlugin.setpHLower(5.4);
logDPlugin.setpHUpper(9.4);
logDPlugin.setpHStep(2.0);
MolExporter exporter = new MolExporter(System.out, "sdf");
MolImporter importer = new MolImporter(args[0]);
Molecule mol;
while ((mol = importer.read()) != null) {
mmsPlugin.setMolecule(mol);
tpsaPlugin.setMolecule(mol);
logDPlugin.setMolecule(mol);
mmsPlugin.run();
tpsaPlugin.run();
logDPlugin.run();
Molecule majorms = mmsPlugin.getMajorMicrospecies();
double surfaceArea = tpsaPlugin.getSurfaceArea();
double[] pHs = logDPlugin.getpHs();
double[] logDs = logDPlugin.getlogDs();
iupacNamingPlugin.setMolecule(majorms);
iupacNamingPlugin.run();
String name = iupacNamingPlugin.getPreferredIUPACName();
String logDresult = "";
for (int i = 0; i < pHs.length; i++) {
double pH = pHs[i];
double logD = logDs[i];
logD = Math.rint(logD * 100)/100;
logDresult += ("[" + pH + "]:" + logD + " ");
}
majorms.setProperty("NAME", name);
majorms.setProperty("TPSA at pH 7.4",
Double.valueOf(surfaceArea).toString());
majorms.setProperty("logD ([pH]:value)", logDresult);
exporter.write(majorms);
}
importer.close();
exporter.close();
} catch (IOException e) {
System.err.println("I/O error has occurred.");
e.printStackTrace();
} catch (PluginException e) {
System.err.println("Plugin processing or calculation error.");
e.printStackTrace();
}
}
}