Difference between revisions of "File formats/Export"
AngelHerraez (talk | contribs) m (preventing line breaks that may confuse reading the syntax) |
AngelHerraez (talk | contribs) (details of export to PNGJ) |
||
Line 195: | Line 195: | ||
=== Save isosurface === | === Save isosurface === | ||
The pop-up menu entry will svae the last isosurface selected or generated. More flexibility is allowed by using the [{{ScriptingDoc}}#writeobject <code>write isosurface</code>] command. | The pop-up menu entry will svae the last isosurface selected or generated. More flexibility is allowed by using the [{{ScriptingDoc}}#writeobject <code>write isosurface</code>] command. | ||
+ | |||
+ | == Saving Jmol-specific files == | ||
+ | |||
+ | === Special image files PNGJ === | ||
+ | |||
+ | Jmol can export to a PNG file that, in addition of a snapshot of the current molecular rendering, includes all the information of atomic coordinates, rendering style and state. | ||
+ | These files appear as regular image files to any software but, when loaded back in Jmol (or drag-and-dropped) will reproduce the exact state of the 3D molecular model. | ||
+ | |||
+ | |||
+ | |||
+ | ''New feature:'' Allows replacement of PNG data in PNGJ | ||
+ | (available since version 14.31.34) | ||
+ | :<code>write "fileA.png" as pngj;</code> saves a file containing both the image, the model data and the state | ||
+ | :<code>a = load("fileA.png",true);</code> loads the file contents into a (binary) variable | ||
+ | :<code>b = load("fileB.png");</code> loads a regular image file into another (binary) variable | ||
+ | :<code>a._IMAGE_ = b._DATA_;</code> puts the binary data making image "B" into the image section of data from file "A" (replacing the existing image data) | ||
+ | :<code>write var a "fileC.png";</code> saves the new combination stored in variable "a", i.e. molecular data from file "A" and image from file "B", into a new PNGJ file |
Revision as of 16:28, 9 March 2021
Contents
Exporting or saving molecular model files from Jmol
Although Jmol was designed as a viewer, it has now capabilities to save files for the displayed molecular model (or a subset of it).
write
command
Jmol can export the currently selected set of atoms to a file in
- XYZ format
- PDB format
- MOL v2000 format (single model)
- MOL v3000 format (single model)
- SDF v2000 format (single or multiple models)
The last 3 are according to the official format specification from MDL-Accelrys-Symyx.
The syntax (see reference documentation) is like this:
All of the above commands will save the original cooordinates of each atom as they were in the input file.
There is also the choice (only in MOL format) of saving the transformed coordinates as they are in the current state of the model:
write()
function
This function in the Jmol Scripting Language allows to place the output of the write command into a variable, rather than saving to a file. The data can later be loaded using load var a
.
See also show()
below, as an alternative.
First parameter in the function is the format, second if needed is some qualifier, both matching what would be used in the command.
Common examples:
show() chemical
function
The same information that would be exported to a file may be put into a variable using this function. It uses the NCI CACTVS Resolver web service for format conversion, and hence it needs a live internet connection to work.
- Available since Jmol version 14.6.0
- Note: If only a subset of the full model has been selected, only that subset will be included in the exported model. Since the procedure involves a query to the Resolver, and their server tries to interpret it as a full molecule, the result may then not be what you expect. Example:
select _N; show("chemical mol")
returns mol-formatted data for ammonia, no matter which was the original molecule containing several N atoms.
Formats available are:
alc
|
Alchemy (Tripos) | cdxml
|
XML-compliant version of ChemDraw's native file format | cerius
|
Cerius II from Accelrys/MSI |
---|---|---|---|---|---|
charmm
|
CHARMM (Chemistry at HARvard Macromolecular Mechanics) | cif
|
Crystallographic Information File | cml
|
Chemical Markup Language |
ctx
|
Gasteiger group | gjf
|
Gaussian input | gromacs
|
GROMACS |
hyperchem
|
HIV / HIN format from Hyperchem | jme
|
from the JME/JSME Molecular Editor | maestro
|
from Schrödinger |
mol
|
Symyx MDL | mol2
|
Sybyl, Tripos | sybyl2
|
Sybyl, Tripos |
mrv
|
Marvin format, from ChemAxon | pdb
|
from Protein DataBank, but nonstandard | sdf
|
Symyx MDL |
sdf3000
|
Symyx MDL, V3000 | sln
|
SYBYL Line Notation | smiles
|
SMILES string |
xyz
|
the traditional XYZ format |
The syntax is like this:
d = show("chemical xyz") d = show("chemical mol") d = show("chemical hyperchem")
etc.
The result (text string as the value of the variable) may then be displayed, processed, or even may be written to a file using
write var d myFile.hin
. In this way, Jmol is in fact exporting file formats that it cannot export natively, by using the format conversion server at NCI.
These are available:
File > Save > Save a copy of file
File > Save > Save as PNG/JMOL (image+zip)
File > Save > Save JVXL isosurface
File > Export > Export PNG+JMOL image
The 2nd and 4th are equivalent and contain, packed in a single file, a snapshot PNG image, the coordinates file and the state script file.
Save isosurface
The pop-up menu entry will svae the last isosurface selected or generated. More flexibility is allowed by using the write isosurface
command.
Saving Jmol-specific files
Special image files PNGJ
Jmol can export to a PNG file that, in addition of a snapshot of the current molecular rendering, includes all the information of atomic coordinates, rendering style and state. These files appear as regular image files to any software but, when loaded back in Jmol (or drag-and-dropped) will reproduce the exact state of the 3D molecular model.
New feature: Allows replacement of PNG data in PNGJ (available since version 14.31.34)
write "fileA.png" as pngj;
saves a file containing both the image, the model data and the statea = load("fileA.png",true);
loads the file contents into a (binary) variableb = load("fileB.png");
loads a regular image file into another (binary) variablea._IMAGE_ = b._DATA_;
puts the binary data making image "B" into the image section of data from file "A" (replacing the existing image data)write var a "fileC.png";
saves the new combination stored in variable "a", i.e. molecular data from file "A" and image from file "B", into a new PNGJ file