Coder Social home page Coder Social logo

schrodinger / pymol-open-source Goto Github PK

View Code? Open in Web Editor NEW
1.1K 37.0 268.0 57.08 MB

Open-source foundation of the user-sponsored PyMOL molecular visualization system.

Home Page: https://pymol.org/

License: Other

C 60.33% C++ 25.83% Python 11.53% Objective-C 0.02% CSS 0.01% GLSL 0.23% HTML 0.44% JavaScript 1.47% Mermaid 0.15% Promela 0.01% Shell 0.01% CMake 0.01%

pymol-open-source's Introduction

pymol-open-source's People

Contributors

antonschrodin avatar bisdan avatar bmwiedemann avatar bougui505 avatar branchvincent avatar carlosfamilia avatar cgohlke avatar colefrench avatar d-b-w avatar danpf avatar endofunctor avatar ericonr avatar inchoate avatar jarrettsjohnson avatar jrom99 avatar keitaroyam avatar krisjanssen avatar llimeht avatar pp-amaskaev avatar pslacerda avatar reneeotten avatar rwgk avatar simonkeng avatar songyongshun avatar speleo3 avatar tstewdev avatar vedranmiletic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pymol-open-source's Issues

failed to build on CentOS-7

[centos@salle4-66 pymol-open-source]$ type python
python is hashed (/usr/bin/python)
[centos@salle4-66 pymol-open-source]$ python setup.py build
svn: E155007: '/home/centos/github/schrodinger/pymol-open-source' is not a working copy
running build
running build_py
running build_ext
building 'pymol._cmd' extension
g++ -pthread -std=c++0x -fPIC -D_PYMOL_LIBPNG -D_PYMOL_INLINE -D_PYMOL_VMD_PLUGINS -D_HAVE_LIBXML -D_PYMOL_NO_MSGPACKC -D_PYMOL_FREETYPE -DNO_MMLIBS -D_PYMOL_NUMPY -Iov/src -Ilayer0 -Ilayer1 -Ilayer2 -Ilayer3 -Ilayer4 -Ilayer5 -Imodules/cealign/src -Ibuild/generated -Icontrib/uiuc/plugins/include -Icontrib/uiuc/plugins/molfile_plugin/src -I/usr/lib64/python2.7/site-packages/numpy/core/include -I/usr/include -I/usr/include/freetype2 -I/usr/include/libxml2 -I/usr/include/python2.7 -c layer3/PlugIOManager.cpp -o build/temp.linux-x86_64-2.7/layer3/PlugIOManager.o -Wno-write-strings -Wno-unused-function -Wno-char-subscripts -ffast-math -funroll-loops -O3 -fcommon
g++ -pthread -std=c++0x -fPIC -D_PYMOL_LIBPNG -D_PYMOL_INLINE -D_PYMOL_VMD_PLUGINS -D_HAVE_LIBXML -D_PYMOL_NO_MSGPACKC -D_PYMOL_FREETYPE -DNO_MMLIBS -D_PYMOL_NUMPY -Iov/src -Ilayer0 -Ilayer1 -Ilayer2 -Ilayer3 -Ilayer4 -Ilayer5 -Imodules/cealign/src -Ibuild/generated -Icontrib/uiuc/plugins/include -Icontrib/uiuc/plugins/molfile_plugin/src -I/usr/lib64/python2.7/site-packages/numpy/core/include -I/usr/include -I/usr/include/freetype2 -I/usr/include/libxml2 -I/usr/include/python2.7 -c layer5/PyMOL.cpp -o build/temp.linux-x86_64-2.7/layer5/PyMOL.o -Wno-write-strings -Wno-unused-function -Wno-char-subscripts -ffast-math -funroll-loops -O3 -fcommon
layer5/PyMOL.cpp: In function ‘void PyMOL_DrawWithoutLock(CPyMOL*)’:
layer5/PyMOL.cpp:2391:51: error: invalid conversion from ‘void (*)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar*, const void*) {aka void (*)(unsigned int, unsigned int, unsigned int, unsigned int, int, const char*, const void*)}’ to ‘GLDEBUGPROC {aka void (*)(unsigned int, unsigned int, unsigned int, unsigned int, int, const char*, void*)}’ [-fpermissive]
         glDebugMessageCallback(gl_debug_proc, NULL);
                                                   ^
error: command 'g++' failed with exit status 1
[centos@salle4-66 pymol-open-source]$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 

[centos@salle4-66 pymol-open-source]$ git log| head 
commit be408fa1d38a1e4b3aa862c87de7ead9189ed8d5
Author: Thomas Holder <[email protected]>
Date:   Fri Jun 22 18:57:00 2018 -0400

    cleanup: remove obsolete CmdGetPDB


Issue loading multi model PDB file

Hi,
This multi model file nucleicModel.pdb.txt presents broken atomic connections in state 2, 3 and 5. I have found the issue is due to the position of the first ENDMDL record. Moving it immediately after CONNECT records restores the correct atomic connections.

Object named polymer warning

Hi developers!

The polymer.protein and polymer.nucleic was the chosen class names instead of protein and nucleic, I imagine that was to avoid clashes with preexisting sessions and scripts.

So now could the warning about object named "protein" be removed? My analysis says 'WARNING protein...' thousand of times.

Incorrect TER record format

As of v2.3 the setting pdb_use_ter_records now inserts TER records in all the correct places (i.e. not at gaps within a chain). However, there seems to be a regression in terms of the format of the TER records that it does insert. It seems to be hard-coded to "TER \n":

m_offset += VLAprintf(m_buffer, m_offset, "TER \n");

My understanding is that it should have a serial number that increments the preceding record by 1 and should include a repeat of the residue name, chain ID and residue ID from the preceding terminal residue. One effect of this is that subsequent ATOM records (in a different chain) or any subsequent HETATM records may also need their serial number incremented by 1 to avoid a duplicate.

VR support

Sorry if this is the wrong place, we can continue this conversation over email if you would prefer ([email protected]).

I am currently working on scientific data visualization using Virtual Reality at work, and our team has had pretty good success and promising prototypes across several domains (astrophysics, geology/planetary science).
VR has a way of making complex 3d structures look meaningful, and manipulating and examining data can become delightfully intuitive if mapped well to the domain. Just an idea, but it seems that visualizing complex 3d molecular structures could benefit greatly from virtual reality. I am not a chemist, but I think there might be potential.
Could we talk a bit about VR and pymol? At least so we could determine how (if at all) it might benefit visualization?

Thanks,
Stewy

"cmd" name is taken in another standard library

PyMol "CMD" conflicts with default Python CMD library used by a dependency of SpaCy NLP:
AI projects might run into this issue...

