GithubHelp home page GithubHelp logo

Comments (5)

jasmainak avatar jasmainak commented on June 1, 2024

@cjayb thanks for giving this a try!

Interesting, it seems that the example is broken for me as well. So, to proceed I would actually try using git bisect and find the rogue commit. Once we have the rogue commit, we can try to figure out what's wrong!

from hnn-core.

cjayb avatar cjayb commented on June 1, 2024

I made some progress, but hitting a wall & in need of some help!

I was able to produce similar L-shaped dipole plots for the gamma-example by setting 'T_pois': -1, i.e., switching off the only input to the network. So the problem seems to be missing rhythmic (distal) input. Sure enough, the alpha-net has no spiketimes after execution (this line returns empty lists).

@jasmainak did you reproduce on Neuron 7.8.0? I tried to trace back to the earliest commits of hnn_core, but the problem persisted. NB I still have a hard time accepting that this is an nrnpython-problem, since the example works in hnn-proper.

I've tried to compare the logic in network.py, but get lost in the methods calls. Assuming nrnpython is functional, there must be a difference in how hnn_core and hnn call it? And specifically something with the rhythmic inputs.

Also: WTF? At least it explains the kink in the plots at 37 ms :)

from hnn-core.

jasmainak avatar jasmainak commented on June 1, 2024

@cjayb don't go back too far in the commits either. Because it might have been broken during the refactor. This commit for instance works fine for me. Does it work for you? I'm on Neuron 7.7.2, yes I know shame on me ... I should update :)

I don't think it's an nrnpython problem but more a bug in hnn-core since the code paths of hnn and hnn-core have diverged even though they started from the same parent.

I've tried to compare the logic in network.py, but get lost in the methods calls.

you're not the only one ;-)

Assuming nrnpython is functional, there must be a difference in how hnn_core and hnn call it? And specifically something with the rhythmic inputs.

This is just exposing the fact that there aren't enough tests in either hnn or hnn_core. Otherwise things won't break so easily. I would really try to find the rogue commit. If you do git bisect, it will keep proposing you commits. In each commit, you can run the example and see if you get the right output. Once you identify the rogue commit, the job becomes really easy.

WTF? At least it explains the kink in the plots at 37 ms :)

agreed, wtf indeed! I'm not aware of the historical reasons why this exists. Let's maybe raise a different issue for this and start a discussion? at the very least, the params need to be exposed in the function

from hnn-core.

cjayb avatar cjayb commented on June 1, 2024

Well, git bisect did the trick :) Not sure what the best way forward is regarding tests, but we can continue that discussion elsewhere. Feel quite strongly about refactoring being needed here, but not experienced enough in API design to dare to take a first stab.

FYI: I don't recommend updating! I spent hours fiddling with compilations of openmpi (4.0.3) and nrn (7.7.2) on macOS clang (1103.0.32.62) and python=3.7 in a conda environment. Ended up ditching the effort and sticking with NEURON (7.8.0) from PyPi instead.

from hnn-core.

jasmainak avatar jasmainak commented on June 1, 2024

FWIW, neuron will soon come to pip so I'm hoping this will become smoother in the future

from hnn-core.

Related Issues (20)

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.