Skip to main content

Non linear data fusion over Entity Relation graphs

Project description

WHAT IS NXTfusion

NXTfusion is a Neural Network based data fusion method that extends the classical Matrix Factorization paradigm by allowing non-linear inference over arbitrariy connected Entity-Relation Graphs (ER graphs).

What is this an Entity-Relation graph?

An ER graph is an abstract data structure, similar to a relational database, that allows to model classes of objects (Entities) and relations between them (Relations). Examples from the scientific world include the Protein and Drugs entities and one of the possible relations between them could indicate the Protein-Drug interaction betwen them (https://arxiv.org/abs/1512.00315). Other examples can be gene prioritization tools, that try to discover associations between the entities Genes and Diseases.

In general, we each relation corresponds to a possibly sparsely observed matrix and the entities are the objects represented as rows and columns on that matrix.

In the classical Matrix Factorization paradigm, usually only a single matrix Y = UV is factorized into two latent matrices U and V, meaning that a single interaction (Y) between two entities (of which U and V are the latent representation) is considered. An extension to this is the Tensor Factorization (e.g. https://arxiv.org/abs/1512.00315), where multiple matrices/relations between two entities are factorized at the same time.

Real world data is nevertheless richer than this, and a problem might be characterized by many relations between many pairs of objects, thus forming a complex graph of entities (the nodes) connected by relations (the edges). One of the pioneers of multi-relation data fusion used matrix tri-factorization and proposed this library https://github.com/mims-harvard/scikit-fusion.

Here we further extend the field of data fusion by building a Neural Network-based data fusion framework for non-linear inference over completely arbitrary ER graphs.

What is this repository for?

The code here contains a pytorch-based python3 library taht should allow anyone to use our Entity-Relation data fusion framework on your data science problem of choice. An example of its application, on protein-protein interaction is available here:https://bitbucket.org/eddiewrc/nxtppi/src/master/, and it has been published here: https://doi.org/10.1093/bioinformatics/btab092 .

How do I set it up?

You can find the full documentation at https://nxtfusion.readthedocs.io/en/latest/index.html .

You can install NXTfusion either from this repo or from our pypi package. In either ways, we recommend to follow these steps:

First, set up a dedicated conda environment, to avoid problems with existing softwares.

  • Download and install miniconda from https://docs.conda.io/en/latest/miniconda.html
  • Create a new conda environment by typing: conda create -n nxtfusion -python=3.6
  • Enter the environment by typing: conda activate nxtfusion

If you want to install NXTfusion from this repo, you need to install the dependencies first.

  • Install pytorch >= 1.0 with the command: conda install pytorch -c pytorch or refer to pytorch website https://pytorch.org
  • Install the remaining requirements with the command: conda install scipy numpy multipledispatch

You can remove this environment at any time by typing: conda remove -n nxtfusion --all

If you want to install it via Pypi, just add pip to your conda environment: conda install pip

and then just type:

pip install nxtfusion

and all the required dependencies will be installed automatically. Congrats, you're ready to rock!

User Guide

For the full documentation, go to https://nxtfusion.readthedocs.io/en/latest/index.html .

Who do I talk to?

Please report bugs at the following mail address: daniele DoT raimondi aT kuleuven DoT be

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

NXTfusion-0.0.5.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

NXTfusion-0.0.5-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

Details for the file NXTfusion-0.0.5.tar.gz.

File metadata

  • Download URL: NXTfusion-0.0.5.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.10

File hashes

Hashes for NXTfusion-0.0.5.tar.gz
Algorithm Hash digest
SHA256 d112526d9472e5f296a5b6e6f8ef1bebe876c2ac320796f129f2f4b7d57408f0
MD5 7640d8f135db0b9e04aa4edf50998459
BLAKE2b-256 878ba2b4544f6d8346bada8f16d0952cf3340fad45131db41aef0165df8b4ed1

See more details on using hashes here.

File details

Details for the file NXTfusion-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: NXTfusion-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 27.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.10

File hashes

Hashes for NXTfusion-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 fd965c4da3a310893852a58db5a2de449f7c1f679e1b43aea94e84542b7d641f
MD5 269fcefe9148c952427aa1ad7af7b8a1
BLAKE2b-256 28d592919e324c1232203f1d6c722880b2a51e36bf2db854c2201989493c3ed4

See more details on using hashes here.

Supported by

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