September 13, 2002: Marvin 2.10.5

  • atomMappingVisible is a new applet/bean parameter and property.

  • Bugfixes: Copy and Copy as smiles bugs under Mac. Hotkey bug in swing version of Marvin applets at Java 1.4.

August 12, 2002: Marvin 2.10.4

  • skin applet/bean parameter and new menu option (only in SWING).

  • Improved SD file import (DTn fields).

  • Bugfix: NoSuchMethodError at drawing R-group definition in AWT mode (if Java version is earlier than 1.2).

August 2, 2002: Marvin 2.10.3

  • grinv is a new applet/bean parameter and property.

  • Bugfix: in SDfile import.

July 26, 2002: Marvin 2.10.2

  • Bugfixes:

    • Improved printing layout of MView tables.

    • Improvements in Copy / Paste of reactions.

    • Fixed calculation of molecule bounds.

July 19, 2002: Marvin 2.10.1

  • Molweight calculation.

  • Handling agents of reactions.

  • Bugfix: MolConvert.convert() cleans imported SMILES.

July 5, 2002: Marvin 2.10 (2.9.13)

  • Signed Marvin applets

    • Open, save, cut and paste can be used with signed applets. Examples can be launched by selecting "Signed applets".

  • Marvin applications with Java Web Start

    • Examples for using the MarvinSketch and the MarvinView applications via Internet.

  • New applet/bean parameters

    • valenceErrorVisible applet/bean parameter and property in MarvinSketch. Its value can be also modified from menu: View/Misc/Valence Errors.

    • reactionErrorVisible applet/bean parameter and propert in MarvinSketch. It can also be set from menu: View/Misc/Reaction Errors.

April 23, 2002: Marvin 2.9.12

  • Import/Export

    • CML import and better export.

    • Atom map support for Rxnfiles and reaction SMILES.

    • Atom label font size and double bond width can be set for image export using the atsiz and bondw options.

    • If an error occurs while reading a multi-molecule file (an SDfile for example), the remaining parts of the current molecule can be skipped and the file pointer can be positioned to the next one.

  • Stereochemistry

  • Other new applet/bean parameters and properties

  • Other API changes

    • The MolAtom.SELECTED and VALENCE_ERROR constants are not public any more, they are replaced by the isSelected, setSelected, hasValenceError and setValenceError methods.

    • deprecated methods removed: MolAtom.getAbbrev() and abbrevOf() replaced by getSymbol() and symbolOf()

    • CNode.copy(CNode), MolAtom.copy(CNode) does not copy the edges, CNode.clone() became abstract, MolAtom.clone() does not clone the edges.

  • Fixed: memory leak and printing problems with Java Plugin, atom lists in molfile, bugs during reaction drawing, MarvinView stdin reading, etc.

February 18, 2002: Marvin 2.9.11

  • SMARTS improvements: "a" (aromatic) and "A" (aliphatic) atom primitives recognized even outside of brackets, ":" (aromatic bond) symbol recognized at file format recognition.

  • New importConv option (c) to automatically clean up the molecule.

  • Image export improvements

  • bondWidth applet parameter and setBondWidth bean method.

  • API changes

    • Molecule.toFormat, toBinFormat, toObject, MolExportModule.open and MolExportModule.parseOption throw IllegalArgumentException instead of IOException if bad format string was specified

    • "mag" property renamed to "scale", setMag, getMag, maxMag methods became deprecated (MSketchPane, MSketch, JMSketch, MolPrinter) and replaced by setScale, getScale, maxScale

  • Fixed: delayed printing, image export option parsing, cml:A, etc.

January 29, 2002: Marvin 2.9.10

  • Occassional NullPointerException in MolInputStream.canBeJTF() fixed.

January 28, 2002: Marvin 2.9.9

  • Extra templates can be specified using the xtmpls parameter.

  • New importConv option (H) to add/remove explicit Hydrogen atoms.

  • Common aromatization and explicit Hydrogen addition/removal options for molecule export modules: a, +a, -a, H, +H, -H

  • Incompatibilities:

    • In PdbExport, Hydrogens are added with the common "H" option instead of "h".

    • MolExportModule.getOptions() became protected

