Code Monkey home page Code Monkey logo

pele's Introduction

image

image

Code Health

pele : Python Energy Landscape Explorer

Tools for global optimization and energy landscape exploration.

Source code: https://github.com/pele-python/pele

Documentation: http://pele-python.github.io/pele/

Images: The global minimum energy structure of a 38 atom Lennard-Jones cluster. On the right is a disconnectivity graph showing a visualization of the energy landscape. The competing low energy basins are shown in color.

Images: The global minimum energy structure of a 38 atom Lennard-Jones cluster. On the right is a disconnectivity graph showing a visualization of the energy landscape. The competing low energy basins are shown in color.

pele is a python partial-rewriting of GMIN, OPTIM, and PATHSAMPLE: fortran programs written by David Wales of Cambridge University and collaborators (http://www-wales.ch.cam.ac.uk/software.html).

Description

pele has tools for energy minimization, global optimization, saddle point (transition state) search, data analysis, visualization and much more. Some of the algorithms implemented are:

  1. Basinhopping global optimization
  2. LBFGS minimization (plus other minimizers)
  3. Single ended saddle point search:
    • Hybrid Eigenvector Following
    • Dimer method
  4. Double ended saddle point search
    • Nudged Elastic Band (NEB)
    • Doubly Nudged Elastic Band (DNEB)
  5. Disconnectivity Graph visualization
  6. Structure alignment algorithms
  7. Thermodynamics (e.g. heat capacity) via the Harmonic Superposition Approximation
  8. Transition rates analysis

INSTALLATION

Required packages

for compilation:

  1. fortran compiler
  2. c++ compiler (must support c++11, GCC 4.6 or similar)

python packages:

  1. numpy:

    We use numpy everywhere for doing numerical work. It also installs f2py which is used to compile fortran code into modules callable by python.

  2. scipy:

    For some of the optimizers and various scientific tools

  3. networkx:

    For graph functionality. https://networkx.lanl.gov

  4. matplotlib:

    For making plots (e.g. disconnectivity graphs)

  5. SQLAlchemy 0.7:

    For managing database of stationary points. http://www.sqlalchemy.org/

  6. hungarian:

    For permutational alignment

  7. pyro4:

    For parallel jobs

  8. scikits.sparse: optional

    For use of sparse Cholesky decomposition methods when calculating rates

  9. pymol: optional

    For viewing molecular structures

All the above packages can be installed via the python package manager pip (or easy_install). However, some of the packages (numpy, scipy) have additional dependencies and it can be more convenient to use the linux package manager (apt, yum, ...).

If you want to use the gui you will additionally need:

  1. qt4 and qt4 python bindings
  2. opengl python bindings

The Ubuntu packages (apt-get) for these are: python-qt4, python-opengl, and python-qt4-gl

In fedora Fedora (yum) you will want the packages: PyQt4, and PyOpenGl

Installing prerequisites on Ubuntu

If you're running ubuntu, you can get all the prerequisites with the following commands:

$ sudo apt-get install python-numpy python-scipy python-matplotlib python-qt4 python-opengl python-qt4-gl python-pip pymol
$ pip install --user networkx sqlalchemy hungarian pyro4 brewer2mpl cython

(in the above, the flag --user will install localy, in directory $HOME/.local/)

Compilation

Compilation is required as many of the computationally intensive parts (especially potentials) are written in fortran and c++. Theoretically you should be able to use any fortran compiler, but we mostly use gfortran and GCC, so it's the least likely to have problems. This package uses the standard python setup utility (distutils). There are lots of options for how and where to install. For more information:

$ python setup.py --help 
$ python setup.py --help-commands

Developers probably want to install "in-place", i.e. build the extension modules in their current directories:

$ python setup.py build_ext -i --fcompiler=gfortran

Users can install pele in the standard python package location:

$ python setup.py build --fcompiler=gfortran
$ python setup.py install [--user]

where --user installs it in $HOME/.local/

We now have an alternate form of compilation that uses CMake to compile the c++ libraries. This is much faster because it can be done in parallel and can take advantage of common libraries. Simply use the file setup_with_cmake.py in place of setup.py

PYTHONPATH

If you do an in-place install, make sure to add the install directory to your PYTHONPATH environment variable. This is not necessary if you install to a standard location.

Installing on OS X

Most things installed very easily on my Macbook Air OS X Version 10.9 but it turns out that python distutils doesn't play very nicely with clang, the osx c compiler.

I was seeing erros of the type:

error: no type named 'shared_ptr' in namespace 'std'

This is a strange error because I'm using clang version 5.1 and the c++11 class shared_ptr has been part of clang since 3.2. Some googling suggested I try using the flag '-stdlib=libc++', which gave me the error:

clang: error: invalid deployment target for -stdlib=libc++ (requires OS X 10.7 or later)

Again, very strange becuase I have OS X version 10.9. But this error message eventually led me to figure out how to get past this. It appears that distutils is setting the environment variable MACOSX_DEPLOYMENT_TARGET to have the wrong value. I'm still not sure why, but setting the environment variable correctly before running setup.py fixes the problem. So, for an in-place build I would run

MACOSX_DEPLOYMENT_TARGET=10.9 python setup.py build_ext -i

Installing GUI on OS X

If you want to use the gui you have to install PyQt4 and its dependencies. This is not as simple as it should be, but is actually not too hard. There is a good guide at http://www.pythonschool.net/mac_pyqt/. I had to install from source. This method is also detailed at http://sharewebegin.blogspot.co.uk/2013/06/install-pyqt-on-mac-osx-lion1084.html. This worked even though I'm using osx Mavericks

  1. Ensure you're using a decent python installation, the osx pre-packaged one won't suffice. I use the Enthought Canopy python distribution https://www.enthought.com/products/canopy/
  2. Install Qt4.8 using the pre-compiled binary http://qt-project.org/downloads
  3. Install SIP from source. http://www.riverbankcomputing.co.uk/software/sip/download

    In the directory you unpack the tar.gz file run the following commands :

    python configure.py --arch=x86_64
    make
    sudo make install

    You may need to use the -d flag to specify the install directory, but for me it selected the correct location. If you get the error "SIP requires Python to be built as a framework", don't worry, you can ignore this (http://python.6.x6.nabble.com/installing-sip-on-os-x-with-canopy-td5037076.html). Simply comment out the following lines in sipconfig.py. They were at roughly line number 1675 for me. :

    if "Python.framework" not in dl:
        error("SIP requires Python to be built as a framework")
  4. Install PyQt4 from source http://www.riverbankcomputing.co.uk/software/pyqt/download .

    In the directory you unpack the tar.gz file run the following commands :

    python configure-ng.py
    make -j8
    sudo make install

    The -j8 flag specifies parallel compilation. You may need to use the -q flag to specify the location of the qmake program. Pass the location of the qmake file that is in the directory of Qt, which you installed in step 2.

  5. You're done! Test if it works by running examples/gui/ljsystem.py

If you have updates or more complete installation instructions please email or submit a pull request.

Running

You can find examples of how to run pele in the examples folder. More information can be found in the documentation at

http://pele-python.github.com/pele/

Notes

pele has recently been renamed from pygmin

Tests

Pele has a large suite of unit tests. They can be run using the nose testing framework (which can be installed using pip). The tests are run from the top directory with this command:

nosetests pele

We also have test for our c++ code writen in pure c++. These are stored in the folder cpp_tests/ and can be compiled using CMake.

pele's People

Contributors

andyballard avatar farrelljd avatar jdf43 avatar js850 avatar kjs73 avatar lenhsherr avatar smcantab avatar sniblett402 avatar ss2029 avatar wcedison 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

Watchers

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

pele's Issues

array error

if a and b are arrays

a.wrap(b)
b.wrap(a)

will increase the reference count twice erroneously.

Cython classes are non-pickable

Pele Cython classes are currently non pickable, they require a reduce method to be able to recreate a copy of the original object after being unpicked. This is because Pickle does not know anything about the nature of extension types. I came across this problem trying to parallelise some code with multiprocessing.

Official documentation about the reduce method is available here
https://docs.python.org/2/library/pickle.html#pickling-and-unpickling-extension-types
I found it not very informative though due to lack of examples and in general not many examples are available on the web, this is a point lamented even by the cython developers.

This is a minimal example of the approach I have taken so far:

cdef class PickableCythonClass:
    cdef potential
    cdef coords
    cdef __cinit__(pot, x):
        cdef _pele.BasePotential potential = pot
        cdef np.ndarray[dtype='d'] coords = x
        self.potential = potential
        self.coords = x
   cdef __reduce__(self):
          return (PickableCythonClass,(self.potential, self.coords))
          #note that the attributes have been passed as a tuple

if you think there's a better approach, please let me know.

Query about Pele and McPele

Dear Jacob,

I came across reference for Pele in Dr. Wales's paper during my research.

McPele as described on github is a, Monte Carlo general purpose framework and MPI/mpi4py based Replica Exchange Method.

I am working with GSHMC (Generalized Shadow Hybrid Monte Carlo) method. I was wondering if I can use generated output to be processed via Pele.

I would appreciate your response.

Mamta

lbfgs changes

I made some structural updates to LBFGS and MYLBFGS. It shouldn't affect anything, but it is a possibility to be aware of.

adjustk_freq

The update frequency for adjusting k in the NEB routine seems to be hard-coded (as 5; line 391 of _NEB.py) rather than being set to adjustk_freq as would seem logical.

Conflict with munkres 1.1.2

The latest Pele build will have conflict with python 2 because of Munkres 1.1.2 will no longer support python 2.0, meaning there will be syntax error if one is trying to build using python2 (affect travis and correspondin GUI)

References with other projects that have similar problem using Munkres:
beetbox/beets#3154

@js850 please note this will also lead to other pull request to fail as the auto-build system will consider all fix using python2 to fail by default if Munkres version is >1.1

Traceback (most recent call last):
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
addr.filename, addr.module)
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/potentials/tests/test_booth.py", line 4, in
from pele.potentials.test_functions import BoothSystem
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/potentials/test_functions/init.py", line 2, in
from ._beale import Beale, BealeSystem
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/potentials/test_functions/_beale.py", line 5, in
from pele.systems import BaseSystem
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/systems/init.py", line 161, in
from .basesystem import *
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/systems/basesystem.py", line 3, in
from pele.landscape import DoubleEndedConnect
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/landscape/init.py", line 61, in
from .local_connect import *
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/landscape/local_connect.py", line 4, in
from pele.transition_states import findTransitionState, minima_from_ts
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/transition_states/init.py", line 79, in
from ._interpolate import *
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/transition_states/_interpolate.py", line 7, in
from pele.mindist import MeasureAtomicCluster
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/mindist/init.py", line 111, in
from .backward_compatibility import CoMToOrigin
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/mindist/backward_compatibility.py", line 2, in
from .minpermdist_stochastic import MinPermDistCluster
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/mindist/minpermdist_stochastic.py", line 4, in
from .exact_match import StandardClusterAlignment
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/mindist/exact_match.py", line 6, in
from ._minpermdist_policies import TransformAtomicCluster, MeasureAtomicCluster
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/mindist/_minpermdist_policies.py", line 3, in
from .permutational_alignment import find_best_permutation
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/pele/mindist/permutational_alignment.py", line 23, in
import munkres
File "/home/travis/miniconda/envs/pelenv/lib/python2.7/site-packages/munkres.py", line 79
def pad_matrix(self, matrix: Matrix, pad_value: int=0) -> Matrix:
^
SyntaxError: invalid syntax

