GithubHelp home page GithubHelp logo

yzx9 / swcgeom Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 3.0 3.85 MB

Neuron geometry library for swc format.

License: Apache License 2.0

Python 100.00%
neuron-morphology neuroanatomy neuroscience python neuron

swcgeom's Introduction

Hi there ๐Ÿ‘‹

  • ๐Ÿ”ญ Iโ€™m currently pursuing my master's degree at SHU and GDIIST
  • ๐ŸŒฑ Iโ€™m actively working on improving my English language skills.
  • โšก Fun fact: Software Engineering and Computational Neuroscience

[GitHub][Blog]

yzx9's github stats yzx9's most used languages

swcgeom's People

Contributors

3436lele avatar shadowsight9 avatar yzx9 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

jockeyc 3436lele

swcgeom's Issues

Detecting Cyclic Points

We have now provided a function named has_cyclic to detect if a SWC tree contains a cycle. Going further, we can offer a method to detect the cyclic points. Assuming this is a directed graph, and we start from a point (the root of the tree), then we can definitely find the points where paths overlap.

Onion-ring `traverse` API

def traverse(next):
  enter = do_something() # same as the enter callback
  children = next(enter)
  leave = do_something_else(children) # same as leave the callback
  return leave

Tree.from_swc(...).traverse(traverse)

The advantage of this onion-ring API design is that users can hold a closure to easily retain some information. However, I am not quite sure if such a call would lead to a too deep call stack (in some extreme cases, a neuron may have hundreds of thousands of points).

Improve Soma Support

  1. Add more soma type support, now only supports single soma, see MorphIO
  2. the soma does not need to be the first point.

Assemble `BranchTree` to `Tree`

How to asemble a BranchTree to Tree?

If available, we can resamble tree by: Tree -> BranchTree -> resamble branches -> assemble BranchTree to Tree

Calculate volume size

SWC is a representation of neurons composed of the radius of points and their connectivity, therefore there are various specific ways of representation. A typical method is to consider the nodes as spheres, and the connections between them as truncated cones with different radii at the top and bottom surfaces. We can at least support the volume calculation in this manner.

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.