ChemfilesViewer
Documentation for ChemfilesViewer.
About
A julia library to visualize chemical molecules and other structures in the Chemfiles format.
Usage
using ChemfilesViewer
# read molecule using Chemfiles
using Chemfiles
trajectory = Trajectory("mol.sdf")
mol = read(trajectory)
# render molecule
render_molecule(mol)
# render another molecule in the same window
render_molecule!(mol)
# save reference to last used output
viewer_id = get_current_chemviewer_id()
# change properties
d = generate_dict_molecule(mol)
d["atoms"][1]["color"] = "#f00000"
d["atoms"][1]["label"] = "Important atom"
d["atoms"][1]["radius"] = 1.0
render_dict_molecule(d, chemviewer_id=viewer_id)
# add labels
d["labels"] = [
Dict(
"label" => "porphyrin",
"location" => [0,0,2],
"color" => "#600000"
),
Dict(
"label" => "pyrrole",
"location" => [-0.6, 3.2, 0],
"style" => "font-size:80%;opacity:0.5;"
)
]
render_dict_molecule!(d, options=Dict("showLabels" => true))
# change view
set_camera_position!("x", "-")
set_options!(Dict("drawingType" => "wireframe"))
set_camera_position!("c", "+")
set_options!(Dict("drawingType" => "ball and stick"))
# change style
set_options!(Dict("styles" => Dict(
"H" => Dict("color" => "#c0c0c0", "radius" => 0.4),
"N" => Dict("color" => "#241571"),
"bond" => Dict("color" => "#ffffff", "radius" => 0.3)
)))
# clar labels (atom-labels are kept, though)
clear_labels!()
# add label
add_label!(Dict(
"label" => "some other text",
"location" => [2,5,5],
"style" => "font-weight:bold;color:blue;font-size:3em;"
))
# save image
save_image("test.png")
# save labels (this is somewhat experimental)
save_image_labels("test_labels.png")
# save the overlay of the render and the labels
save_overlay("test.png", "test_labels.png", "test_both.png")
Use mouse to rotate, zoom and pan. Keyboard shortcuts x
, y
, z
set the view along the x, y and z axis. Analogously, a
, b
, c
set the view along the unit cell vectors. Uppercase letters (X
, Y
, Z
, A
, B
, C
) set the opposite view direction.
A more detailed description can be found in the Reference