Code Monkey home page Code Monkey logo

fiberloss's Introduction

Fiber Loss in Nerves

Larger Write-up: https://github.com/mef51/neuro-report/blob/master/neuroReport.pdf?raw=true

People who suffer from diseases that cause nerve fiber loss often don't realize what's happening because it happens so slowly. Tests and experiments can be done where you measure how far a signal travels down a limb from a certain stimulus. The more damage there is, the less the signal travels.

For example, an electrode is placed near your elbow, and a voltmeter is placed further down the arm, around your wrist. The electrode stimulates some nerves in your elbow and the signal should propagate down your arm to the voltmeter, where we can measure a signal. If the nerves in your arm are damaged in some way, this signal will be weaker.

This simulation is inspired by a mathematical model that gives some clues as to the nature of this damage. The model seems to be able to explain many kinds of damage as the result of a single malfunction, namely, leaky ion channels in the cellular membrane of the nerve.

The goal of the simulation is to recreate results from the experiment described above using the mathematical model.

Status: Working, usable, simulation model. Produces and propagates nerve signal spikes.

  • Creates a bundle of fibers, where each fiber is a group of connected axon nodes.
  • Places a stimulus some distance away from the bundle.
  • Simulates the response of each node to the axon. Axons affect each other, and can potentially trigger propagating action potentials.
  • Plots various things about the system, including positions, membrane voltages, and forward and backward rates.

Papers

This work is mostly based off of the theory in these two papers:

For more details on the science this is based off of or some related papers take a look at the papers/ folder.

fiberloss's People

Contributors

mef51 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

fiberloss's Issues

Results differ when using units and when not using units.

To reproduce:

  • Run with units

    • set
        USE_UNITS = True
    • Run simulation
    • call plotMembranePotentialOfNodes(nerve) after simulation, save images in a folder
  • Run without units

    • set
    USE_UNITS = False # this should just make things FASTER
    • Run simulation
    • call plotMembranePotentialOfNodes(nerve) after simulation, save images in another folder

Results
With units:
withunitson

With no units:
nounits

The distances are different but don't account for the difference in membrane potential.

The unum unit library handles situations like 1mA + 1A = 1.001A but fastunits.py does not. This might be the source of the problem.

IndexError while outputting plots

error:

plotting axon #4 in fiber #0...
plotting axon #5 in fiber #0...
Traceback (most recent call last):
  File "./nervefibers.py", line 705, in <module>
    main()
  File "./nervefibers.py", line 699, in main
    plotCompoundPotential(simulation, n=11)
  File "./nervefibers.py", line 631, in plotCompoundPotential
    node = fiber.axonNodes[arrayIndex]
IndexError: list index out of range

fix: dunno man

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.