Coder Social home page Coder Social logo

circuitpartition's Introduction

This repository contains an algorithm for partitioning the dual graph representation of the connectivity graph. The config.json file contains an example configuration. One can specify a list of ROIs to partition. If no ROIs are specified, the script will attempt to partition the entire dataset. The user can also specify the number of partitions and whether each wire should be weighted by the number of synapses in a given A-B connection.

Installation

  • conda create -n partition neuprint-python
  • conda activate partition
  • conda install metis
  • pip install metis
  • pip install scipy

One must also download the neuprint private token.

Running the command

% export NEUPRINT_APPLICATION_CREDENTIALS="YOUR NEUPRINT TOKEN"
% python createpartition.py config.json

This will output a list of neuron ids and their partition(s) in "parts.json". The file "connparts.json" provids the list of every A-B connection and the partition assignment [bodypre, bodypost, part].

Finding ROI "violations"

find_violators.py contains a function for finding cases where a pair of neurons share connections across an ROI boundary. This indicates areas of imprecise ROI boundaries. (TODO: check for situations where a pre and post synpse are divided by an ROI boundary, try to normalize the number of violations based on ROI size, speedup point query)

TODO

  • Implement tool that exports a DVID ROI to enable visualization of partition
  • Allow one to recursively partition and previous partitioning result
  • Split connection pairs into different nodes if they are far aware
  • Implement option to embed neuron's connectivity using skeleton representations

circuitpartition's People

Contributors

stephenplaza avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

astraw

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.