December 20, 2001: Marvin 2.9.8

  • Apache Batik 1.1.1 classes needed for SVG export are included with Marvin Beans and Applications

December 19, 2001: Marvin 2.9.7

  • Image export:

  • MViewPane.applyRotationMatrix, applyRotationMatrixes: methods to apply the viewing transformation on the atomic coordinates appearing in the molfile

November 26, 2001: Marvin 2.9.6

  • No autoscale is the default in the sketcher.

November 12, 2001: Marvin 2.9.3

  • MView applet: atom sets can be selected for different coloring, using the setN.M parameters.

  • MolPanel changes:

    • autoScale property was added, it can be accessed via setAutoScale() and getAutoScale() methods.

  • SketchPanel improvements:

    • Autoscale is avaible both in AWT and Swing versions.

    • depending on the autoScale property automatic scaling is done when loading molecules

    • The select all function can be triggered by Ctrl+A.

    • Bug fixes.

October 13, 2001: Marvin 2.9.2

  • New applet and bean methods:

    • getTabScale(i) to query the magnification in a cell

    • getBestTabScale(i) to query the best magnification value for a cell

    • getBestTabScale() to query the smallest best scale value

  • MViewPane bean only:

    • autoTabScale property enables automatic uniform scaling of cells.

September 21, 2001: Marvin 2.9.1

  • MarvinView improvements

    • JavaScript code can be called at image click in the applet using the "js:javascript" syntax.

    • Use tabScale to set the magnification in the molecule cells (instead of automatic scaling), use winScale to set the magnification in the zoom windows (same as the old mag parameter).

    • Many molecules in one cell. Molecules coming from multi-molecule files are merged into one molecule object containing atom sets if MULTISET is specified as the first import option in the mol parameter. To display only the specified sets, use the showSets applet parameter, the MView.setSetVisible() applet method or the MarvinPane.setInvisibleSets bean method.

    • Atom set colors can be changed using the setColor applet parameters, the MView.setSetColor() applet method or the MarvinPane.setSetColor() bean method.

    • "Shapely" and "Group" color schemes (for PDB input).

  • Class library changes

    • MULTISET can also be passed to the MolImporter constructor through the option string

    • The newInstance() method of CGraph, Molecule, etc. became public.

  • PDB

    • Residue symbol is imported for standard residues.

    • Residue sequence number is imported.

    • New export and import options.

    • Export does not hydrogenize the molecule automatically, use the h option for this.

August 20, 2001: Marvin 2.9

  • Rxnfile, RDfile and Reaction SMILES import/export

  • Molecule.getComment() and setComment() methods

  • New MarvinSketch applet parameter and bean methods: reactionSupport, getReactionSupport(), setReactionSupport().

  • MolExportModule API changed: the open method has a return value

June 25, 2001: Marvin 2.8.4

  • Default value of the "format" property is "DEFAULT" instead of null

June 22, 2001: Marvin 2.8.3

  • Beans:

    • List of properties to save/load to/from the initialization file (~/.mview, ~/.msketch) can be set using the setIniProps method.

    • Beans can be used in applets that cannot access to disk files:

      • Ini file is not loaded automatically, only when sketchPane.loadIni() or viewPane.loadIni() is called.

      • Ini file is not saved automatically, only if the value of the saveIniEnabled property is true.

  • The dispopts applet parameter is deprecated, use implicitH, explicitH or navmode instead.

June 18, 2001: Marvin 2.8.1

  • New bean methods and applet parameters for customizing 3D rendering: stickThickness, ballRadius.

  • java.awt.Image objects can be created from molecules using mol.toObject("image");

  • API for import module creation (MolImportIface).

  • Import file format can be specified, by writing "filename(format:)" or "filename(format:options)" in the mol applet parameter, or in the command line of molconvert, msketch or mview.

  • MSketchPane: setMol(File, String) method added, where string can contain the import options, in one of the following forms: "format:options", "format:", "options". The old setMol(File) method removed. MViewPane: setM(int, File, String) added.

  • MolExportModule.sbuf field renamed to stringBuffer.

  • MolAtom.getAbbrev() and abbrevOf are deprecated, use getSymbol() and symbolOf() instead.