Traceback (most recent call last):
File "", line 1, in
File "XXXXXXXXXXXXXXXXXX/src/init.py", line 3, in
from src.tasks.stories.stories import StoriesEnv
File "XXXXXXXXXXXXXXXXXX/src/tasks/stories/stories.py", line 11, in
import spacy # don't forget to python -m spacy download en
File "/home/bion/anaconda3/envs/tfg/lib/python3.6/site-packages/spacy/init.py", line 10, in
from .cli.info import info as cli_info
File "/home/bion/anaconda3/envs/tfg/lib/python3.6/site-packages/spacy/cli/init.py", line 1, in
from .download import download
File "/home/bion/anaconda3/envs/tfg/lib/python3.6/site-packages/spacy/cli/download.py", line 4, in
import plac
File "/home/bion/anaconda3/envs/tfg/lib/python3.6/site-packages/plac.py", line 35, in
from plac_ext import (Interpreter, import_main, ReadlineInput,
File "/home/bion/anaconda3/envs/tfg/lib/python3.6/site-packages/plac_ext.py", line 10, in
import cmd
File "", line 971, in _find_and_load
File "", line 951, in _find_and_load_unlocked
File "", line 894, in _find_spec
File "/home/bion/anaconda3/envs/tfg/lib/python3.6/site-packages/pymol/init.py", line 641, in find_spec
raise CmdException(msg)
pymol.CmdException: Error: use "from pymol import cmd" instead of "import cmd"

Windows version of PyMOL Open Source has almost invisible structures on initialization

On my computer, I have installed both PyMOL 2.2.0 and 2.3.0a0 for Python 3.6 and 3.7 (one at a time) on Windows 10 and the problem below showed.
(https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymol)

However, like the image below, I can see that the structure is greatly dimmed and almost invisible. On another computer using the same procedures for installation, the structure is bright like other normal computers.

image

If I type in ray, the below picture shows.

image

And the structure goes back to the dimmed state if I move it.

image

However, if I click Reinitialize --> Original Settings, the structure becomes normal.

image

If I click Reinitialize --> Everything and reload the file, it goes back to the first greatly dimmed state.

This problem occurs on a different Python version installation, different PyMOL installation, and after reinstalling everything. The protein structure file input did not matter for this at all. On another computer with the exact same installation procedures, it is normal. The only difference was that the computer with this problem had the Commercial PyMOL installed before, but uninstalled after.

What is wrong with the settings I have right now, and what should I do to get the default back to Original Settings, instead of having to do Reinitialize --> Original Settings every time?

I need the real solution of this problem, I know how to put reinitialize original_settings in pymolrc. This is not a pretty solution.

@speleo3

Missing functions called from `movie.add_scenes()`

The "Movie > Program > Scene Loop" menu item calls movie.add_scenes(names=None, ...). The docstring specifies that names can also be a str list of scene names, but if called with a string, results in a traceback.

PyMOL>frag ala
 Executive: object "ala" created.
PyMOL>scene F1, store
 scene: scene stored as "F1".
PyMOL>movie.add_scenes('F1')
Traceback (most recent call last):
  File "/Users/jared/.local/miniconda3/lib/python3.6/site-packages/pymol/movie.py", line 612, in add_scenes
    elif cmd.is_str(names):
AttributeError: module 'pymol.cmd' has no attribute 'is_str'

It turns out cmd.is_str() no longer exists (anywhere) in the codebase, and cmd.safe_alpha_list_eval() has been moved to pymol.constants.

Ultimately, names is expected to be a Python list of strings (as in the output from cmd.get_scene_list(), so it would be helpful if such a list could also be passed via the API.

Compile failure with Visual Studio 2017

Pymol-2.4.0a0 (git rev 9ac17c0) fails to build with Visual Studio 2017 (14.16.27023). Works with Visual Studio 2015:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DWIN32 -D_WINDOW -D_PYMOL_LIBPNG -D_PYMOL_NUMPY -D_PYMOL_FREETYPE -DDESRES_WIN32 -D_PYMOL_INLINE -DGLEW_STATIC -DFREEGLUT_STATIC -DNO_MMLIBS -D_HAVE_LIBXML -DCINTERFACE -DGL_GLEXT_PROTOTYPES -DMMTF_MSGPACK_USE_CPP11 -D_PYMOL_VMD_PLUGINS -Iov/src -Ilayer0 -Ilayer1 -Ilayer2 -Ilayer3 -Ilayer4 -Ilayer5 -Imodules/cealign/src -Ibuild\generated -Icontrib/mmtf-c -IX:\Python38\lib\site-packages\numpy\core\include -IX:\inclib-vc15-x64\ -I..\msgpack-c-cpp-2.1.5\include -I..\mmtf-cpp\include -I..\glm-0.9.9.0 -Iinclude -Icontrib/uiuc/plugins/include -Icontrib/uiuc/plugins/molfile_plugin/src -IX:\Python38\include -IX:\Python38\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" -IX:\Cmd -IX:\Python38\include -IX:\inclib-vc15-x64 -IX:\inclib-vc15-x64\sdl -IX:\inclib-vc15-x64\hdf5 -IX:\inclib-vc15-x64\postgresql -IX:\inclib-vc15-x64\openldap -IX:\TCL86-x64\include -IX:\Java18-x64\include\win32 -IX:\Java18-x64\include -IX:\inclib-vc15-x64\freetype2 "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tplayer2\CifFile.cpp /Fobuild\temp.win-amd64-3.8\Release\layer2\CifFile.obj /EHsc /D_CRT_SECURE_NO_WARNINGS
CifFile.cpp
layer0\MemoryDebug.h(102): warning C4267: 'return': conversion from 'size_t' to 'unsigned int', possible loss of data
layer2\CifFile.cpp(210): warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strdup. See online help for details.
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt\string.h(536): note: see declaration of 'strdup'
layer2\CifFile.cpp(302): warning C4267: 'initializing': conversion from 'size_t' to 'unsigned int', possible loss of data
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xmemory0(881): error C2280: 'std::unique_ptr<pymol::cif_loop,std::default_delete<_Ty>>::unique_ptr(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)': attempting to reference a deleted function
        with
        [
            _Ty=pymol::cif_loop
        ]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\memory(2337): note: see declaration of 'std::unique_ptr<pymol::cif_loop,std::default_delete<_Ty>>::unique_ptr'
        with
        [
            _Ty=pymol::cif_loop
        ]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\memory(2337): note: 'std::unique_ptr<pymol::cif_loop,std::default_delete<_Ty>>::unique_ptr(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)': function was explicitly deleted
        with
        [
            _Ty=pymol::cif_loop
        ]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xmemory(164): note: see reference to function template instantiation 'void std::_Default_allocator_traits<_Alloc>::construct<_Ty,_Ty&>(_Alloc &,_Objty *const ,_Ty &)' being compiled
        with
        [
            _Alloc=std::allocator<std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>>,
            _Ty=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>,
            _Objty=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>
        ]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xmemory(164): note: see reference to function template instantiation 'void std::_Default_allocator_traits<_Alloc>::construct<_Ty,_Ty&>(_Alloc &,_Objty *const ,_Ty &)' being compiled
        with
        [
            _Alloc=std::allocator<std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>>,
            _Ty=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>,
            _Objty=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>
        ]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xmemory(190): note: see reference to function template instantiation 'void std::_Uninitialized_backout_al<_FwdIt,_Alloc>::_Emplace_back<_Ty&>(_Ty &)' being compiled
        with
        [
            _FwdIt=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>> *,
            _Alloc=std::allocator<std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>>,
            _Ty=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>
        ]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xmemory(190): note: see reference to function template instantiation 'void std::_Uninitialized_backout_al<_FwdIt,_Alloc>::_Emplace_back<_Ty&>(_Ty &)' being compiled
        with
        [
            _FwdIt=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>> *,
            _Alloc=std::allocator<std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>>,
            _Ty=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>
        ]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xmemory(217): note: see reference to function template instantiation '_FwdIt std::_Uninitialized_copy_al_unchecked<_Ty*,_Ty*,_Alloc>(_InIt,const _InIt,const _FwdIt,_Alloc &,std::_General_ptr_iterator_tag,std::_Any_tag)' being compiled
        with
        [
            _FwdIt=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>> *,
            _Ty=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>,
            _Alloc=std::allocator<std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>>,
            _InIt=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>> *
        ]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\vector(1823): note: see reference to function template instantiation '_FwdIt *std::_Uninitialized_copy<_Iter,std::unique_ptr<pymol::cif_loop,std::default_delete<_Ty>>*,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>>(const _InIt,const _InIt,_FwdIt,_Alloc &)' being compiled
        with
        [
            _FwdIt=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>> *,
            _Iter=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>> *,
            _Ty=pymol::cif_loop,
            _InIt=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>> *,
            _Alloc=std::allocator<std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>>>
        ]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\vector(738): note: see reference to function template instantiation 'std::unique_ptr<pymol::cif_loop,std::default_delete<_Ty>> *std::vector<std::unique_ptr<_Ty,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>>::_Ucopy<std::unique_ptr<_Ty,std::default_delete<_Ty>>*>(_Iter,_Iter,std::unique_ptr<_Ty,std::default_delete<_Ty>> *)' being compiled
        with
        [
            _Ty=pymol::cif_loop,
            _Iter=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>> *
        ]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\vector(738): note: see reference to function template instantiation 'std::unique_ptr<pymol::cif_loop,std::default_delete<_Ty>> *std::vector<std::unique_ptr<_Ty,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>>::_Ucopy<std::unique_ptr<_Ty,std::default_delete<_Ty>>*>(_Iter,_Iter,std::unique_ptr<_Ty,std::default_delete<_Ty>> *)' being compiled
        with
        [
            _Ty=pymol::cif_loop,
            _Iter=std::unique_ptr<pymol::cif_loop,std::default_delete<pymol::cif_loop>> *
        ]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\vector(732): note: while compiling class template member function 'std::vector<std::unique_ptr<pymol::cif_loop,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>>::vector(const std::vector<std::unique_ptr<_Ty,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>> &)'
        with
        [
            _Ty=pymol::cif_loop
        ]
layer2\CifFile.cpp(414): note: see reference to function template instantiation 'std::vector<std::unique_ptr<pymol::cif_loop,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>>::vector(const std::vector<std::unique_ptr<_Ty,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>> &)' being compiled
        with
        [
            _Ty=pymol::cif_loop
        ]
d:\build\pymol\pymol-git\layer2\CifFile.h(220): note: see reference to class template instantiation 'std::vector<std::unique_ptr<pymol::cif_loop,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>>' being compiled
        with
        [
            _Ty=pymol::cif_loop
        ]
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2

Pdb file load fail

Trying to load a pdb file on a Fedora Core 30 system produces the following traceback:

Traceback (most recent call last):
  File "/xsoft/pymol-open-source/modules/pmg_qt/pymol_qt_gui.py", line 626, in file_open
    if not self.load_dialog(fname, partial=partial):
  File "/xsoft/pymol-open-source/modules/pmg_qt/file_dialogs.py", line 24, in load_dialog
    parent.initialdir = os.path.dirname(fname)
  File "/usr/lib64/python2.7/posixpath.py", line 122, in dirname
    i = p.rfind('/') + 1
AttributeError: 'QString' object has no attribute 'rfind'

Error while compiling PyMOL on CentOS 6

/peopleroot/skim/python3/bin/x86_64-conda_cos6-linux-gnu-cc -DNDEBUG -g -fwrapv -O3 -Wall -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -fPIC -Icontrib/champ -I/peopleroot/skim/python3/include/python3.6m -c contrib/champ/feedback2.c -o build/temp.linux-x86_64-3.6/contrib/champ/feedback2.o
contrib/champ/os_memory.c: In function 'OSMemoryZero':
contrib/champ/os_memory.c:67:18: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
   while(count&&(((int)p)&mask)) {
                  ^
contrib/champ/os_memory.c: In function 'OSMemoryHashAdd':
contrib/champ/os_memory.c:149:8: warning: cast from pointer to integer of different size [-Wpointer-to- int-cast]
   hash=(int)rec;
        ^
contrib/champ/os_memory.c: In function 'OSMemoryHashRemove':
contrib/champ/os_memory.c:162:8: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
   hash=(int)rec;
         ^
/peopleroot/skim/python3/bin/x86_64-conda_cos6-linux-gnu-cc -DNDEBUG -g -fwrapv -O3 -Wall -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -fPIC -Icontrib/champ -I/peopleroot/skim/python3/include/python3.6m -c contrib/champ/strblock.c -o build/temp.linux-x86_64-3.6/contrib/champ/strblock.o
/peopleroot/skim/python3/bin/x86_64-conda_cos6-linux-gnu-cc -DNDEBUG -g -fwrapv -O3 -Wall -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -fPIC -Icontrib/champ -I/peopleroot/skim/python3/include/python3.6m -c contrib/champ/vla.c -o build/temp.linux-x86_64-3.6/contrib/champ/vla.o
gcc -pthread -shared -L/peopleroot/skim/python3/lib -Wl,-rpath=/peopleroot/skim/python3/lib,--no-as-needed -L/peopleroot/skim/python3/lib -Wl,-rpath=/peopleroot/skim/python3/lib,--no-as-needed -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 build/temp.linux-x86_64-3.6/contrib/champ/champ.o build/temp.linux-x86_64-3.6/contrib/champ/champ_module.o build/temp.linux-x86_64-3.6/contrib/champ/chiral.o build/temp.linux-x86_64-3.6/contrib/champ/err2.o build/temp.linux-x86_64-3.6/contrib/champ/feedback2.o build/temp.linux-x86_64-3.6/contrib/champ/list.o build/temp.linux-x86_64-3.6/contrib/champ/os_memory.o build/temp.linux-x86_64-3.6/contrib/champ/sort.o build/temp.linux-x86_64-3.6/contrib/champ/strblock.o build/temp.linux-x86_64-3.6/contrib/champ/vla.o -L/peopleroot/skim/python3/lib -lpython3.6m -o build/lib.linux-x86_64-3.6/chempy/champ/_champ.cpython-36m-x86_64-linux-gnu.so
/usr/bin/ld: build/temp.linux-x86_64-3.6/contrib/champ/champ.o(.text+0x26): unresolvable H\$爉l$󈊳Ld$䪘HGH򓈉Ո;ÿPxHEItHÿPxHEH{It$H$HlLd$H@xHÿ󿦐H\$爉l$󈊻Ld$䪘HGIӈ芷ÿPhI$HCHÿPhH$IDHlLd$H_ relocation against symbol `PyUnicode_AsUTF8'
/usr/bin/ld: BFD version 2.20.51.0.2-5.44.el6 20100205 internal error, aborting at reloc.c line 443 in bfd_get_reloc_size

/usr/bin/ld: Please report this bug.

collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

While I was building PyMOL 2.2.0 from the Github open source repository, under Anaconda Python 3.6 on CentOS 6, with all dependencies (I probably didn't make a mistake) installed using Conda, the error same as the above link occurred.
What should be the problem for the building process?

load_traj's option `selection` does not work for xtc format

I tried to use load_traj filename.xtc, objectname, selection=somestuff to only load a specific subset of atoms from the trajectory.

After raising the issue on the mailing list it turns out that, apparently, this is only implemented for AMBER .trj files.

Is there any plan to extend this functionality to other formats such as .xtc in the future?
I imagine this is a tough cookie, but I'll throw it here as a feature request nonetheless.

How to get objects from selection?

I need to get object names from a selection like protein_name.*.method.site . However I didn't found the name of a model object.

model = cmd.get_model(sel)
print(dir(model))
print(dir(model.atom[0]))

Because iterate has exposed a model attribute, I'm using:

stored.models = set()
cmd.iterate(sel, 'stored.models.add(model)')

I'm more into get_model() because iterate really don't sounds that good for it. I imagine that iterate don't pickle the function/lambda because the scope would be lost or messed, need to have some standard argument, or whatever. It doesn't matter that much because it sounds better for console than scripting.

Now the question: Is there an appropriated way? How to get the model attribute from an atom?

how do you load an mmtf file that's been loaded from python3?

If I have a script that reads in an mmtf file, is there a way to get pymol to read that without dumping it to a file?

currently I believe it is broken due to the way bytes are handled.

error:

Error in MMTF_unpack_from_msgpack_object: the entry encoded in the MMTF is not a map.

I'm pretty sure in the conversion from python -> c++ is keeping the b', so it's unable to read and thinks it is broken, I could be wrong though!

Rendering problem on `mpng`

Hi, I tried to use mpng foo command to output sequential png images of multistate objects on macOS 10.14.3, the images were created, but a warning message WARNING: glReadBuffer caused GL error 0x0502 was displayed and they were slightly odd -- all line objects were always displayed on the cartoon objects (left). When using png bar.png command to save the image, this issue did not happen (right).

I found that this issue happened on both macOS 10.13 and 10.14, and on both Open-source and DMG diskimage versions. The PyMOL version was 2.3.0. Interestingly, the issue does not happen on Ubuntu 18.04 with NVidia RTX 2080Ti.

Here is the command I input to create the image below:

fetch 1alk
mpng foo
png bar.png

graphic

PREFIX_PATH not auto-detected with virtual environment

The get_prefix_path() function in setup.py used to determine the path for include folders fails to correctly determine the prefix when using Python within a virtual environment. The relevant code is:

if sys.platform == 'darwin':
    for prefix in ['/sw', '/opt/local', '/usr/local']:
        if sys.executable.startswith(prefix):
            return [prefix] + X11

For me, when running outside of the virtual environment, sys.executable == "/usr/local/opt/python/bin/python3.7". This means that the function gives prefix path "/usr/local" which means that include folders like /usr/local/include/freetype2.

However, when running inside a venv, the sys.executable gives a different value:

$ python -m venv .env
$ source .env/bin/activate
$ python -c "from sys import executable; print(executable)"
> /path/to/working/directory/.env/bin/python

This means that theget_prefix_path() doesn't find the necessary include headers in /usr/local/include/freetype2 and other directories and the compilation fails with errors like:

> clang++ -std=c++11 -D_PYMOL_LIBPNG -D_PYMOL_FREETYPE -D_PYMOL_INLINE -D_PYMOL_VMD_PLUGINS -D_PYMOL_NO_MSGPACKC -D_PYMOL_NO_MAIN -D_PYMOL_OSX -D_PYMOL_NUMPY -Icontrib/uiuc/plugins/include -Iov/src -Ilayer0 -Ilayer1 -Ilayer2 -Ilayer3 -Ilayer4 -Ilayer5 -Imodules/cealign/src -Ibuild/generated -Icontrib/uiuc/plugins/molfile_plugin/src -I/Users/drew/.../.env/lib/python3.7/site-packages/numpy/core/include -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/Users/drew/.../.env/include -I/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c layer1/TypeFace.cpp -o build/temp.macosx-10.14-x86_64-3.7/layer1/TypeFace.o -Wno-narrowing -Wno-char-subscripts -ffast-math -funroll-loops -O3 -fcommon -fno-strict-aliasing
> layer1/TypeFace.cpp:25:10: fatal error: 'ft2build.h' file not found
> #include <ft2build.h>
>          ^~~~~~~~~~~~
> 1 error generated.
> error: command 'clang++' failed with exit status 1

pymol.finish_launching() fails on macOS

By
import pymol
pymol.finish_launching()
prompt error:
2019-04-19 10:52:44.576 Python[43192:3812618] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+[NSUndoManager(NSInternal) _endTopLevelGroupings] is only safe to invoke on the main thread.'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff3b5c31fb __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00007fff622ef942 objc_exception_throw + 48
2 CoreFoundation 0x00007fff3b5c8de2 +[NSException raise:format:arguments:] + 98
3 Foundation 0x00007fff3d6f1260 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 193
4 Foundation 0x00007fff3d67fdb4 +[NSUndoManager(NSPrivate) _endTopLevelGroupings] + 469
5 AppKit 0x00007fff38b0be56 -[NSApplication run] + 997
6 libqcocoa.dylib 0x000000010fa770ab qt_plugin_instance + 161931
7 QtCore 0x000000010e6ff55f _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE + 431
8 QtCore 0x000000010e704502 _ZN16QCoreApplication4execEv + 130
9 QtWidgets.so 0x000000010f3740e0 ZL23meth_QApplication_exec_P7_objectS0 + 80
10 Python 0x000000010be89df3 _PyMethodDef_RawFastCallKeywords + 236
11 Python 0x000000010be89493 _PyCFunction_FastCallKeywords + 44
12 Python 0x000000010bf1f168 call_function + 636
13 Python 0x000000010bf17da9 _PyEval_EvalFrameDefault + 7016
14 Python 0x000000010be8986e function_code_fastcall + 112
15 Python 0x000000010bf1f1dd call_function + 753
16 Python 0x000000010bf17da9 _PyEval_EvalFrameDefault + 7016
17 Python 0x000000010bf1fa6f _PyEval_EvalCodeWithName + 1835
18 Python 0x000000010be890c1 _PyFunction_FastCallDict + 441
19 Python 0x000000010bf180c0 _PyEval_EvalFrameDefault + 7807
20 Python 0x000000010be8986e function_code_fastcall + 112
21 Python 0x000000010bf1f1dd call_function + 753
22 Python 0x000000010bf17d90 _PyEval_EvalFrameDefault + 6991
23 Python 0x000000010be8986e function_code_fastcall + 112
24 Python 0x000000010bf1f1dd call_function + 753
25 Python 0x000000010bf17d90 _PyEval_EvalFrameDefault + 6991
26 Python 0x000000010be8986e function_code_fastcall + 112
27 Python 0x000000010be8a1f1 _PyObject_Call_Prepend + 150
28 Python 0x000000010be895a1 PyObject_Call + 136
29 Python 0x000000010bf86dd3 t_bootstrap + 71
30 Python 0x000000010bf4d540 pythread_wrapper + 25
31 libsystem_pthread.dylib 0x00007fff631676c1 _pthread_body + 340
32 libsystem_pthread.dylib 0x00007fff6316756d _pthread_body + 0
33 libsystem_pthread.dylib 0x00007fff63166c5d thread_start + 13
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Abort trap: 6

Mesh construction code location

Hi,

I'd like to experiment with changing the mesh (currently they look like tri-mesh) that gets constructed when a PDB file is loaded.

May I know where in the code are the mesh constructed so I can see how they are constructed?

Cheers

Conda package segfaults on WSL running Ubuntu

I'm running Ubuntu 18.04 on WSL. Python version 3.7.3. I installed PyMol using conda install -c schrodinger pymol - however when I enter the pymol command to launch the application I get a segfault before any windows open. I have OpenGL libraries in my env and running VcXsrv on Windows (unchecked 'Native opengl' when configuring VcXsrv to force use of Linux OpenGL).

Is this an issue with WSL specifically, how it handles opening windows? I am able to open other X-window based applications. A work around would be greatly appreciated - I can copy PDBs to C: and open the windows pymol download, but my workflow productivity suffers

Output pasted here, though not super helpful:

PyMOL(TM) 2.3.2 - Incentive Product
 Copyright (C) Schrodinger, LLC

 This Executable Build integrates and extends Open-Source PyMOL.
[1]    24738 segmentation fault (core dumped)  pymol

Missing tags for versions 2.3.1, 2.3.2, 2.3.3

Tags for pymol releases 2.3.1, 2.3.2, 2.3.3 are not visible on GitHub. It's possible that the releases weren't tagged, are on a maintenance branch that has not been pushed to GitHub or simply that the tags were not pushed to GitHub. It'd be great if releases were clearly tagged.

Testing pymol could be easier and more robust

Tests are important: users want to be able to test that their compilation worked OK, developers want to be able to use tests as part of CI, packagers want to be able to run tests on the packaged version to make sure that everything has indeed been packaged properly.

This git repo contains a test directory which exercises some parts of pymol. Most of these tests currently fail because pymol has changed its output format over the years:

 run_tests: C0001quit...
 run_tests: C0010hello...
 run_tests: C0020pdb...
 run_tests: C0020pdb.log DIFFERS over about 2 lines.
 run_tests: C0021pdbstr...
 run_tests: C0025mol...
 run_tests: C0025mol.log DIFFERS over about 2 lines.
 run_tests: C0026sdf...
 run_tests: C0026sdf.log DIFFERS over about 5 lines.
 run_tests: C0027mol2...
 run_tests: C0027mol2.log DIFFERS over about 9 lines.
 run_tests: C0030pkl...
 run_tests: C0030pkl.pdb DIFFERS over about 196 lines.
 run_tests: C0050multi...
 run_tests: C0050multi.log DIFFERS over about 6 lines.
 run_tests: C0060delete...
 run_tests: C0060delete.log DIFFERS over about 6 lines.
 run_tests: C0070rep...
 run_tests: C0070rep.log DIFFERS over about 2 lines.
 run_tests: C0080create...
 run_tests: C0080create.log DIFFERS over about 6 lines.
 run_tests: C0100select...
 run_tests: C0100select.log DIFFERS over about 16 lines.
 run_tests: C0105names...
 run_tests: C0105names.log DIFFERS over about 2 lines.
 run_tests: C0106order...
 run_tests: C0106order.log DIFFERS over about 6 lines.
 run_tests: C0140iterate...
 run_tests: C0140iterate.log DIFFERS over about 12 lines.
 run_tests: C0150alter...
 run_tests: C0150alter.log DIFFERS over about 2 lines.
 run_tests: C0150alter.1.pdb DIFFERS over about 39 lines.
 run_tests: C0160get...
 run_tests: C0160get.log DIFFERS over about 6 lines.
 run_tests: C0170scene...
 run_tests: C0170scene.log DIFFERS over about 78 lines.
 run_tests: C0180embed...
 run_tests: C0180embed.log DIFFERS over about 11 lines.
 run_tests: C0181embed...
 run_tests: C0181embed.log DIFFERS over about 2 lines.
 run_tests: C0200feedback...
 run_tests: C0200feedback.log DIFFERS over about 40 lines.
 run_tests: C0201extend...
 run_tests: C0202help_python...
 run_tests: C0202help_python.log DIFFERS over about 18 lines.
 run_tests: C0300session...
 run_tests: C0300session.log DIFFERS over about 4 lines.
 run_tests: C0500misc...
 run_tests: C0500misc.log DIFFERS over about 33 lines.
 run_tests: C0550pseudo...
 run_tests: C0550pseudo.log DIFFERS over about 32 lines.
 run_tests: C0600util...
 run_tests: C0600util.log DIFFERS over about 17 lines.
 run_tests: C0700odd...
 run_tests: C0700odd.2.pdb DIFFERS over about 1 lines.
 run_tests: C0700odd.E.pdb DIFFERS over about 35 lines.
 run_tests: C0700odd.log DIFFERS over about 65 lines.
 run_tests: C0700odd.C.pdb DIFFERS over about 35 lines.
 run_tests: C0700odd.6.pdb DIFFERS over about 1 lines.
 run_tests: C0700odd.9.pdb DIFFERS over about 22 lines.
 run_tests: C0700odd.1.pdb DIFFERS over about 22 lines.
 run_tests: C0700odd.8.pdb DIFFERS over about 22 lines.
 run_tests: C0700odd.3.pdb DIFFERS over about 1 lines.
 run_tests: C0700odd.B.pdb DIFFERS over about 22 lines.
 run_tests: C0700odd.5.pdb DIFFERS over about 1 lines.
 run_tests: C0700odd.A.pdb DIFFERS over about 22 lines.
 run_tests: C0700odd.F.pdb DIFFERS over about 1 lines.
 run_tests: C0700odd.4.pdb DIFFERS over about 1 lines.
 run_tests: C0700odd.D.pdb DIFFERS over about 35 lines.
 run_tests: C0700odd.7.pdb DIFFERS over about 22 lines.
 run_tests: C0740multipdb...
 run_tests: C0800matrices...
 run_tests: C0800matrices.log DIFFERS over about 21 lines.
 run_tests: C1000viewing...
 run_tests: C1000viewing.log DIFFERS over about 124 lines.
 run_tests: C1010helping...
 run_tests: C1010helping.log DIFFERS over about 12 lines.
 run_tests: C1020querying...
 run_tests: C1020querying.log DIFFERS over about 27 lines.
 run_tests: C1030selecting...
 run_tests: C1030selecting.log DIFFERS over about 24 lines.
 run_tests: C1035wildcards...
 run_tests: C1035wildcards.log DIFFERS over about 2 lines.
 run_tests: C1040editing...
 run_tests: C1040editing.log DIFFERS over about 77 lines.
 run_tests: C1050fitting...
 run_tests: C1060controlling...
 run_tests: C1070exporting...
 run_tests: C1070exporting.log DIFFERS over about 11 lines.
 run_tests: C1080isomore...
 run_tests: C1080isomore.log DIFFERS over about 10 lines.
 run_tests: C1090coulomb...
 run_tests: C1090coulomb.log DIFFERS over about 2 lines.
 run_tests: C1095slice...
 run_tests: C1095slice.log DIFFERS over about 27 lines.
 run_tests: C1100do...
 run_tests: C1100do.log DIFFERS over about 14 lines.
 run_tests: C1110matrix_mode...
 run_tests: C1110matrix_mode.log DIFFERS over about 12 lines.
 run_tests: C1200matrix_maps...
 run_tests: C1200matrix_maps.log DIFFERS over about 14 lines.
 run_tests: C1300extras...
 run_tests: C2000returns...
 run_tests: C2000returns.log DIFFERS over about 126 lines.

with most output being reasonably trivial:
diffs/C0020pdb.log.diff

2c2
<  CmdLoad: "dat/pept.pdb" loaded as "pept".
---
>  CmdLoad: PDB-string loaded into object "pept", state 1.

diffs/C1090coulomb.log.diff

45c45
<  IsosurfVolume: Surface generated using 3351 lines.
---
>  IsosurfVolume: Surface generated using 5068 lines.

(the test runner also exits without error even though the tests failed)

There is additionally the pymol-testing repo which contains a more extensive set of tests.

From my perspective as a packager who is also likely to send the occasional patch to you as we spot integration problems with newer versions of libraries etc, I'd love to see a more robust test suite within the pymol repository that I can use at packaging time as CI within the distribution and on GitHub when feeding patches back to you.

How can I help achieve that?

  • Do the tests in test still have value? Would you like a PR to update them so they all pass again?

  • Could you be convinced to import the pymol-testing repo into this one as a replacement for the existing tests?

  • Would you be interested in hooking these into travis-ci so that each push and each PR got tested against Python 2.7, Python 3.x (for some value of x) and was shown to not break things in the way I accidentally did the other day in #9?

The current approach to testing left Python 3 errors unfixed even though Python 3 has been supported for over a year. The problems fixed in #9 were found only because we've been faking a test suite using the contents of examples and in switching the packaging to Python 3, the output changed. Shall we see if we can catch such problems automatically?

Windows Remote Desktop PyMol 2.4.0a0 Renderproblem

Hi

We updated from 1.8.6.0 to 2.4.0a0 and now it looks like that:

image

Detected OpenGL version 1.1. Shaders and volumes unavailable.
OpenGL graphics engine:
GL_VENDOR: Microsoft Corporation
GL_RENDERER: GDI Generic
GL_VERSION: 1.1.0

Is there any chance to get a better picture? Also measure the distance is not readable.

Thanks

Continuous Integration for Open Source PyMOL

We should support the public reporting of build/test success/failures with continuous integration frameworks. I believe Travis CI now supports all three major operating systems.

Related issue: #10

cannot find freemol package

many .py file depends on freemol package, however, I cannot find it.
For example, in "computing.py", line98

        try:
            from freemol import mengine

Getting fatal error: glm/vec2.hpp: No such file or directory

Running on centOS; here's some of the error message:

In file included from layer0/Map.cpp:17:0:
layer0/os_python.h:30:19: fatal error: Python.h: No such file or directory
 #include"Python.h"
                   ^
compilation terminated.
error: command 'g++' failed with exit status 1
In file included from layer0/Matrix.cpp:16:0:
layer0/os_python.h:30:19: fatal error: Python.h: No such file or directory
 #include"Python.h"
                   ^
compilation terminated.
[ees2192@manifoldem pymol-open-source]$ layer0/MyPNG.cpp:33:16: fatal error: png.h: No such file or directory
 #include<png.h>
                ^
compilation terminated.
In file included from layer0/GenericBuffer.cpp:2:0:
layer0/GenericBuffer.h:12:24: fatal error: glm/vec2.hpp: No such file or directory
 #include <glm/vec2.hpp>
                        ^
compilation terminated.

Selection issue after coloring a molecule

Hi, I am using compiled pymol 2.2.0 on Ubuntu 16.04. After applying a color to a molecule (like color red, myMol) I have a strange issue trying to pick atoms in order select them (for both viewing and edit mode). When I pick an atom, pymol selects an other (wrong) atom.
I also noticed that if I set color red without specifying an object, the selection isn't broken

It seems that this issue doesn't show up in compiled pymol 2.1 and before.

Anaconda dependency issues

I just tried installing pymol using the latest anaconda (fresh install version 2018.12, Python 3.7 on Linux Mint 19), and I get the following error:

$ conda install -c schrodinger pymol
Solving environment: failed

UnsatisfiableError: The following specifications were found to be in conflict:
  - anaconda==2018.12=py37_0 -> cython==0.29.2=py37he6710b0_0
  - anaconda==2018.12=py37_0 -> mkl-service==1.1.2=py37he904b0f_5
  - anaconda==2018.12=py37_0 -> numexpr==2.6.8=py37h9e4a6bb_0
  - anaconda==2018.12=py37_0 -> scikit-learn==0.20.1=py37hd81dba3_0
  - pymol
Use "conda info <package>" to see the dependencies for each package.

bond and cmd.bond() are very slow

When creating a large number of bonds with a python script that uses the API, the bad performance of the cmd.bond() command really show up. As stated here:

/* TO DO: optimize for performance -- we shouldn't be doing full
table scans */

the performance issue is due to full table scans when looking for the atom selections.

A possible workaround would be a (API only?) function that accepts a list of atom indexes instead and directly creates a bond between the two, bypassing the slowness of evaluating selections.

fit error

Using the wiki example returns:
ExecutiveRMS-Error: No atoms selected.

PyMOL versions tested (linux): 2.1.0, 2.3.0, 2.3.0 (anaconda)

Failing to launch legacy plugins

Hi,

Have a pymol installation on a macOS Mojave, made through brew with python 2.2.
When launching any of the legacy plugins installed by default it will give an error.

apbs_tools:

Python[1028:58103] -[QNSApplication _setup:]: unrecognized selector sent to instance 0x7feee962efa0

remote_pdb_load:

Traceback (most recent call last):
  File "/usr/local/Cellar/pymol/2.2.0/libexec/lib/python2.7/site-packages/pmg_tk/startup/remote_pdb_load.py", line 27, in fetchdialog
    root = plugins.get_tk_root()
  File "/usr/local/Cellar/pymol/2.2.0/libexec/lib/python2.7/site-packages/pymol/plugins/legacysupport.py", line 39, in get_tk_root
    return get_pmgapp().root
  File "/usr/local/Cellar/pymol/2.2.0/libexec/lib/python2.7/site-packages/pmg_qt/mimic_pmg_tk.py", line 125, in root
    tkinter_init()
  File "/usr/local/Cellar/pymol/2.2.0/libexec/lib/python2.7/site-packages/pmg_qt/mimic_pmg_tk.py", line 15, in tkinter_init
    raise RuntimeError('tkinter init failed')
RuntimeError: tkinter init failed

In the same computer have the binaries provided by Schrödinger and the legacy plugins run perfectly.
any idea?

Grouping and object names with comma (,)

Hi developers!

Objects can't have , in their names because functions wouldn't work as intended. Seems that it should be deprecated with an warning. Should be replaced with _ like as in ;.

For instance:

>>> cmd.centerofmass('object,with,comma')
[...]
pymol.CmdException:  Error: mass is zero
 parser: matching commands:
  center        centerofmass

Of course it also doesn't works in PyMOL syntax:

> centerofmass object,with,comma
[...]
ValueError: invalid literal for int() with base 10: 'with'

Now a question, I want to have dots (.) both as group delimiter (explicit groups) and "regular" name. For instance:
protein_name.origin.file.name

protein_name and origin are both groups, but file.name isn't. I messed with set group_auto_mode, tried to cmd.group explicitly and so on. Because of this I tried to replace some .s with ,s.

Error with cube file position and orientation

I am trying to display molecular orbitals with PyMOL and not having much success. Because PyMOL doesn't support any form of molecular orbital input, I first generate cube files with Molden, then load an xyz file and cube file with PyMOL to display the orbitals. When I view both, the orbitals (isosurfaces) are significantly displaced from the molecule. I have tried playing with the origin and axes in the cube file but there is no obvious scaling or change of axes that works. Even if I adjust the origin manually, the orbital orientation is incorrect and changing the sign of the axes does not change the orientation.

This does not appear to be a problem with Molden's cube file generation because I can load both molecular orbital files and cube files with JMol and they match in position and orientation.

comp

It might be an issue with PyMOL assuming a certain format, so here are the header lines from the cube file:

Molden generated cube file                                                      
Orbital    8                                                                    
    7    5.777096   -7.576246   -0.409315                                       
   61   -0.152913    0.031570    0.069615                                          
   61    0.057324    0.150353    0.057732                                          
   61   -0.050565    0.074983   -0.145072                                          
    0    0.000000    0.183783    0.380474   -0.390800                               
    6    0.000000    1.454406    0.692527   -0.672382                               
    6    0.000000   -1.086840    0.068420   -0.109218                               
    1    0.000000    2.539292   -0.680210   -1.760037                               
    1    0.000000    1.624238   -0.472236    1.215533                               
    1    0.000000   -1.797982   -1.836261    0.197003                               
    1    0.000000   -2.431271    1.531131    0.356624

MSVS14 32-bit build error

layer3\MoleculeExporter.cpp currently fails to compile with Visual Studio 2015/17:

MoleculeExporter.cpp
..\mmtf-cpp\include\mmtf/export_helpers.hpp(76): warning C4018: '>=': signed/unsigned mismatch
..\mmtf-cpp\include\mmtf/export_helpers.hpp(77): warning C4018: '>=': signed/unsigned mismatch
layer0\Vector.h(418): warning C4244: 'return': conversion from 'double' to 'float', possible loss of data
layer0\Vector.h(422): warning C4244: 'return': conversion from 'double' to 'float', possible loss of data
layer1\Setting.h(409): warning C4800: 'int': forcing value to bool 'true' or 'false' (performance warning)
layer2\AtomInfo.h(358): warning C4800: 'float *const ': forcing value to bool 'true' or 'false' (performance warning)
layer1\ScrollBar.h(46): warning C4800: 'int': forcing value to bool 'true' or 'false' (performance warning)
layer1\PConv.h(286): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
layer1\PConv.h(301): warning C4800: 'int': forcing value to bool 'true' or 'false' (performance warning)
layer3\MoleculeExporter.cpp(159): error C2666: 'pymol::vla<char>::operator []': 4 overloads have similar conversions
layer0\vla.h(100): note: could be 'const char &pymol::vla<char>::operator [](std::size_t) const'
layer0\vla.h(99): note: or       'char &pymol::vla<char>::operator [](std::size_t)'
layer3\MoleculeExporter.cpp(159): note: while trying to match the argument list '(pymol::vla<char>, int)'
layer3\MoleculeExporter.cpp(1000): error C2666: 'pymol::vla<char>::operator []': 4 overloads have similar conversions
layer0\vla.h(100): note: could be 'const char &pymol::vla<char>::operator [](std::size_t) const'
layer0\vla.h(99): note: or       'char &pymol::vla<char>::operator [](std::size_t)'
layer3\MoleculeExporter.cpp(1000): note: while trying to match the argument list '(pymol::vla<char>, int)'
layer3\MoleculeExporter.cpp(1180): error C2666: 'pymol::vla<char>::operator []': 4 overloads have similar conversions
layer0\vla.h(100): note: could be 'const char &pymol::vla<char>::operator [](std::size_t) const'
layer0\vla.h(99): note: or       'char &pymol::vla<char>::operator [](std::size_t)'
layer3\MoleculeExporter.cpp(1180): note: while trying to match the argument list '(pymol::vla<char>, int)'
layer3\MoleculeExporter.cpp(1269): error C2666: 'pymol::vla<char>::operator []': 4 overloads have similar conversions
layer0\vla.h(100): note: could be 'const char &pymol::vla<char>::operator [](std::size_t) const'
layer0\vla.h(99): note: or       'char &pymol::vla<char>::operator [](std::size_t)'
layer3\MoleculeExporter.cpp(1269): note: while trying to match the argument list '(pymol::vla<char>, int)'
layer3\MoleculeExporter.cpp(1312): warning C4800: 'int': forcing value to bool 'true' or 'false' (performance warning)
layer3\MoleculeExporter.cpp(1320): warning C4800: 'int': forcing value to bool 'true' or 'false' (performance warning)
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed with exit status 2

I worked around with the following patch but it might better to overload pymol::vla<char>::operator []:

diff --git a/layer3/MoleculeExporter.cpp b/layer3/MoleculeExporter.cpp
index b5ac6897..41a8096e 100644
--- a/layer3/MoleculeExporter.cpp
+++ b/layer3/MoleculeExporter.cpp
@@ -156,7 +156,7 @@ public:
     G = G_;

     m_buffer.resize(1280);
-    m_buffer[0] = '\0';
+    m_buffer[(size_t)0] = '\0';

     m_mat_ref.ptr = NULL;
     m_offset = 0;
@@ -997,7 +997,7 @@ struct MoleculeExporterMOL2 : public MoleculeExporter {
     // atom count
     m_counts_offset += sprintf(m_buffer + m_counts_offset, "%d %d %d",
         m_n_atoms, (int) m_bonds.size(), (int) m_substs.size());
-    m_buffer[m_counts_offset] = ' '; // overwrite terminator
+    m_buffer[(size_t)m_counts_offset] = ' '; // overwrite terminator

     // RTI BOND
     // bond_id origin_atom_id target_atom_id bond_type [status_bits]
@@ -1177,7 +1177,7 @@ struct MoleculeExporterMAE : public MoleculeExporter {
   void writeBonds() {
     // atom count
     m_n_atoms_offset += sprintf(m_buffer + m_n_atoms_offset, "m_atom[%d]", m_n_atoms);
-    m_buffer[m_n_atoms_offset] = ' '; // overwrite terminator
+    m_buffer[(size_t)m_n_atoms_offset] = ' '; // overwrite terminator

     if (!m_bonds.empty()) {
       // table with zero rows not allowed
@@ -1266,7 +1266,7 @@ struct MoleculeExporterXYZ : public MoleculeExporter {
   void writeBonds() {
     // atom count
     m_n_atoms_offset += sprintf(m_buffer + m_n_atoms_offset, "%d", m_n_atoms);
-    m_buffer[m_n_atoms_offset] = ' '; // overwrite terminator
+    m_buffer[(size_t)m_n_atoms_offset] = ' '; // overwrite terminator
   }

   bool isExcludedBond(int atm1, int atm2) {

pymol w/ PyQt5 fails to switch to quad-buffered stereo mode

i have installed pymol 2.3.0 using "python3 setup.py install", no errors / warnings.
in it's drop down menu, pymol offers "Quad-Buffered Stereo" display mode.
when starting on our nvidia quadro equipped linux boxes, it seems to recognize the graphics hardware and says "Adapting to Quadro hardware" in it's start up messages; but when clicking Display -> Stereo, it switches to side-by-side stereo; manually choosing Display -> Stereo Mode -> Quad-Buffered Stereo gives message "stereo_mode set to 1" (i.e. quad-buffer) but goes back to normal display mode.
then, i re-installed pymol using "python3 setup.py --glut install" and found that "pymol -w pmg_tk" behaves as expected, i.e., clicking Display -> Stereo activates quad-buffered stereo display.
any way to get quad-buffered stereo working in pyqt5-pymol? as the tk-interface version seems to have other problems and has other drawbacks.

Pymol portable not opening on Windows 10

I am running pymol portable v2.3.0_66 in Windows 10
It never opened and below is the ouput when ran with +2 arguments.

E:\Downloads\PyMOL-2.3.0_66-Win64-portable-py37\PyMOL>PyMOLWin.exe +2Traceback (most recent call last):

File "E:\Downloads\PyMOL-2.3.0_66-Win64-portable-py37\PyMOL\lib\runpy.py", line 193, in _run_module_as_main

"__main__", mod_spec)

File "E:\Downloads\PyMOL-2.3.0_66-Win64-portable-py37\PyMOL\lib\runpy.py", line 85, in _run_code

exec(code, run_globals)

File "E:\Downloads\PyMOL-2.3.0_66-Win64-portable-py37\PyMOL\lib\site-packages\pymol\__main__.py", line 10, in <module>

pymol.launch()

File "E:\Downloads\PyMOL-2.3.0_66-Win64-portable-py37\PyMOL\lib\site-packages\pymol\__init__.py", line 483, in launch

from pmg_qt import pymol_qt_gui

File "E:\Downloads\PyMOL-2.3.0_66-Win64-portable-py37\PyMOL\lib\site-packages\pmg_qt\pymol_qt_gui.py", line 17, in <module>

from pymol.Qt import QtGui, QtCore, QtWidgets

File "E:\Downloads\PyMOL-2.3.0_66-Win64-portable-py37\PyMOL\lib\site-packages\pymol\Qt\__init__.py", line 15, in <module>

from pymol._Qt_pre import *

File "E:\Downloads\PyMOL-2.3.0_66-Win64-portable-py37\PyMOL\lib\site-packages\pymol\_Qt_pre.py", line 2, in <module>

from PyQt5 import QtGui, QtCore, QtOpenGL

ImportError: DLL load failed: The specified procedure could not be found.   

FTBFS: problems in OpenGL libraries

Building of PyMOL 2.2.0 from the tarball here with Mesa-libGL 18.3.1 on openSUSE/Tumbleweed and it fails with the following errors (full build log is attached):

[   40s] gcc -pthread -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-st
rong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DNDEBUG -O2 -W
all -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables
 -fstack-clash-protection -g -DOPENSSL_LOAD_CONF -fwrapv -fPIC -D_PYMOL_LIBPNG -D_PYMOL_INLIN
E -D_PYMOL_VMD_PLUGINS -D_HAVE_LIBXML -DMMTF_MSGPACK_USE_CPP11 -D_PYMOL_FREETYPE -DNO_MMLIBS
-D_PYMOL_NUMPY -Iov/src -Ilayer0 -Ilayer1 -Ilayer2 -Ilayer3 -Ilayer4 -Ilayer5 -Imodules/ceali
gn/src -Ibuild/generated -Icontrib/uiuc/plugins/include -Icontrib/uiuc/plugins/molfile_plugin
/src -Icontrib/mmtf-c -I/usr/lib64/python2.7/site-packages/numpy/core/include -I/usr/include
-I/usr/include/freetype2 -I/usr/include/libxml2 -I/usr/include/python2.7 -c contrib/uiuc/plug
ins/molfile_plugin/src/pqrplugin.c -o build/temp.linux-x86_64-2.7/contrib/uiuc/plugins/molfil
e_plugin/src/pqrplugin.o -Wno-narrowing -Wno-unused-function -Wno-char-subscripts
[   40s] In file included from layer0/os_gl.h:60,
[   40s]                  from layer1/Ortho.h:28,
[   40s]                  from layer0/Err.cpp:22:
[   40s] /usr/include/GL/glext.h:12066:105: error: conflicting declaration 'typedef void (* P
FNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum, GLenum, const GLfloat*)'
[   40s]  typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname,
const GLfloat *params);
[   40s]
                     ^

(repeated many times).

Debug PyMOL scripts

How to debug PyMOL scripts? Could the cmd import check be removed now in 2.x?

When I try to debug with breakpoint() or import pdb; pdb.set_trace() it fails with:

pymol.CmdException: Error: use "from pymol import cmd" instead of "import cmd"

The relevant bits are

class _NoCmdFinder:
def find_spec(self, fullname, path=None, target=None):
if path is None and fullname == 'cmd':
msg = 'use "from pymol import cmd" instead of "import cmd"'
print('Warning: {}'.format(msg))
return None
find_module = find_spec
sys.meta_path.insert(0, _NoCmdFinder())

Seems that simply delete these lines would erradicate the issue. The issue #18 is related to this.

EDIT: just deleted and pdbpp started to work.

request to create releases

First of all, thank you very much for all the work on this great piece of software!

From the commit messages and ChangeLog it becomes clear that version 2.2.0 was released yesterday. Is it be possible to create a release on GitHub when a new version is tagged so that it will show up under "Releases"? That would make life easier for checking/updating to the latest version in for example MacPorts.

Update wiki example

I had no idea how to contribute to the wiki.

Just updated the script pairwise_dist. By the way these examples could be bundled.

from __future__ import print_function
from pymol import cmd, stored, math

def pairwise_dist(sel1, sel2, max_dist, output="N", sidechain="N", show="N"):
	"""
	usage: pairwise_dist sel1, sel2, max_dist, [output=S/P/N, [sidechain=N/Y, [show=Y/N]]]
	sel1 and sel2 can be any to pre-existing or newly defined selections
	max_dist: maximum distance in Angstrom between atoms in the two selections
	--optional settings:
	output: accepts Screen/Print/None (default N)
	sidechain: limits (Y) results to sidechain atoms (default N)
	show: shows (Y) individual distances in pymol menu (default=N)
	"""
	print("")
	cmd.delete("dist*")
	extra=""
	if sidechain=="Y":
		extra=" and not name c+o+n"
	
	#builds models
	m1 = cmd.get_model(sel2+" around "+str(max_dist)+" and "+sel1+extra)
	m1o = cmd.get_object_list(sel1)
	m2 = cmd.get_model(sel1+" around "+str(max_dist)+" and "+sel2+extra)
	m2o = cmd.get_object_list(sel2)

	#defines selections
	cmd.select("__tsel1a", sel1+" around "+str(max_dist)+" and "+sel2+extra)
	cmd.select("__tsel1", "__tsel1a and "+sel2+extra)
	cmd.select("__tsel2a", sel2+" around "+str(max_dist)+" and "+sel1+extra)
	cmd.select("__tsel2", "__tsel2a and "+sel1+extra)
	cmd.select("IntAtoms_"+max_dist, "__tsel1 or __tsel2")
	cmd.select("IntRes_"+max_dist, "byres IntAtoms_"+max_dist)
 
	#controlers-1
	if len(m1o)==0: 
		print("warning, '"+sel1+extra+"' does not contain any atoms.")
		return
	if len(m2o)==0: 
		print("warning, '"+sel2+extra+"' does not contain any atoms.")
		return
	
	#measures distances
	s=""
	counter=0
	for c1 in range(len(m1.atom)):
		for c2 in range(len(m2.atom)):
			distance=math.sqrt(sum(map(lambda f: (f[0]-f[1])**2, zip(m1.atom[c1].coord,m2.atom[c2].coord))))
			if distance<float(max_dist):
				s+="%s/%s/%s/%s/%s to %s/%s/%s/%s/%s: %.3f\n" % (m1o[0],m1.atom[c1].chain,m1.atom[c1].resn,m1.atom[c1].resi,m1.atom[c1].name,m2o[0],m2.atom[c2].chain,m2.atom[c2].resn,m2.atom[c2].resi,m2.atom[c2].name, distance)
				counter+=1
				if show=="Y": cmd.distance (m1o[0]+" and "+m1.atom[c1].chain+"/"+m1.atom[c1].resi+"/"+m1.atom[c1].name, m2o[0]+" and "+m2.atom[c2].chain+"/"+m2.atom[c2].resi+"/"+m2.atom[c2].name)

	#controler-2
	if counter==0: 
		print("warning, no distances were measured! Check your selections/max_dist value")
		return
	
	#outputs
	if output=="S":
		print(s)
	if output=="P":
		f=open('IntAtoms_'+max_dist+'.txt','w')
		f.write("Number of distances calculated: %s\n" % (counter))
		f.write(s)
		f.close()
		print("Results saved in IntAtoms_%s.txt" % max_dist)
	print("Number of distances calculated: %s" % (counter))
	cmd.hide("lines", "IntRes_*")
	if show=="Y": cmd.show("lines","IntRes_"+max_dist)
	cmd.deselect()
  
cmd.extend("pairwise_dist", pairwise_dist)

Changes 1.9 to 2.3 which would break shaders?

The last time I built Pymol open source version it was 1.9 on 32 bit linux and windows 7 (in mingw32 environment). It ran the same in both places, as far as I could tell. Yesterday I tried to build what was current on github, which when built identifies itself as "2.3.0a" on the same machines/environments. It works on linux still, but not windows. The failure mode is just a bunch of error messages, the display is still fine.

The incentive builds are now only 64 bits and I'm wondering if maybe there is now a problem with 32 bits in some situations? Probably not, but thought I'd ask.

The other change I noticed is that the OpenGL code started using the newer 2.0 and up includes, which 1.9.0 didn't. As you can see below, the one machine I have which identifies itself as having GL >2 is the one which now emits the error messages. The case 2 (problem) machine has confusing messages at start, where it says shaders are available, then geometry shaders are not available. Are there two different types of shaders?

These machines are all hardware identical other than that the one running W10 has 4Gb of RAM and the others only 2Gb. I checked and pymol_path has the same shaders contents in the same places in all contexts, which is .../site-packages/pymol/pymol_path/data/shaders. Yesterday's builds all used "git clone" to download the source tree, the 1.9.0 builds were svn from sourceforge. Test file 1du0.cif has some cylinders displayed, and that triggers the messages.

Edit: I just realized that none of the ones which work without error messages have any shaders available. So I con't say that 2.3.0 broke shaders, since I have never seen them work. Need to try an older incentive build (32 bit) on the W7 machine with OpenGL >2.

Case 1:
Linux build, 32 bits, 2.3.0.0 code (yesterday, from github)
Detected OpenGL version 1.4. Shaders and volumes unavailable.
OpenGL graphics engine:
GL_VENDOR: NVIDIA Corporation
GL_RENDERER: Quadro FX 1400/PCIe/SSE2/3DNOW!
GL_VERSION: 1.4 (2.1.2)

load 1du0.cif and it displays without warnings. So all good.


Case 2: (the problem)
Windows 7, MINGW 32 bit build, 2.3.0.0 code (yesterday, from github)
Detected OpenGL version 2.1. Shaders available.
Geometry Shaders not available.
Detected GLSL version 1.2.0
OpenGL graphics engine:
GL_VENDOR: NVIDIA Corporation
GL_RENDERER: Quadro FX 1400/PCIe/SSE2/3DNOW!
GL_VERSION: 2.1.2

load 1du0.cif and it displays with lots of warnings, scrolling by without stop. These are:

GL_ERROR : 0x0502
CShaderPrg_Link-Error: Shader program failed to link name='cylinder'; GL_MAX_VARYING_FLOATS=32 log follows.
Fragment info

0(45) : error C5041: cannot locate suitable resource to bind parameter "color1"
0(46) : error C5041: cannot locate suitable resource to bind parameter "color2"

At top of run it says (when in either a mingw32 or cmd.exe window)
Qt not available, using GLUT/Tk interface
PyMOL(TM) Molecular Graphics System, Version 2.3.0a0.
Copyright (c) Schrodinger, LLC.
All Rights Reserved.

Case 3, Same machine, the older build:
Windows 7, MINGW32 32 bit build, v 1.9.0.0
Detected OpenGL version 2.0 or greater. Shaders available.
Detected GLSL version 1.2.0

load 1du0.cif and it displays with no warnings. Display looks just like 2.3.0.

Case 4:
Windows 10 64 bit. 2.2.0.0 Incentive build.
Detected OpenGL version 1.1. Shaders and volumes unavailable.
OpenGL graphics engine
GL_VENDOR Microsoft Corporation
GL_RENDERER GDI Generic
GL_VERSION 1.1.0

load 1du0.cif and it displays with no warnings. Display looks just like 2.3.0.

Unfortunately Nvidia never wrote a W10 driver for this graphics card, and it falls back to GL 1.1. Have not yet been able to test the 2.3.0a mingw32 binary on this system because it is missing some dll's which keep it from running right. Once that is solved it will be tested there too. I expect though that it will run normally, since it will see only the lower GL.

Build geometry and render separately when importing pymol as a module

Hi, I noticed that when PyMol is in batch mode or is imported as a module, commands like build geometries, coloring and so on seems to be delayed until the first ray trace command is reached. Is there a way to execute commands one by one when pymol is imported as a module?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.