Skip to main content

Implementation of the connectome embedding workflow.

Project description

cepy

Implementation of the connectome embedding (CE) framework.

Embedding of brain graph or connectome embedding (CE) involves finding a compact vectorized representation of nodes that captures their higher-order topological attributes. CE are obtained using the node2vec algorithm fitted on random walk on a brain graph. The current framework includes a novel approach to align separately learned embeddings to the same latent space. Cepy is tested for Python 3.6, 3.7 and 3.8.

Installation

pip install cepy

Usage

import cepy as ce
import numpy as np

# Load an adjacency matrix (structural connectivity matrix)
sc_group = ce.get_example('sc_group_matrix')

# Initiate and fit the connectome embedding model
ce_group = ce.CE(permutations = 1, seed=1)  
ce_group.fit(sc_group)

# Extract the cosine similarity matrix among all pairwise nodes
cosine_sim = ce_group.similarity()

# Save and load the model
ce_group.save_model('group_ce.json') 
ce_loaded = ce.load_model('group_ce.json') # load it

# Load two existing CE models  
ce_subject1 = ce.get_example('ce_subject1')
ce_subject2 = ce.get_example('ce_subject2')

# Align the two to the space of the [ce_group]:
ce_subject1_aligned = ce.align(ce_group, ce_subject1)
ce_subject2_aligned = ce.align(ce_group, ce_subject2)

# Extract the node vectorized representations (normalized) for subsequent use - prediction, for example 
w_sbject1 = ce_subject1_aligned.weights.get_w_mean(norm = True)
w_sbject2 = ce_subject2_aligned.weights.get_w_mean(norm = True)

A set of example interactive Jupyter notebooks are also available here.

Citing

If you find cepy useful for your research, please consider citing the following paper:

Levakov, G., Faskowitz, J., Avidan, G. & Sporns, O. (2021). Mapping structure to function
 and behavior with individual-level connectome embedding. bioRxiv. doi: https://doi.org/10.1101/2021.01.13.426513 

Contributing

Cepy is an open-source software project, and we welcome contributions from anyone. We suggest raising an issue prior to working on a new feature.

Reference

  • The node2vec implementation is modeified from the node2vec package by Elior Cohen and the connectome_embedding code by Gideon Rosenthal.
  • Rosenthal, G., Váša, F., Griffa, A., Hagmann, P., Amico, E., Goñi, J., ... & Sporns, O. (2018). Mapping higher-order relations between brain structure and function with embedded vector representations of connectomes. Nature communications, 9(1), 1-12. ;

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cepy-0.1.1.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

cepy-0.1.1-py3-none-any.whl (55.0 MB view details)

Uploaded Python 3

File details

Details for the file cepy-0.1.1.tar.gz.

File metadata

  • Download URL: cepy-0.1.1.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.7.7

File hashes

Hashes for cepy-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ebeae2f8a545feca982986ed7374b9fb2bbf70457017055786febe0e3d18eec5
MD5 82f9c3ac595271eb10a307ad98e49cfe
BLAKE2b-256 1b45ec10279ca431a1feabc03a72a106aebb6a9c6c18d2233fbd90fb8634b587

See more details on using hashes here.

File details

Details for the file cepy-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: cepy-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 55.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.7.7

File hashes

Hashes for cepy-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2c4912525a8f810dddcb069385b9f37bda8ff808def4109eb5229f783b20a06e
MD5 7772fb8afab55ac27aa2e57b7dc41772
BLAKE2b-256 8aee056be6b2716985d9411064cff908f85d43a0bf66e7b5643d6ea75de18f90

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page