Git Product home page Git Product logo

brainconn's Introduction

brainconn (brain connectivity) library

The brainconn Python library is a fork of bctpy, which in turn is a Python implementation of the BCT MATLAB toolbox. bctpy was written by Roan LaPlante and is a wonderful tool. However, there were certain elements of the implementation that we wanted to change, so we chose to develop independently on a fork, which we renamed to brainconn to allow separate releases on PyPi and the like.

WARNING: This repository is currently not actively maintained. While brainconn may have some things that bctpy does not, we recommend using bctpy in the absence of an active maintainer here.

License: GPL v3 Build Status Codecov Codacy Badge Documentation Status

About

brainconn implements graph theoretic measures in Python.

Why graph theory?

because it's coOoOoOoOol ;)

Copyright information

bctpy was released with the GNU GPLv3+ license, which we adhere to as well. Changes made since splitting brainconn from bctpy are tracked in the CHANGELOG.

Citing brainconn

We eventually plan to publish brainconn releases on Zenodo, which will make specific versions citable. Moreover, the algorithms employed in brainconn (as well as the BCT MATLAB toolbox) should also be cited when used. We use duecredit to make compiling and annotating these citations easier. If you use brainconn, please make sure to run your code with duecredit before publication to make sure you have a comprehensive list of the software and papers that should be cited. You can do this by running your Python script (e.g., run_brainconn.py) from the command line like so: python -m duecredit run_brainconn.py.

Dependencies

At minimum, brainconn requires numpy, scipy, and networkx. While bctpy has limited dependencies to these three packages, brainconn is open to additional dependencies, as long as they are relatively stable and well-tested.

pytest is used for the test suite. The test suite is not complete.

About bctpy and other authors

BCT is a matlab toolbox with many graph theoretical measures off of which bctpy is based. I did not write BCT (apart from small bugfixes I have submitted) and a quality of life improvements that I have taken liberties to add. With few exceptions, bctpy is a direct translation of matlab code to python.

bctpy should be considered beta software, with BCT being the gold standard by comparison. I did my best to test all functionality in bctpy, but much of it is arcane math that flies over the head of this humble programmer. There are bugs lurking in bctpy, the question is not whether but how many. If you locate bugs, please submit them to me at [email protected].

Many thanks to Stefan Fuertinger for his assistance tracking down a number of bugs. Stefan Fuertinger has a similar software package dealing with brain network functionality at http://research.mssm.edu/simonyanlab/analytical-tools/

Many thanks to Chris Barnes for his assistance in documenting a number of issues and facilitating a number of test cases.

Credit for writing BCT (the matlab version) goes to the following list of authors, especially Olaf Sporns and Mika Rubinov.

  • Olaf Sporns
  • Mikail Rubinov
  • Yusuke Adachi
  • Andrea Avena
  • Danielle Bassett
  • Richard Betzel
  • Joaquin Goni
  • Alexandros Goulas
  • Patric Hagmann
  • Christopher Honey
  • Martijn van den Heuvel
  • Rolf Kotter
  • Jonathan Power
  • Murray Shanahan
  • Andrew Zalesky

In order to be a bit more compact I have removed the accreditations from the docstrings each functions. This does not in any way mean that I wish to take credit from the individual contributions. I have moved these accreditations to the credits file.

PRs Welcome

brainconn's People

Contributors

aestrivex avatar tsalo avatar clbarnes avatar neuroumbrage avatar akimbler avatar mattfeld avatar rudimeier avatar poldrack avatar sviter avatar 62442katieb avatar ariekahn avatar i-zaak avatar hippocampusgirl avatar rmarkello avatar pbouillon avatar

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.