A simple X11 molecular viewer.
- Priroda input and output files
.xyzfiles- extended
.xyzfiles (currently the extra columns are ignored) - various quantum-chemical outputs with
cclib, see the Python wrapper page.
See python package page here.
Provides wrapper scripts with a simple installation and
allows to open unsupported file formats with cclib.
# uncomment your OS:#OS=Linux#OS=macOS
wget https://github.com/briling/v/releases/latest/download/v.${OS}.exe --output-document=./v
chmod +x ./vSee build instructions.
GNU/Linux/Cygwin/macOSX11/XQuartz
./v file [file2 ... fileN] [options]
A filename - stands for the standard input (xyz files only).
Show the reference:
./v
Command-line options
vib:%d | force to show geometries (0) / vibrations (1) |
bonds:0 | disable bonds |
bohr:1 | assume input files are in Bohr (default is Å) |
dt:%lf | delay between frames in seconds (default 0.02) |
symtol:%lf | tolerance for symmetry determination in Å (default 0.001) |
bmax:%lf | max. length of a bond to display |
z:%d,%d,%d,%d,%d | show an internal coordinate (1,i,j,0,0 — distance i-j; 2,i,j,k,0 — angle i-j-k; 3,i,j,k,l — torsion i-j-k-l) |
rot:%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf | rotation matrix to start with (default identity matrix) |
frame:%d | frame to start with (default 1) |
font:%s | font (xlfd) |
colors:%s | colorscheme (v (default) or cpk) |
cell:b%lf,%lf,%lf | cuboid size in a.u. (for periodical boundary conditions) |
cell:%lf,%lf,%lf | cuboid size in Å |
cell:b%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf | cell parameters in a.u. |
cell:%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf | cell parameters in Å |
shell:b%lf,%lf | spheres radii in a.u. |
shell:%lf,%lf | spheres radii in Å |
cell:0 | disable PBC from the extended xyz file header |
cell:b%%lf[,%%lf,%%lf[,%%lf,%%lf,%%lf,%%lf,%%lf,%%lf]] | cubic / orthogonal / non-orhogonal cell parameters in a.u. |
cell:%%lf[,%%lf,%%lf[,%%lf,%%lf,%%lf,%%lf,%%lf,%%lf]] | cubic / orthogonal / non-orhogonal cell parameters in Å |
| `shell:b%%lf[,%%lf] | sphere(s) radii in a.u. |
| `shell:%%lf[,%%lf] | sphere(s) radii in Å |
center:%d | origin is geometric center (1, default) / center of mass (2) / as is (0) |
inertia:%d | if rotate molecules wrt axis of inertia (1) or not (0, default) |
gui:%d | gui (default 1) / headless (0) mode |
com:%s | command sequence for gui:0 |
exitcom:%s | command sequence to run on exit (same as for gui:0) |
startcom:%s | command sequence to run on startup |
Keyboard reference
←/↑/→/↓/pgup/pgdn | rotate (slower with ctrl or shift) |
w/a/s/d or ↑/←/↓/→ on numpad | move (slower with ctrl or shift) |
0 | go to the first point |
= | go to the last point |
enter/backspace | next/previous point |
ins | play forwards / stop (vibration mode: animate selected normal mode / stop) |
del | play backwards / stop |
home/end | zoom in/out |
1/2 | scale bond lengths |
3/4 | scale atom sizes |
. | show point group |
n | show/hide atom numbers |
t | show/hide atom types |
l | show/hide bond lengths |
b | show/hide bonds |
tab | read new points |
r | reread file |
x | print molecule (Priroda input + bonds) |
z | print molecule (.xyz) |
p | print molecule (input for an .svg generator) |
u | print the current rotation matrix |
m | save the current frame (.xpm format) |
f | save all frames starting from the current one (vibration mode: save all frames to animate the selected normal mode) |
j | jump to a frame (will be prompted): enter to confirm, esc to cancel |
q / esc | quit |
One can also use the mouse to rotate the molecule and zoom in/out.
If run in the headless mode with gui:0, the symbols from the standard input are processed
as if the corresponding keys were pressed in the gui mode.
Right now, p, x, z, u, and . are available.
Command-line option com:%s overrides the standard input.
These examples are equivalent:
> echo . | ./v mol/mol0001.xyz gui:0
D*h
> ./v mol/mol0001.xyz gui:0 com:.
D*h
> cat mol/mol0001.xyz | ./v - gui:0 com:.
D*h
In the GUI mode, the symbols from the CLI option exitcom: are executed immediately before closing.
For example,
./v mol/mol0001.xyz exitcom:z
automatically prints the last xyz coordinates when the user closes the window.
The symbols from the CLI option startcom: are executed before the main loop.
For example,
./v mol/mol0001.xyz startcom:aaaaaaa
moves the molecule to the left, and
./v mol/mol0001.xyz startcom:.mq
opens the file, computes the point group, save a picture to mol/mol0001.xyz_1.xpm and closes the window.
For other examples, see fig/regenerate.bash for the commands used to generate the figures on this page.
Click to see currently available commands
| CLI regime symbol | GUI keyboard command | GUI (exitcom:/startcom:) | headless (com) | |
|---|---|---|---|---|
w/a/s/d | w/a/s/d | move | + | + (PBC) |
+ / - | home/end | zoom | + | |
> | ins | animate | + | |
3/4 | 3/4 | scale atom sizes | + | |
n/t/l | n/t/l | toggle atom view | + | |
m/f | m/f | saving frame(s) | + | |
q | q | quit | + | |
1/2 | 1/2 | scale bonds | + | + |
b/l | b/l | toggle bond view | + | + |
. | . | point group | + | + |
x,z,p,u | x,z,p,u | printing | + | + |
Note
The size depends on my screen and window layout, you might need to adjust the number of move/zoom in commands or the window size.
Warning
Currently this option is unstable. Please let me know if you encounter any problems.
Two types of boundary conditions are recognized:
- PBC (3D)
- spherical confinement
PBC can be read from the xyz file header
by specifying Lattice="ax ay az bx by bz cx cy cz":
./v mol/MOL_3525.ext.xyz
Currently, only the PBC in all three dimensions are supported. Every molecule can have its own lattice:
./v mol/MOL_3525.ext.xyz mol/Si8.extended.xyz
The lattice can be passed via the command-line, in which case it overrides the one from the file and applies to all the molecules:
./v mol/MOL_3525.xyz cell:8.929542,0,0,4.197206,8.892922,0,0.480945,2.324788,10.016044
For orthogonal/cubic cell:
./v mol/1372_D02.340_1.out bonds:0 cell:20.23,20.23,20.23
./v mol/1372_D02.340_1.out bonds:0 cell:20.23
In Bohr instead of Å:
./v mol/1372_D02.340_1.out bonds:0 cell:b10.7
Finally, to disable the cell from the file:
./v mol/MOL_3525.ext.xyz cell:0
Spherical confinement can be specified from the command-line by the following:
./v mol/mol0001.xyz shell:2 # sphere with r = 2 Å is put around the molecule
./v mol/mol0001.xyz shell:b4 # sphere with r = 2 Bohr
./v mol/mol0001.xyz shell:2,3 # spheres with r = 2 and 3 Å (e.g., soft and hard boundaries)
./v mol/mol0001.xyz shell:b4,5 # spheres with r = 4 and 5 Bohr
mol/C3H6~mCPBA_01x11.qm.out— geometries + vibrations
./v mol/C3H6~mCPBA_01x11.qm.out
./v mol/C3H6~mCPBA_01x11.qm.out vib:0 z:1,23,24,0,0
mol/S8.qm.out— geometries
./v mol/S8.qm.out z:1,1,2,0,0
mol/C10H16.qm.out— vibrations
./v mol/C10H16.qm.out
mol/1372_D02.340_1.out— PBC simulation
./v mol/1372_D02.340_1.out bonds:0 cell:b10.7
mol/mol0001.xyz,mol/mol0002.xyz—.xyzfiles with atomic numbers and atomic symbols
./v mol/mol0001.xyz mol/mol0002.xyz symtol:1e-2
mol/MOL_3525.xyz— organic crystal with non-orthogonal cell
./v mol/MOL_3525.ext.xyz
./v mol/MOL_3525.xyz cell:8.929542,0.0,0.0,4.197206,8.892922,0.0,0.480945,2.324788,10.016044
- Currently two colorschemes are supported (thanks to @iribirii)
v mol/periodic.in bonds:0 colors:v # default
v mol/periodic.in bonds:0 colors:cpk
The figures are generated with
fig/regenerate.bash








