Molecule export is the operation when Molecule objects are converted to targets in various formats.
When exporting structures via ChemAxon tools, we will refer to different target of the data to be written:
Structure file where location is given with absolute or relative path
Stream output
String representation of the molecule in various formats
Binary representation of the molecule in various formats
The most frequently used API for molecule export is defined in chemaxon.formats.MolExporter. MolExporter has lots of utility functions.
Exporting one molecule to String:
Molecule molecule = buildSimpleMolecule();
System.out.println("Water molecule in mrv: " );
System.out.println( MolExporter.exportToFormat(molecule, "mrv:P"));
System.out.println("Water molecule in smiles: ");
System.out.println(MolExporter.exportToFormat(molecule, "smiles"));
RgMolecule rgMol = buildRgMolecule();
System.out.println("Molecule with R-groups in mrv: ");
System.out.println(MolExporter.exportToFormat(rgMol, "mrv:P"));
System.out.println("Molecule with R-groups in smiles: ");
System.out.println(MolExporter.exportToFormat(rgMol, "smiles"));
Please note that some features, for example R-groups cannot be exported to all formats. Here the SMILES export for R-groups throws an exception because the SMILES format doesn't support R-groups!
For a complete source code, please see ExportingMolecules.java.
Writing more molecules into one target is also possible:
MolExporter exporter = new MolExporter(outputStream, "cml");
Molecule fragments[] = molecule.findFrags(Molecule.class, Molecule.FRAG_BASIC);
for (Molecule fragment : fragments ){
exporter.write(fragment);
}
exporter.close();
For a complete source code, please see AppendMolecules.java.
Additional options of MolExporter allow to refine behavior further. Options can be general or dependent on file formats. Options can be set in the constructor MolExporter(InputStream is, String opts)
or during import with static method MolExporter.exportToFormat
. The most important option is the file format option which specifies the expected file format. General or file format dependent options are separated by a colon from the file format option and by a comma from each other. In the code example below the molecule is exported without the explicit hydrogens with the general -H
option. This is a general export option and can be applied in case of any file format. File format option is mol
for MDL MOL file format and file format specific option is V3
to export the file in extended MOL format.
try {
MolExporter exporter = new MolExporter("outputMolecule.mol", "mol:V3,-H");
exporter.write(molecule);
exporter.close();
} catch (MolFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
For a complete source code, please see ImportExportOptions.java.