June 12, 2001: Marvin 2.8

May 17, 2001: Marvin 2.7.11

  • New rendering style: "ball & stick".

  • Class library, beans:

    • New image export options: rendering style and color scheme.

    • Image export options must be separated by commas in format descriptor strings.

    • Molecule.toBinFormat method to convert molecules into binary formats such as JPEG/PNG/PPM.

    • The type of the rendering, colorScheme, implicitH, downWedge, navmode properties in PropertyChange events is String just like the argument type of their set methods. (Previously, the two types did not match.)

May 4, 2001: Marvin 2.7.9

  • Binary export formats: GZIP, JPEG, PNG, PPM

  • User defined export module creation by overriding chemaxon/marvin/util/MolExportModule.

April 1, 2001: Marvin 2.7.6

  • Text field (T) component for MView tables.

  • cacheMols applet parameter for caching loaded molecules.

  • loadMols applet parameter for preloading molecules.

  • Molecule.getProperty(key) is not case sensitive.

March 27, 2001: Marvin 2.7.5:

Optional spin vector.

March 14, 2001: Marvin 2.7

  • File formats

  • MView applet:

  • MarvinSketch Applet/Bean:

    • New: File/New menu item in the bean. If your application using the bean has a File/New Window menu item, then File/New should be moved to File/New/Clear current, and File/New Window should be moved to File/New/New Window. See the MarvinSketch application source (marvinbeans/examples/sketch/chemaxon/marvin/Sketch.java) for details.

    • "Visual fragment placement" can be disabled: use the simpView parameter or the View/Misc/Object in Hand option if you do not like to see what you are doing.

    • Bond length related changes.

  • Class library:

    • Changes related to atomic coordinates and transformations

      • New: CTransform3D class for general 3D transformations (like in Java3D)

      • Molecule.rot(...), tra(...), magnify(...) removed, use transform(CTransform3D T) instead

      • Atom coordinates became absolute

      • Molecule.getO() and setO() replaced by getLocation() and setLocation()

      • Molecule.getCenter() renamed to calcCenter(), and it calculates center of mass instead of geometrical center

      • New:Molecule.moveTo(location)

    • CGraph.indexOf changes

      • Splitted into two methods, indexOf(CNode atom) and indexOf(CEdge bond)

      • Speed improvement. CNode and CEdge has an index field that contains the object's index in its parent graph. Calling the parent graph's indexOf method returns the value of this field. The index is only searched (in the old way) when the CGraph is not the direct parent.

    • Valence rules

      • New: MolAtom.ionChargeOf(Z)

      • MolAtom.negoxOf(Z, boolean) removed, negOxOf(Z), posOxOf(Z) created instead

    • SDF properties

      • "name" and "informat" are no longer stored in the properties hashtable, they became fields of Molecule

      • Molecule.getProperties() removed

      • Molecule.clearForImport() -> clearForImport(name)

      • New methods in Molecule: getName, setName, getInputFormat, setInputFormat, getPropertyCount(), getPropertyKey(n), getPropertyKeys()

    • Bond length related changes.

  • API simplification: internal bond length of Marvin fixed to be MolBond.CCLENGTH

    • bondlen, rescaling applet/bean parameters, setBondlen, getBondlen, setRescaling, getRescaling methods removed, use MSketch.getMol("mol:b=XXX") instead of <param NAME="bondlen" VALUE="XXX">

    • The bondlen argument of Molecule.clean(dim, bondlen, opts) removed, use clean(dim, opts)

    • MolBond.DEFAULT_LENGTH renamed to MolBond.CCLENGTH

    • MolBond.getDesiredLengthRatio() removed, use the new dimension dependent Molecule.getDesiredLength(bond) method instead

    • MolAtom.covalentRadiusOf(Z) -> covalentRadiusOf(Z, bondOrder)

