Fixes#102#351
Migrating support from Incentive for the following:
- Nucleic Acid builder in the Builder panel (Jarrett Johnson @JarrettSJohnson)
- `fnab` command to build nucleic acid chains by sequence (Jarrett Johnson @JarrettSJohnson)
- Improvements to nucleic acid building from native structures (Thomas Stewart @TstewDev)
- highlight attachment points for improved usability (Thomas Holder @speleo3)
Co-authored-by: Jarrett Johnson <jarrett.johnson@schrodinger.com>
Co-authored-by: Thomas Stewart <thomas.stewart@schrodinger.com>
Co-authored-by: Thomas Holder <thomas@thomas-holder.de>
No nice API available yet. Pick event can be captured like this:
>>> cmd.button("single_left", "none", "clik")
>>> cmd.set_key("F1", lambda: print(_cmd.get_click_string(cmd._COb)))
(press "F1" after a pick)
- Add pick colors to CGO demo (for testing/demo)
Porting the essential parts of EPAM System's "openvr" branch to the
master branch.
Original authors:
Natalia Smirnova, EPAM Systems, Inc.
Pavel Smirnov, EPAM Systems, Inc.
Original fork:
https://github.com/epam/pymol-open-source/tree/openvr
Adjustments:
- Make feature optional with "--openvr" compile option
- Python 3 support
- Remove C++11 workarounds
- Exclude build system changes
Co-authored-by: Natalia Smirnova <Natalia_Smirnova@epam.com>
Co-authored-by: Pavel Smirnov <pavel_smirnov1@epam.com>
* Python API: New "auto library mode". Automatically start a
non-GUI PyMOL instance if the pymol.cmd API is used without
running pymol.launch() first
* pdb_echo_tags for mmCIF and MMTF
* command parser: improve exception handling
* fix some PSE export memory leaks
* pymol2.cmd2: eliminate (non-weak) circular references
* movie making: reinterpolate after add_nutate/add_roll etc.
* support "module:callable" in loadfunctions/safefunctions
* yellow state indicator for discrete objects
* mpng modal draw improvements
* experimental MMTF load support
* map export in CCP4 format
* SDF V3000 import/export support
* refactor molecular file formats export: Unified handling of PDB, PQR, mmCIF, MOL2, SDF, XYZ, MAE
* PLY geometry import (as CGO)
* new command: unset_deep
* new setting: cartoon_all_alt: Create cartoon for every alt code
* stick_h_scale: default=1.0 (was: 0.4) but remove dependency on negative stick_radius
* auto_show_classified: Visualize small (< 50 atoms) polymer classified molecules like organic
* bymol selection operator: ignore zero-order bonds
* menu: isomesh/surface negative color
* improve alignment of residues with unknown resn (e.g. ligands):
give a match score of 5 to perfect matches of unknown residue codes.
Previously, those got match score -1.
* remove broken and obsolete "PMO" file support
* use "label_digits" setting with "label" command
* do not resize window when loading a session file
* fix ignored SCALE w/ identity rotation (e.g. 1WAP)
* fix "scene auto, clear" (Scene > Delete)
* new setting: pick_shading: do flat shading for programmable image color analysis
* experimental cmd.raw_image_callback: post cmd.draw() callback
* mmCIF _atom_sites.fract_transf support (SCALEn equivalent)
* Complete port of scenes to C++
* warn user if setting a setting on the wrong level
* cmd.extendaa: shortcut for cmd.extend with argument auto-completion
* reduced memory footprint of AtomInfoType
* expose "reps" to iterate/alter
* expose "protons" to iterate/alter
* adaptive cartoon quality and sampling, depending on number of atoms
* fix ring center color with cartoon_ring_color=default
* make SelectorGetTmp strictly molecular, fixes for example "dss" with group names
* fix "copy" can cause crash
* fix "custom" selection operator
* consider spec_count in shaders
* don't invalidate shaders for lighting settings
* don't disable shaders for all Intel chips
* don't touch sphere_mode when disabling shaders
* map_new buffer == -1 -> gaussian_resolution
* fix all_states picking
* remove cylinder_shader_ff_workaround and cylinders_shader_filter_faces
* remove unused gl_ambient setting
* fix Tcl/Tk menu settings logging
* fix: grid mode scales down label size incorrectly
* fix: no animate argument for cmd.origin
* fix side_chain_helper for hetatm polymer atoms
* fix .mmd export
* refactor many function to take "const" pointer arguments
* sync various pieces of code with Incentive PyMOL
* faster iterate/alter implementation ported from Incentive PyMOL
* experimental mmCIF write support (atoms only)
* partial multi-letter chain support
* super: use guide instead of CA, enables nuc acid alignment
* fix movie panel not shown until resize
* eliminate some deprecated parsing modes
* python: convert some files to absolute_import
* --help and --version
* dynamic_measures refactoring, fixes duplicated IDs bug
* get_type returns object:alignment and object:ramp
* new "command" Wizard ported from Incentive PyMOL
* remove obsolete contrib/sglite and contrib/modules
* reimplement volume carving
- use a carve mask texture
* fix boxed volume around selection (with or without carving)
- this only worked for symmetry expanded volumes
- still limited to maps with symmetry information (TODO)
* removed ObjectVolumeGetIsUpdated, deprecate get_volume_is_updated
* refactored ObjectVolumeStateGetField, ObjectVolumeGetField
- don't keep a redundant vs->volume copy in memory
* revert a 1.7.2 opaque_background change
- real-time rendering background was always black with
opaque_background=0
- removes opaque_background support for "draw"
- volume presets
- new commands: volume_color, volume_ramp_new
- improved volume panel/UI
- custom volume ramps/presets
- support for volumes from maps with transformation matrix (matrix_copy on map)
some ATI cards require the first shader attribute at position 0 to
be bound. The problem was that the attr_pickcolor attribute was
automatically bound to position 0, and was not always being used, which
caused the ATI card to fail (not exactly sure why, but binding position 0
fixes the problem)
binding also did not always work in the open-source version, since ATI
assigns the attribute positions in alphabetical order, changing the
name of the optional attr_pickcolor attribute seems to fix the labels
on these cards
* remove self assignments
http://sourceforge.net/p/pymol/bugs/143/
* cmd.load_callback: import fixed version to api
* don't sort atoms in discrete objects
* fix resizing issue for lines on ATI cards
* fix reset stereo with reinitialize
* fix draw stereo
* fix dihedral rep for objects with >20 states
* cmd.png: consider image_dots_per_inch with _unit2px
* preset.py: delete temporary selections
* fixed CGO demo crash in CGOSimplify
* print OpenGL info not only to STDOUT, but to PyMOL text output
* fix tcl/tk window placement on OS X 10.9
* get_viewport: do not print int as float
* fix: do not set wiz.cmd to None when saving PSE
* fix cartoon picking bug
* fix crash during selection
* fix two_sided_lighting cartoon shader bug
* fix isolevel command for isosurface with shaders
* mol2 writing with multiple objects
* fix removing non-polar hydrogens
* fix crash during select bychain
* fixed line_as_cylinder bug
* fixed smooth half bonds with line as cylinders
* get_bond command
* improved rendering performance using shaders, including
dynamically updated shaders based on settings
(see data/shaders directory)
* implemented shaders for menus, labels, selection indicators,
background, and other graphics that were not using shaders.
* consolidated textures used for labels and selection indicators
to one texture, which helps performance
* added memory checking to help avoid crashing when memory is
low or not available
* cleaned up code base, took out extraneous preprocessor code and
code that was not used.
* refactor pmg_tk.Settings
* Do not clear atom names with chempy.champ.assign.amber99
* fix some plugin manager exception handling
* fix create with name=None
* Plugin override search path: Always include "startup"
from installation directory in plugin search path
* Movie > Program > Scene Loop > Nutate > by degrees
* ObjectMeshRenderImpl refactoring: color isomesh and isodot with
mesh_color and dot_color settings
* merging alignment objects: eliminate orphaned atoms
* fix cealign alignment object creation: rms_cur arguments swapped
* improved the alignto command to take additional keyword arguments
which get passed to the used method -> object=aln supported now
* remove _PYMOL_MODULE constant
* fix LITERAL mode command parsing: ignore leading whitespace