Giter Club home page Giter Club logo

ericspod / eidolon Goto Github PK

View Code? Open in Web Editor NEW
38.0 12.0 4.0 522.65 MB

Biomedical Visualization and Analysis Framework

Home Page: https://ericspod.github.io/Eidolon/

License: GNU General Public License v3.0

Shell 0.06% C++ 6.67% Makefile 7.14% Python 58.53% CSS 0.08% Batchfile 0.04% Logos 1.23% Perl 18.55% Jupyter Notebook 0.04% Cython 7.67%
python biomedical rendering data-analysis data-visualization king-college-london medical-imaging medical-image-computing image-registration irtk

eidolon's People

Contributors

ericspod 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

Watchers

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

eidolon's Issues

Concurrency issue with shared object linkage

Sometimes when executing compiled code using multiprocessing a system error occurs like this on Ubtun 14.04 (and possibly other Linux distros/versions) with Anaconda Python 2.7:

Inconsistency detected by ld.so: dl-open.c: 231: dl_open_worker: Assertion `_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT' failed!

Initially this appeared to be a problem with MKL libraries used by Anaconda's numpy, but the issue appeared in code where numpy wasn't being used and after MKL was removed. The issue then appeared to be when compiling Cython code against Anaconda rather than compiling with the system Python. The problem is very intermittent and difficult to reproduce, especially in isolation from the rest of Eidolon, but is definitely concurrency related.

It now appears to be a bug in dlopen() itself which has since been apparently fixed in later versions of glibc.

Error in SegmentPlugin.py due to changes in Python 3

Hi Eric,

Thank you for the great software, I am very excited to be using it for my PhD project!

I have noticed an issue in the latest release (v0.5.0) when trying to generate a mesh object, which I believe is due to the change in how Python 3 handles the zip() function and division / operator.

The first problem I ran into was in Line 1429 of the SegmentPlugin.py script:

contours=zip(*segobj.enumContours())[0]

Here I received the following error:
TypeError: 'zip' object is not subscriptable

After reading up about it, it turns out that in Python 2, the zip() function returns a list, while Python 3 returns an iterable object, as described in this thread.

After implementing the solutions described here, the next error occurred in Line 460:

invertring=[midring[(clen/2+i)%clen] for i in range(clen)]

returning the error:
TypeError: list indices must be integers or slices, not float

Again, there has been a change in how Python 3 handles the / operator as discussed here.

I changed the single, true division operator / which returns a float, to a floor division // ,which returns an integer.

After doing this, I was able to generate the mesh object from the segmentation contours.

EDIT: I see now that you have implemented this as well in the experimental branch, but thought logging this would be useful for anyone trying to use this feature.

Cheers and all the best!

Marcell

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.