December 10, 2000: Marvin 2.6

  • The "style" applet parameter renamed to " rendering because of a conflict with a Netscape keyword. The getStyle, setStyle methods of the beans are also renamed to getRendering, setRendering.

  • New rendering style: "Wireframe with Knobs".

  • Atoms can be highlighted in the MView/JMView applets by specifying a selection.

  • All query atoms and extra bond types can be enabled by omitting the queryAtoms, atomStrings, and extraBonds parameters.

  • "Cis or Unspecified" and "Trans or Unspecified" bond types; "ctu" in extraBonds.

  • Cleaning options can be specified using the cleanOpts applet parameter.

  • Optional down wedge bond orientation (MDL or Daylight) using the downWedge parameter.

  • New MView/JMView applet methods:

    • getAtomCount(moleculeIndex) to query the number of atoms in a molecule cell

    • isSelected(moleculeIndex, atomIndex) to query whether the specified atom is selected or not

    • selectAtom(moleculeIndex, atomIndex, select) to (un)select an atom

    • selectAllAtoms(moleculeIndex, select) to (un)select all atoms

  • Real scrolling in MView!

    • The applet is scrollable if visibleRows is less than rows or visibleCols is less than cols.

    • The names of the layouti and parami parameters changed to layout and param for the molecule cells, layoutH and paramH for the optional header.

    • The scroll parameter ceased to exist.

  • Class library:

    • RgMolecule for R-groups

    • Thread safe API for molecules

    • New methods in CGraph: getCtab(), getBtab(), fragments(), findFrag(), getFragIds(), getLock(), getParent(), etc.

    • New methods in CNode: getLigand(i), getEdge(i), getEdgeCount()

    • CNode.findFrag() and CGraph.fuseFrag() removed

    • CGraph.getEdge(i), CGraph.getNode(i), Molecule.getAtomArray() created; CGraph.getEdges(), CGraph.getNodes(), Molecule.getAtoms(), Molecule.getBonds() removed

    • Molecule.reuseAtom(Z, i) and Molecule.endReuse(na) created, MolAtom.reuse(Z, mol, i) removed

    • The two-argument MolAtom.setCharge method removed. Instead of a.setCharge(charge, false), use a.setCharge(charge); a.setFlags(0, MolAtom.FIX_CHARGE);

July 31, 2000: Marvin 2.5

  • SMILES import

  • Class library:

    • CGraph.fuseFrag(CNode a) has only one argument.

    • CGraph.removeNode and removeEdge instead of remove and removeRef; removeEdge leaves edge.node1 and edge.node2 unchanged (they were set to null in removeRef).

    • MolBond.setFlags(int flags, int mask) method introduced.

    • Stereochemistry: double bonds can also be UP/DOWN (not just CIS/TRANS); CIS and TRANS information can also be stored (not just EITHER). The MolBond.getStereo and setStereo methods and the UP, DOWN, EITHER constants ceased to exists, the STEREO1_UP, STEREO1_DOWN, STEREO1_EITHER, STEREO2_CIS, STEREO2_TRANS, STEREO2_EITHER, STEREO_CARE flags introduced instead.

    • MolBond.getTopology/setTopology ceased to exist, the TOPOLOGY_RING, TOPOLOGY_CHAIN flags introduced instead.

June 21, 2000: Marvin 2.4.2

  • Scrolling in the MView and JMView applets. See the visibleRows parameter.

May 22, 2000: Marvin 2.4

  • Structures are colorful by default. Colorization can be disabled by setting colors=mono, both in the sketcher and the viewer.

  • Spacefill rendering can be enabled instead of wireframe by using the style parameter.

  • Atom labels can be hidden with the labels parameter.

  • Up/down and cis/trans either bonds

  • Classes in chemaxon/beans moved to chemaxon/marvin/beans. The MarvinSketch bean is chemaxon.marvin.beans.MSketchPane, the MarvinView bean is chemaxon.marvin.beans.MViewPane.

March 20, 2000: Marvin 2.3.1

The basic applet tag for MSketch and MView is simplified, and also generalized to work with or without Oracle's Java Plugin.