minperm.f90

there is a problem with minperm.f90. I'm not sure what it is, but two mac users have reported it. I've fixed all the warnings, hopefully that will resolve it.

How to only create a graph without a database?

Hey!

What is the minimal example (without running an optimization algorithm)?
Is it correct that we have to implement:

  1. BaseSystem() has to be implemented, which contains the following required methods:
    a. get_potential()
    b. get_mindist()
    c. get_orthogonalize_to_zero_eigenvectors()
    d. get_double_ended_connect()
  2. ConnectManager() that connects the minima.

With the implementation of BaseSystem, I am running into a lot of errors related to Energy and Potential functions,
while the documentation says:
"Note that we use the language “energy landscape” because it’s the language most natural for our fields of physics and chemistry, but most of these tools are equally applicable for working with any smooth scalar function in N dimensions."

Tessa

Error writing the sqlite database file

I am using ubuntu 18.04 on Windows subsystem for linux/python 2.7 and sqlalchemy 0.7.
I am running the example on 17 atom LJ system:
from pele.systems import LJCluster
natoms=17
system=LJCluster(natoms)
database=system.create_database('lj17.sqlite')
bh=system.get_basinhopping(database)
bh.run(10)

Doing this writes an empty database file and gives the error below:
traceback (most recent call last):
File "bh.py", line 4, in
database=system.create_database('lj17.sqlite')
File "/home/gn203/.local/lib/python2.7/site-
packages/pele/systems/basesystem.py", line 234, in create_database
db = Database(**kwargs)
File "/home/gn203/.local/lib/python2.7/site-packages/pele/storage/database.py", line 432, in init
self._check_schema_version()
File "/home/gn203/.local/lib/python2.7/site-packages/pele/storage/database.py", line 477, in _check_schema_version
"%d (%d). Please use migrate_db.py in pele/scripts to update database"%(schema, _schema_version))
IOError: database schema outdated, current (newest) version: 0 (2). Please use migrate_db.py

