https://github.com/bluebrain/topological_sampling

The analysis pipeline for the topological sampling project

https://github.com/bluebrain/topological_sampling

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: biorxiv.org
  • Academic email domains
  • Institutional organization owner
    Organization bluebrain has institutional domain (portal.bluebrain.epfl.ch)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.2%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

The analysis pipeline for the topological sampling project

Basic Info
  • Host: GitHub
  • Owner: BlueBrain
  • License: agpl-3.0
  • Language: Python
  • Default Branch: master
  • Size: 6.64 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 5
  • Open Issues: 0
  • Releases: 0
Created about 5 years ago · Last pushed about 2 years ago
Metadata Files
Readme Contributing License

README.md

toposampling - Topology-assisted sampling and analysis of activity data

An analysis pipeline for joint analysis of neural spiking data and synaptic connectivity. This repository encompasses all analyses performed in the following manuscript:

Topology of synaptic connectivity constrains neuronal stimulus representation, predicting two complementary coding strategies

https://www.biorxiv.org/content/10.1101/2020.11.02.363929v1

Requirements

  • cmake >= 3.4
  • python >= 3.7
    • h5py
    • numpy
    • simplejson
    • scipy >= 1.0.0
    • scikit-learn
    • pandas
    • progressbar
    • pyflagser
    • future
    • networkx

Installation

Download the repository and submodules with: - git clone --recursive https://github.com/BlueBrain/topological_sampling.git

Then, install the python dependencies for reading / writing results and configurations: - cd common/toposample_utilities - pip install .

Next, install the python dependencies for counting directed simplex containment: - cd common/pyflagsercontain - pip install .

Usage

Next, obtain the input data used for our paper (or use your own simulation results!) under the following DOI: 10.5281/zenodo.4317336 and place it into workingdir/data/inputdata. More detailed information on where exactly each result file goes is given in the description of the dataset at the specified DOI.

The following four input files are required: - The adjacency matrix of the circuit in scipy sparse csr format, exported to .npz - The spike trains of the simulation. In a numpy.array with two columns, where the first column denotes the time in ms of a spike and the second a global identifying integer (GID) of the spiking neuron. Exported to .npy using numpy.save - The classification labels for the the stimuli as a numpy array. Each entry is interpreted as an identifyer of a stimulus associated with a time window. Duration of the time window configured in the associated config file. Time windows are assumed to have the same duration and directly follow each other, with no break in between. Exported to .npy using numpy.save - A pandas database containing the layers, morphological type and (x,y,z) coordinates of the neurons. Index by the GID (see above) of the neuron. Exported to pickle using pandas.to_pickle.

Note

In the source code and the following explanations, we sometimes refer to "tribes" (e.g. "structuraltribeanalysis", "sample_tribes")."Tribe" is the term we used for samples of a neuron and its entire graph-theoretical neighborhood in an early version of the associated manuscript. We have since been alerted that this is unfortunate and non-inclusive terminology and have updated the manuscript to use the term "neighborhood" instead. Yet, we have decided not to reflect this change in the source code at this point, as the likelihood to break something is too high. For consistency, we also keep the old terminology in this documentation.

We apologize for any confusion or offense given.

Pipeline overview

Alt text Blue squares denote input / output files (obtainable under the following DOI: 10.5281/zenodo.4317336). Grey circles denote steps of the analysis pipeline (that are implemented in this repository). Red rectangles denote configuration files (that are also in this github repository).

Running the analyses

Then run the pipeline steps in order: - pipeline/gentopodb - pipeline/sampletribes - pipeline/structribeanalysis - pipeline/counttriads - pipeline/splittimewindows - pipeline/manifoldanalysis - pipeline/topologicalfeaturization - pipeline/classifier

Each step of the pipelin provides its own README that describes how to run it. It also lists potential additional dependencies in addition to the ones listed in common/setup.py

Configuration of each step and the pipeline as a whole is given in workingdir/config. If you want to change some of the parameters either edit them directly, or create a copy of the workingdir and change the configuration in that copy and work there.

After running the pipeline the analyzed output data is found under workingdir/data/analyzeddata.

jupyter notebooks that use the analyzed data to create the figures (or individual panels) of the paper can be found under notebooks: - cd notebooks - jupyter notebook

They create the figures and also provide a good starting point for learning how to work with the input and/or analyzed data.

Citation

If you decide to use any part of this software, please reference the following manuscript:

Michael W Reimann, Henri Riihimäki, Jason P Smith, Jānis Lazovskis, Christoph Pokorny, Ran Levi: "Topology of synaptic connectivity constrains neuronal stimulus representation, predicting two complementary coding strategies"

https://www.biorxiv.org/content/10.1101/2020.11.02.363929v1

doi: https://doi.org/10.1101/2020.11.02.363929

Funding & Acknowledgment

The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government's ETH Board of the Swiss Federal Institutes of Technology.

Copyright © 2020-2022 Blue Brain Project/EPFL

Owner

  • Name: The Blue Brain Project
  • Login: BlueBrain
  • Kind: organization
  • Email: bbp.opensource@epfl.ch
  • Location: Geneva, Switzerland

Open Source Software produced and used by the Blue Brain Project

GitHub Events

Total
  • Watch event: 1
  • Fork event: 1
Last Year
  • Watch event: 1
  • Fork event: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: about 1 year
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.5
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • alex4200 (1)
  • ASVG (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

common/toposample_utilities/setup.py pypi
  • h5py *
  • numpy *
  • pandas *
  • progressbar *
  • scikit-learn *
  • scipy >=1.0.0
  • simplejson *
common/pyflagsercontain/setup.py pypi