March 4, 2000: Marvin 2.3

  • New file format: PDB (for simple, non-macro molecules)

  • Changes in template handling

    • The four template sets that come with Marvin became default. Templates only have to be specified as applet parameter if you need a different template set.

    • Templates moved to directory chemaxon/marvin/templates/ (from templates/).

    • File extension changed to .t (from .cssdf).
      This change was required because of a Netscape restriction related to the loading of JAR file resources.

    • The JAR files marvin.jar and jmarvin.jar contain chemaxon/marvin/templates/generic.t, so the firewall problem ceased for the generic template set.
      If needed, the additional templates may also be put into the JARs by the user with the JAR utility (part of Oracle's JDK). However, doing this increases the JAR size with a noticable amount.

  • The MolImport module moved into marvin.jar because of the firewall problem.

January 15, 2000: Marvin 2.2

  1. New query bond types: "single or double", "single or aromatic", "double or aromatic", "chain" and "ring".

  2. SMARTS export handles the heteroatom (Q in molfile) type intelligently.

  3. The heteroatom and the any atom types are specified in the queryAtoms parameter. The anyatom parameter became deprecated but is still present for backward compatibility, with slightly changed behavior. Specifying anyatom with any value (empty string also) is equivalent to specifying "any,hetero" in queryAtoms.

  4. Cell selection in MarvinView can be controlled using the selectable parameter.

  5. New methods in MarvinSketch: getBondlen. getMag, getPiece, getRescaling. New method in MarvinView: setSelectedIndex, The setDispopts method ceased to exist. Display options can be set using the dispopts applet parameter only.

  6. In Marvin 2.2 and later, the Java classes come only in packaged forms: marvin.jar and marvin.zip. It means that support is ceased for those archaic Java-compatible browsers that cannot handle the ARCHIVE option in the applet tag (Netscape 2 and MS Explorer 3). Reasons:

    1. Under certain circumstances, some Netscape versions try to load the class files one by one instead of using marvin.jar. The simplest way to keep Netscape from doing so is to remove the class files.

    2. Most of our users don't understand what ARCHIVE is, and don't use it properly. The consequence is a significantly increased download time.
      From now, a missing ARCHIVE option cannot be left unnoticed, because Marvin will simply not run. Much better than turning your user's hair gray.

    3. Marvin is rarely tested in the oldest (and buggiest) browsers.

    If you are absolutely sure that you want your Marvin page work with Netscape 2 and MS Explorer 3 too, you must unpack marvin.zip manually. However, we do not recommend this, because you will probably do something wrong. For example, once you will upgrade Marvin and forget to unpack the new marvin.zip. Mixing two different versions will result in malfunction.

October 4, 1999: Marvin 2.1.5:

Molecules in MarvinView are only editable if the editable applet parameter is set.

September 14, 1999: Marvin 2.1.1

  • getCellCount() method in MarvinView.

  • The anchor parameter in the layout also sets label alignment.

September 2, 1999: Marvin 2.1

  1. CML (XML) export.

  2. The getSelectedIndex() method in MarvinView.

  3. Default value of the rescaling parameter in MarvinSketch is changed to "mag" because generally this value is the most useful.

  4. The MarvinView-only package ceased to exist, the new Edit/Structure function made it irrelevant.

July 20, 1999: Marvin 2.0

  1. Templates in MarvinSketch: From now on templates are stored in SDfiles (.sdf) or compressed SDfiles (.cssdf). The template file can be optionally compressed with GZIP, but the applet will only work in Java 1.1 compatible browsers in that case. The tmplmol, tmplpar, and ntmpls parameters no longer exist and are replaced by the much more easy to use tmpls parameters. The unit rotation angle can be specified as a new Marvin-specific property M MRV PHI in the template molecule files (instead of the tmplpar parameters).

  2. Applet tags changed: Rewrite your applet tags according to the last solution in MarvinSketch Example 1. This applet tag can load the AWT and the Swing applets as well.
    Note that the file &{marvinjar}; is not packaged now (its name caused too many problems), so you must rewrite your applet tags, otherwise the download time with MS Explorer will not be optimal.

  3. New in MarvinSketch: The menubar parameter enables or disables the menu bar in the Swing sketcher.

  4. New in MarvinView: Molecules start rotating in 3D automatically if you set the animate parameter in MarvinView.

  5. New in MarvinView: Border between cells in molecule tables.

  6. Change in MarvinView: From now the colors can be specified in the same way as in MarvinSketch. Molecule background is molbg, normal table background is bgcolor. (Previously, bgcolor was also the molecule background.)

  7. JavaScripter applet ceased to exist.
    Its functionality is moved into a MarvinView module that is automatically loaded at the first js: action.

    In the past, JavaScripter was required because scripting applets are not cached by older browsers (namely Netscape 3). An applet that has the MAYSCRIPT attribute is loaded from the net for each page that contains it. In Netscape 4 and later, there is no such problem. On the other hand, a bug (or feature?) in Netscape 4.6 makes the use of JavaScripter impossible as a separate applet. That's why we merged the two applets now.

  8. New: Three new molecule file formats: "sybyl" (the SybylImport and SybylExport modules), "xyz" (XyzExport), and "pov" (PovExport).

  9. New and changed: The "implicitH" option in the dispopts applet parameter instead of the showH parameter which ceased to exist.

    • "off" -> "implicitH=off"

    • "term" -> "implicitH=heteroterm" (because "term" ceased to exist)

    • "hetero" -> "implicitH=hetero"

    • "heteroterm" -> "implicitH=heteroterm" (default)

    • "all" -> "implicitH=all"

    New features: if you want the explicit H atoms to be invisible, use "explicitH=off" (default: "all").
    If you have 3D molecules, use "dim=3" for MarvinView, to let him know that you want 3D rotation as the default mouse drag action.

January 4, 1999: Marvin 1.3

  1. New: The atomStrings parameter enables the usage of atom aliases and SMARTS strings in the sketcher.

  2. Incompatible change: The setAtoms, setNoatoms, setNobonds methods, and the atoms, noatoms, nobonds applet parameters ceased to exist and replaced by elements, anyatom, queryAtoms, and extraBonds.

  3. New: The new detach parameter makes it possible to detach the sketcher from the web page immediately when the applet is loaded.

  4. Recommended: In molfiles and compressed molfiles written directly in HTML, you should end all the molfile lines with backslash and also a real newline character like here:


    Omitting the real newlines like in "000Wun+V70\iuzV000W60\iuzVGS2W60\K72WGS2W60\", seemed to be safe so far, while the Marvin applets were tested only in Oracle, Netscape, Symantec, and Microsoft JVM's. The reason for discontinuing this practice is that the AppletViewer in Kaffe 1.0b3 has problems if you write more than one molfile lines in one HTML line.

  5. Removed: Backward compatibility with the old style (1.0-1.1) usage of getMol() and getM() removed. It didn't work with MSIE anyway.

November 29, 1998: Marvin 1.2

  1. Incompatible change: MSketch.getMol(x) and MView.getM(n,x).

    In Marvin 1.1.4 and before, x was a boolean variable specifying the format of the generated molfile: MDL mol (false) or compressed mol (true).

    From version 1.2, x is a format descriptor string to ease the introduction of new molecule file formats as Marvin evolves. MDL molfile format is denoted by the string "mol", compressed mol is "csmol", SMILES is "smiles".

  2. New: The preload applet parameter.

    "Extra features" are planned to be available as external modules in future releases of Marvin. External modules are downloaded only when needed. In Marvin 1.2.3, MDL mol, compressed mol and SMILES export are external modules.

    The problem is that older browsers such as Netscape 3, cannot load the external modules when the module is needed by a public method which is called from JavaScript. So if you want your web page containing Marvin to work perfectly with earlier releases of Netscape than 4, then you should preload all the modules which may be needed by JavaScript calls.

    For example, if you are using MSketch.getMol("smiles") on your page, then you should also have the following applet parameter:
    <param NAME="preload" VALUE="SmilesExport">.