Connectome

This Connectome project generates a chord diagram representing contributing features to a neuronal output condition generated by an artificial neural network. The features are also represented in a glass brain for an anatomic visualization.

Motivation

Clinicians are interested in learning what an artificial neural netowrk is learning so we are trying to display the findings in an anatomic way.

Running Code

Connectome can be run from the command line with $ python Connectome.py

Connectome can also be run within Jupyter Noteboook. To make the chord diagram display within the jupyter environment, when you call chord.draw() you must pass True in as an arguement, otherwise Connectome will default to generating a .html file in the parent directory

Code

The main program is run through the Connectome.py file. A user is queried for a .matlab file describing the ANN and also a location of an atlas file describing the regions relevant to the ANN.

Classes within the /Parsers directory are responsible for reading in these user supplied files and constructing Nodes representing a number, layer number, and input values for a given node in the ANN.

Classes within /Containers directory are responsible for massaging the data into structures convenient for a depth first traversal creating all the paths from output neuronal conditions to input features.

Classes within the /GUI directory are responsible for building the chord diagram and displaying as a .html file

Dependencies

The project dependencies are:

  • Igraph
  • NumPy
  • Plotly
  • Surf Ice

The project currently runs for 2.7. No other versions of Python have been validated. Hoping to verify for Python 3.x soon.

Testing

To run the testing suite:

$ python -m unittest discover . "Test*"

Credits

Brian Arne, Drew Moore, Brent Munsell

Contact

Please feel free to send me any questions or suggestions for future implementation

brian.a.arne@gmail.com