Running migrate_db.py on the empty lj17.sqlite error file generates a further error:

current version: 0
newest version: 2
migrating from database version 0 to 1
Traceback (most recent call last):
File "/home/gn203/pkg/pele-master/scripts/migrate_db.py", line 63, in
migrate(dbfile)
File "/home/gn203/pkg/pele-master/scripts/migrate_db.py", line 47, in migrate
schema = migrate_script[schema](connection, schema)
File "/home/gn203/pkg/pele-master/scripts/migrate_db.py", line 13, in from_0_to_1
connection.execute("ALTER TABLE tbl_minima ADD fvib FLOAT;")
File "/home/gn203/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1294, in execute
params)
File "/home/gn203/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1471, in _execute_text
statement, parameters
File "/home/gn203/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1535, in _execute_context
context)
File "/home/gn203/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1528, in _execute_context
context)
File "/home/gn203/.local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 325, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (OperationalError) no such table: tbl_minima 'ALTER TABLE tbl_minima ADD fvib FLOAT;' ()

make tools to color disconnectivity graphs

The functionality is already there (it's already done in the gui), but we should make tools to color automatically via a calculated value. We should start by replicating what is done in disconnectionDPS

color minima by predefined groups:

! Colour minima in sections if required.
! For each node, check all minima for which the node is a parent.
! If all minima are contained on one of the lists, the node 
! will be coloured to represent that list.  
! If any minimum is not contained on one of the lists, the node
! is not coloured. 
! If all minima are contained on lists but more than one list 
! is represented, the node will be the colour of the last list
! as specified on the input line in dinfo.

This can be implemented by a function which takes a list of groups of minima as input.

Also, color minima by order parameter:

! Colour minima by value of DPMARKNODE, with input values in the range 0.0d0 to 1.0d0
! For each node, check all minima for which the node is a parent.
! The node will be the colour of the minimum with the highest value 

This can be implemented by a function which accept a function minimum_to_value as input

pele name change

Unfortunately there is a group at the Barcelona supercomputer center that has a software project PELE - protein energy landscape explorer (https://pele.bsc.es/pele.wt/about). They've been around a lot longer than we have, so we're going to have to change our name.

If anyone has ideas for new names, or wants to register a preference, please let use know, either in this issue, or at the google docs spreadsheet

https://docs.google.com/spreadsheets/d/1hxkp2Rj_gdbAxJRCuOwdhaAgJJpZ6p8ymBkLaSROvuI/edit?usp=sharing

setup.py parallel compiling

You have probably thought about this at some point, but in case you didn't come across this, I found a monkey patch for distutils to prallelise the compilation. This would be particularly useful during development as it takes a while for the code to compile. This is the monkey patch, I couldn't get it to work, but I am not too aware of the strategy used to compile now, I am sure we can get it to work. Also a clean function would be really nice, especially to recompile after when modifying the cython .pxd files.

# http://stackoverflow.com/a/13176803
# monkey-patch for parallel compilation
import multiprocessing
import multiprocessing.pool
def parallelCCompile(self, sources, output_dir=None, macros=None,
        include_dirs=None, debug=0, extra_preargs=None, extra_postargs=None,
        depends=None):
    # those lines are copied from distutils.ccompiler.CCompiler directly
    macros, objects, extra_postargs, pp_opts, build = \
            self._setup_compile(output_dir, macros, include_dirs, sources,
                    depends, extra_postargs)
    cc_args = self._get_cc_args(pp_opts, debug, extra_preargs)
    # parallel code
    N_cores = multiprocessing.cpu_count()
    def _single_compile(obj):
        try: src, ext = build[obj]
        except KeyError: return
        self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
    # convert to list, imap is evaluated on-demand
    list(multiprocessing.pool.ThreadPool(N_cores).imap(_single_compile,objects))
    return objects
#
import distutils.ccompiler
distutils.ccompiler.CCompiler.compile=parallelCCompile

hungarian package installation

I'm getting an error on install the hungarian package using python 3.6:

-bash-4.2$ pip install hungarian
Collecting hungarian
Downloading https://files.pythonhosted.org/packages/b2/f9/9cccbbb8c724c4eff5d006bd3fe185e91d121caf2ffd345fe31421f1c886/hungarian-0.2.3.tar.gz
Building wheels for collected packages: hungarian
Running setup.py bdist_wheel for hungarian ... error
Complete output from command /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-install-2diisrml/hungarian/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/pip-wheel-ue8vcxk1 --python-tag cp36:
running bdist_wheel
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building extension "hungarian" sources

  • nothing done with h_files = ['asp.h']
    build_src: building npy-pkg config files
    running build_ext
    customize UnixCCompiler
    customize UnixCCompiler using build_ext
    customize UnixCCompiler
    customize UnixCCompiler using build_ext
    building 'hungarian' extension
    compiling C++ sources
    C compiler: g++ -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC

compile options: '-I/nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include -I/nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/include/python3.6m -c'
g++: asp.cpp
asp.cpp: In function ‘void asp(int, cost**, long int*, long int*)’:
asp.cpp:67:3: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for(l= 0;l<n;l++)
^~~
asp.cpp:73:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
col_mate[k]= -1;
^~~~~~~~
asp.cpp:120:8: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for(j= l+1;j<n;j++)
^~~
asp.cpp:122:9: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
goto breakthru;
^~~~
g++: hungarian.cpp
In file included from /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/ndarraytypes.h:1816:0,
from /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/ndarrayobject.h:18,
from /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/arrayobject.h:4,
from hungarian.cpp:8:
/nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
#warning "Using deprecated NumPy API, disable it by "
^~~~~~~
hungarian.cpp: In function ‘PyObject* inithungarian()’:
hungarian.cpp:98:53: error: ‘Py_InitModule’ was not declared in this scope
(void) Py_InitModule("hungarian", HungarianMethods);
^
hungarian.cpp: In function ‘int main(int, char**)’:
hungarian.cpp:106:28: error: cannot convert ‘char*’ to ‘wchar_t*’ for argument ‘1’ to ‘void Py_SetProgramName(wchar_t*)’
Py_SetProgramName(argv[0]);
^
hungarian.cpp: In function ‘PyObject* inithungarian()’:
hungarian.cpp:100:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
In file included from /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/ndarraytypes.h:1816:0,
from /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/ndarrayobject.h:18,
from /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/arrayobject.h:4,
from hungarian.cpp:8:
/nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
#warning "Using deprecated NumPy API, disable it by "
^~~~~~~
hungarian.cpp: In function ‘PyObject* inithungarian()’:
hungarian.cpp:98:53: error: ‘Py_InitModule’ was not declared in this scope
(void) Py_InitModule("hungarian", HungarianMethods);
^
hungarian.cpp: In function ‘int main(int, char**)’:
hungarian.cpp:106:28: error: cannot convert ‘char*’ to ‘wchar_t*’ for argument ‘1’ to ‘void Py_SetProgramName(wchar_t*)’
Py_SetProgramName(argv[0]);
^
hungarian.cpp: In function ‘PyObject* inithungarian()’:
hungarian.cpp:100:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
error: Command "g++ -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include -I/nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/include/python3.6m -c hungarian.cpp -o build/temp.linux-x86_64-3.6/hungarian.o -MMD -MF build/temp.linux-x86_64-3.6/hungarian.o.d" failed with exit status 1


Failed building wheel for hungarian
Running setup.py clean for hungarian
Failed to build hungarian
Installing collected packages: hungarian
Running setup.py install for hungarian ... error
Complete output from command /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-install-2diisrml/hungarian/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-record-itya3_p3/install-record.txt --single-version-externally-managed --compile:
running install
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building extension "hungarian" sources
- nothing done with h_files = ['asp.h']
build_src: building npy-pkg config files
running build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
building 'hungarian' extension
compiling C++ sources
C compiler: g++ -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC

compile options: '-I/nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include -I/nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/include/python3.6m -c'
g++: asp.cpp
asp.cpp: In function ‘void asp(int, cost**, long int*, long int*)’:
asp.cpp:67:3: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
   for(l= 0;l<n;l++)
   ^~~
asp.cpp:73:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
    col_mate[k]= -1;
    ^~~~~~~~
asp.cpp:120:8: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
        for(j= l+1;j<n;j++)
        ^~~
asp.cpp:122:9: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
         goto breakthru;
         ^~~~
g++: hungarian.cpp
In file included from /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/ndarraytypes.h:1816:0,
                 from /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/ndarrayobject.h:18,
                 from /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                 from hungarian.cpp:8:
/nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
 #warning "Using deprecated NumPy API, disable it by " \
  ^~~~~~~
hungarian.cpp: In function ‘PyObject* inithungarian()’:
hungarian.cpp:98:53: error: ‘Py_InitModule’ was not declared in this scope
   (void) Py_InitModule("hungarian", HungarianMethods);
                                                     ^
hungarian.cpp: In function ‘int main(int, char**)’:
hungarian.cpp:106:28: error: cannot convert ‘char*’ to ‘wchar_t*’ for argument ‘1’ to ‘void Py_SetProgramName(wchar_t*)’
   Py_SetProgramName(argv[0]);
                            ^
hungarian.cpp: In function ‘PyObject* inithungarian()’:
hungarian.cpp:100:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
In file included from /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/ndarraytypes.h:1816:0,
                 from /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/ndarrayobject.h:18,
                 from /nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                 from hungarian.cpp:8:
/nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
 #warning "Using deprecated NumPy API, disable it by " \
  ^~~~~~~
hungarian.cpp: In function ‘PyObject* inithungarian()’:
hungarian.cpp:98:53: error: ‘Py_InitModule’ was not declared in this scope
   (void) Py_InitModule("hungarian", HungarianMethods);
                                                     ^
hungarian.cpp: In function ‘int main(int, char**)’:
hungarian.cpp:106:28: error: cannot convert ‘char*’ to ‘wchar_t*’ for argument ‘1’ to ‘void Py_SetProgramName(wchar_t*)’
   Py_SetProgramName(argv[0]);
                            ^
hungarian.cpp: In function ‘PyObject* inithungarian()’:
hungarian.cpp:100:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
error: Command "g++ -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages/numpy/core/include -I/nfs/grid/software/pharmsci/apps/Linux-x86_64-RHEL7/anaconda3/envs/my-rdkit-env/include/python3.6m -c hungarian.cpp -o build/temp.linux-x86_64-3.6/hungarian.o -MMD -MF build/temp.linux-x86_64-3.6/hungarian.o.d" failed with exit status 1

Parallelization

We should parallelize the central loops in the cell list container, using either atom or spatial decomposition
(see e.g. doi:10.1006/jcph.1995.1039).

Missing an explicit mention to Cython dependency in documentation

I found that Cython is required for installation but is not mentioned in the list of dependencies. It is included in the apt instructions for Ubuntu users; however, it won't be apparent when using other OS until you bump with an error. Since most dependencies are python-based, generating a precompiled CONDA environment would be great. For example, look at what the PyEmma package does:

http://www.emma-project.org/latest/INSTALL.html

point group order is incorrect for high symmetry clusters

For the LJ75 global minimum it computes 60 when the actual result is 20.

For the LJ6 global minimum it computes 4 when the actual result is 48.

For the LJ13 global minimum the result is correct (pgorder = 120)

The "correct" values are from OPTIM and are assumed to actually be correct.

import gmin_ as GMIN; No module named gmin_

Hi,

I was trying to use the TIP4P water system provided the sample code provided in playground/gmin_tip4p/tip4p_system.py.
But, the following error is returned

---->  import gmin_ as GMIN
ImportError: No module named gmin_

I am wondering what I should do next. And how could I install gmin_ module ?

Thanks very much for providing such a wonderful package! Thanks for your help!!

FindLowestEigenvector cannot set parameter from system class

There is a parameter, dx, that seems to be hardcoded in FindLowestEigenvector, see _find_lowest_eig.L174

In the class FindLowestEigenvector this is set to 1e-6 but in the callable function findLowestEigenvector this is set to 1e-3. It turns out that I get a lot of errors (lbfgs not able to find a good stepsize followed by a failure of refine transition state search) when refining the transition state using the default value of 1e-6, but everything seems to be working fine for 1e-3. (this is for NN with a single layer)

It does not seem possible to adapt this value from the system class since it is not a quench parameter. Am I missing something? Or should I hard code it to 1e-3?

Minimizer associated with NEB

@js850 it seems that the optimizer used by NEB is mylbfgs, but your comment seems to recommend not to:

" scipy.lbfgs_b seems to work with NEB pretty well, but lbfgs_py and mylbfgs tend to fail. If you must use one of those try, e.g. maxErise = 1., maxstep=0.01, tol=1e-2 "

at this line:

https://github.com/pele-python/pele/blob/master/pele/transition_states/_NEB.py#L161

is mylfbgs actually the default? Should I change it to scipy.lbfgs_b? Just looking for ways to make NEB a bit faster, it's very slow at the moment for my application

Use Charged Molecule with (Charged?) LJ Potentials

a question concerning the documentation, I am trying to run simulation on charged lj-potential on charged particle (e.g. H3O) with GUI, though the documentation only cover as much as standard lj potential with GUI, and I am hoping to have example in documentation to call from charged lj potential (if this exists in pele) to run simulation that shows molecules (or at least the disconnectivity graph will change according due to charge even if only molecules are treated as single particle instead of moleules that can show angles between the bonds.

Revert recent changes

Kyle, I don't know what that series of pull requests / revers was, but I just reset the master branch to what it was an 20 minutes ago. I saved the state of master in the new branch contaminated_master. If anyone has pulled in the last 20 minutes your local version of master will be contaminated. Be sure to fix your local master before pushing.

These are the confusing PRs #110 #109

Matplotlib update to version 2.0

A placeholder issue for matplotlib changes that might break our existing calls. Not sure exactly which changes might need making and I don't currently have time to test it out.

Get rcut from potential (and pass it on to cell lists?)

Could it make sense to have the potentials return a good rcut and possibly to pass it on directly to the cell lists when used?
Maybe that would make it safer and easier to have the correct rcut and it is a property of the potentials in the end.

Combined distance policy

Using the periodic_distance policy everywhere introduces significant overhead, since this method is very central to the package. In the inner cells, a normal cartesian distance would suffice.
Furthermore, I am working on an additional boundary condition right now, that further complicates the distance calculation and introduces more overhead.

Therefore, I propose a combined distance policy. Using this policy, one (simple) distance policy for inner cells can be set and additional ones for each boundary (i.e. x, y and z, maybe even x+/x-, y+/y- and z+/z-). Using a combined distance policy as an interface between CellLists and DistanceInterface reduces the refactoring necessary to a minimum and enables extensibility in the future.

Ceres solver

I just came across the ceres solver by Google (they've been using it in production for 4 years now). Apparently it is extremely efficient and implements a number of line searches (SD, CG, LBFGS etc.) and one can enforce monotonic steps. There is already a library implementing python bindings for ceres on github. Sounds like something that might be worth exploring.

http://ceres-solver.org/index.html

Replace NotImplementedError with abstract base classes where appropriate

Is there any reason for me not to do this? Some of the usages of NotImplementedError seem a bit odd, but in quite a few instances, it's because a class is only designed to be subclassed and shouldn't be instantiated itself.

The abc module is designed to handle this and just requires setting __metaclass__ and the @abc.abstractmethod decorator to abstract methods as described here: http://pymotw.com/2/abc/

IndexError in disconnectivity_graph.py", line 643

Hey!

I'm eager to start working with the disconnectivity graphs.
I've created a minimal example, but I receive an error:
pele/utils/disconnectivity_graph.py", line 643, in __init__ self.gmin0 = elist[0][1] IndexError: list index out of range

Here's the example:

from pele.systems import BaseSystem
class MySystem(BaseSystem):
    def __init__(self, natoms):
        super(MySystem, self).__init__()
        self.natoms = natoms
        self.params.database.accuracy = 0.001

    def get_potential(self):
        return MyPot(self.natoms)

import numpy as np
natoms = 8
system = MySystem(natoms)
database = system.create_database()

from pele.utils.disconnectivity_graph import DisconnectivityGraph, database2graph
import matplotlib.pyplot as plt
#convert the database to a networkx graph
graph = database2graph(database)
dg = DisconnectivityGraph(graph, nlevels=3, center_gmin=True)
dg.calculate()
dg.plot()
plt.show()

Incorrect arguments to BHRunner

In pele/gui/bhrunner.py:

if __name__ == '__main__': 
    runner = BHRunner(onMinimumAdded=found)
    runner.start()
    #bhp.start()
    #while(True):
    #    pass# bhp.is_alive():
        #print "is alive"
    #bhp.join()

BHRunner's init has a conflicting signature:

class BHRunner(QtCore.QObject):
    """manage a single basinhopping run in a separate process

    This class spawns the basinhopping job in a separate process and receives
    the minima found through a pipe
    """
    def __init__(self, system, database, nsteps=None, on_finish=None):
        QtCore.QObject.__init__(self)
        self.system = system
        self.database = database
        self.daemon = True
        self.nsteps = nsteps

        #child_conn = self
        self.bhprocess = None

        self.on_finish = Signal()
        if on_finish is not None:
            self.on_finish.connect(on_finish)

License for images?

I'm looking for an example disconnectivity graph I can show in a class (and make available in the course materials on GitHub for free). You have a perfect one in your docs (an LJ 36 cluster I believe) and I'd love to be able to show it, but the licensing terms are not clear (the code is GPL but the non-code content isn't under a license I see). Any chance you're willing to put clear reuse terms on those? e.g. CC-BY or CC-BY-SA or similar?

(I basically just want to be able to show your image, say whose image it was, explain what it shows, and link back to where it came from, e.g. in my github.com/mobleylab/drug-computing course materials).

Installation errors on MacOS X

I am trying to install pele on my MacOS X (Sierra), and I get the following error. I am copy-pasting everything.

Can someone tell me how to correct this?

$ python setup_with_cmake.py build_ext -i --fcompiler=gfortran
Namespace(compiler=None, j=4) ['setup_with_cmake.py', 'build_ext', '-i', '--fcompiler=gfortran', '-c', 'unix']
fatal: Not a git repository (or any of the parent directories): .git
Cythonizing sources
Processing pele/angleaxis/_cpp_aa.pyx
cython --fast-fail --cplus -I /Users/apal/Downloads/pele-master/pele/potentials -v -o _cpp_aa.cxx _cpp_aa.pyx
Compiling /Users/apal/Downloads/pele-master/pele/angleaxis/_cpp_aa.pyx
warning: /Users/apal/Downloads/pele-master/pele/potentials/_pele.pxd:68:40: Buffer unpacking not optimized away.
warning: /Users/apal/Downloads/pele-master/pele/potentials/_pele.pxd:68:40: Buffer unpacking not optimized away.
warning: /Users/apal/Downloads/pele-master/pele/potentials/_pele.pxd:89:47: Buffer unpacking not optimized away.
warning: /Users/apal/Downloads/pele-master/pele/potentials/_pele.pxd:89:47: Buffer unpacking not optimized away.
warning: /Users/apal/Downloads/pele-master/pele/potentials/_pele.pxd:121:43: Buffer unpacking not optimized away.
warning: /Users/apal/Downloads/pele-master/pele/potentials/_pele.pxd:121:43: Buffer unpacking not optimized away.

Error compiling Cython file:
------------------------------------------------------------
...
cdef inline np.ndarray[double, ndim=1] pele_array_to_np(Array[double] v):
    """copy the data in a pele::Array into a new numpy array
    """
    cdef int i
    cdef int N = v.size()
    cdef np.ndarray[double, ndim=1] vnew = np.zeros(N)
                                            ^
------------------------------------------------------------

/Users/apal/Downloads/pele-master/pele/potentials/_pele.pxd:84:45: cimported module has no attribute 'zeros'
Traceback (most recent call last):
  File "/Users/apal/Downloads/pele-master/cythonize.py", line 200, in <module>
    main()
  File "/Users/apal/Downloads/pele-master/cythonize.py", line 197, in main
    find_process_files(root_dir)
  File "/Users/apal/Downloads/pele-master/cythonize.py", line 184, in find_process_files
    process(cur_dir, fromfile, tofile, function, hash_db)
  File "/Users/apal/Downloads/pele-master/cythonize.py", line 160, in process
    processor_function(fromfile, tofile)
  File "/Users/apal/Downloads/pele-master/cythonize.py", line 78, in process_pyx
    raise Exception('Cython failed')
Exception: Cython failed
Traceback (most recent call last):
  File "setup_with_cmake.py", line 106, in <module>
    generate_cython()
  File "setup_with_cmake.py", line 104, in generate_cython
    raise RuntimeError("Running cythonize failed!")
RuntimeError: Running cythonize failed!

Error installing in ubuntu 18.04.1 LTS

hi, I had been using pele for a undergraduate project in 2017 on ubuntu OS, but I have encountered an error when I am reopening the project and installing the module on the latest system.

since it's a newly installed system, I have used essential-build, update and upgrade to get the latest version of the library.

The following is the log of the error, I have also tried switching the python version from 3.4 to 2.7, I wonder if there's any specific version of various libraries I need to get ?

easc0000@easc0000-System-Product-Name:~/Documents/pele-master$ python setup.py
Cythonizing sources
Processing pele/utils/_pressure_tensor.pyx
cython --fast-fail --cplus -I /home/easc0000/Documents/pele-master/pele/potentials -v -X embedsignature=True -o _pressure_tensor.cxx _pressure_tensor.pyx
Compiling /home/easc0000/Documents/pele-master/pele/utils/_pressure_tensor.pyx
/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Main.py:367: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/easc0000/Documents/pele-master/pele/utils/_pressure_tensor.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
warning: /home/easc0000/Documents/pele-master/pele/potentials/_pele.pxd:70:40: Buffer unpacking not optimized away.
warning: /home/easc0000/Documents/pele-master/pele/potentials/_pele.pxd:70:40: Buffer unpacking not optimized away.
warning: /home/easc0000/Documents/pele-master/pele/potentials/_pele.pxd:91:47: Buffer unpacking not optimized away.
warning: /home/easc0000/Documents/pele-master/pele/potentials/_pele.pxd:91:47: Buffer unpacking not optimized away.
warning: /home/easc0000/Documents/pele-master/pele/potentials/_pele.pxd:123:43: Buffer unpacking not optimized away.
warning: /home/easc0000/Documents/pele-master/pele/potentials/_pele.pxd:123:43: Buffer unpacking not optimized away.
Traceback (most recent call last):
File "/home/easc0000/.local/bin/cython", line 11, in
sys.exit(setuptools_main())
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Main.py", line 788, in setuptools_main
return main(command_line = 1)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Main.py", line 806, in main
result = compile(sources, options)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Main.py", line 778, in compile
return compile_multiple(source, options)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Main.py", line 755, in compile_multiple
result = run_pipeline(source, options, context=context)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Main.py", line 513, in run_pipeline
err, enddata = Pipeline.run_pipeline(pipeline, source)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Pipeline.py", line 355, in run_pipeline
data = run(phase, data)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Pipeline.py", line 335, in run
return phase(data)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Pipeline.py", line 52, in generate_pyx_code_stage
module_node.process_implementation(options, result)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/ModuleNode.py", line 143, in process_implementation
self.generate_c_code(env, options, result)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/ModuleNode.py", line 379, in generate_c_code
self.body.generate_function_definitions(env, code)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Nodes.py", line 442, in generate_function_definitions
stat.generate_function_definitions(env, code)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Nodes.py", line 1983, in generate_function_definitions
self.generate_function_body(env, code)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Nodes.py", line 1745, in generate_function_body
self.body.generate_execution_code(code)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Nodes.py", line 448, in generate_execution_code
stat.generate_execution_code(code)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/UtilNodes.py", line 326, in generate_execution_code
self.body.generate_execution_code(code)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Nodes.py", line 6909, in generate_execution_code
self.body.generate_execution_code(code)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Nodes.py", line 448, in generate_execution_code
stat.generate_execution_code(code)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Nodes.py", line 5169, in generate_execution_code
self.generate_assignment_code(code)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/Nodes.py", line 5466, in generate_assignment_code
self.lhs.generate_assignment_code(self.rhs, code)
File "/home/easc0000/.local/lib/python3.6/site-packages/Cython/Compiler/ExprNodes.py", line 4105, in generate_assignment_code
self.result() if self.lhs.is_pyobject else None,
AttributeError: 'IndexNode' object has no attribute 'lhs'
Traceback (most recent call last):
File "/home/easc0000/Documents/pele-master/cythonize.py", line 200, in
main()
File "/home/easc0000/Documents/pele-master/cythonize.py", line 197, in main
find_process_files(root_dir)
File "/home/easc0000/Documents/pele-master/cythonize.py", line 184, in find_process_files
process(cur_dir, fromfile, tofile, function, hash_db)
File "/home/easc0000/Documents/pele-master/cythonize.py", line 160, in process
processor_function(fromfile, tofile)
File "/home/easc0000/Documents/pele-master/cythonize.py", line 78, in process_pyx
raise Exception('Cython failed')
Exception: Cython failed
Traceback (most recent call last):
File "setup.py", line 73, in
generate_cython()
File "setup.py", line 71, in generate_cython
raise RuntimeError("Running cythonize failed!")
RuntimeError: Running cythonize failed!

Error with GUI

When running the pele_gui, there has been an error where the config_parser cannot be found in the local installation. This has never happened before and I have also tested using the example scripts in example folder

wcedison@wcedison-VirtualBox:~/Downloads/pele-master/examples/gui$ python ljsystem.py
\Traceback (most recent call last):
File "ljsystem.py", line 6, in
from pele.gui import run_gui
File "/home/wcedison/.local/lib/python2.7/site-packages/pele/gui/init.py", line 46, in
from .run import run_gui
File "/home/wcedison/.local/lib/python2.7/site-packages/pele/gui/run.py", line 14, in
from pele.config import config
File "/home/wcedison/.local/lib/python2.7/site-packages/pele/config.py", line 2, in
import configparser
ImportError: No module named configparser

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.