ratvec

Generating dense embeddings for proteins using kernel PCA


Keywords
Representation, Learning, Kernel, PCA, Principle, Component, Analysis, bioinformatics, kernel-methods, kernel-pca, machine-learning, nlp, proteomics, representation-learning
License
Apache-2.0
Install
pip install ratvec==0.1.2

Documentation

RatVec

This tool generates low-dimensional, continuous, distributed vector representations for non-numeric entities such as text or biological sequences (e.g. DNA or proteins) via kernel PCA with rational kernels.

The current implementation accepts any input dataset that can be read as a list of strings.

Citation

If you find RatVec useful in your work, please consider citing:

[1] Brito, E., et al.: RatVec: A General Approach for Low-dimensional Distributed Vector Representations via Rational Kernels. In: LWDA 2019.

Installation Current version of RatVec on PyPI Python versions supported by RatVec RatVec is distributed under the Apache 2.0 License

RatVec can be installed on Python 3.6+ from PyPI with the following code in your favorite terminal:

$ pip install ratvec

or from the latest code on GitHub with:

$ pip install git+https://github.com/ratvec/ratvec.git

It can be installed in development mode with:

$ git clone https://github.com/ratvec/ratvec.git
$ cd ratvec
$ pip install -e .

The -e dynamically links the code in the git repository to the Python site-packages so your changes get reflected immediately.

How to Use

ratvec automatically installs a command line interface. Check it out with:

$ ratvec --help

RatVec has three main commands: generate, train, and evaluate:

  1. Generate. Downloads and prepare the SwissProt data set that is showcased in the RatVec paper.
$ ratvec generate
  1. Train. Compute KPCA embeddings on a given data set. Please run the following command to see the arguments:
$ ratvec train --help
  1. Evaluate. Evaluate and optimize KPCA embeddings. Please run the following command to see the arguments:
$ ratvec evaluate --help

Showcase Dataset

The application presented in the paper (SwissProt dataset [1]_ used by Boutet et al. [2]) can be downloaded directly from here or running the following command:

$ ratvec generate

Making a Release

Most of the release workflow is automated by tox. After configuring an appropriate .pypirc file, the command tox -e finish can be run. It takes the -dev extension off of the version string, pushes to GitHub, makes a distribution, uploads it to PyPI, then bumps the version to the next patch.

Note: there can't be any uncommitted stuff in the repository first or bumpversion will complain. tox -e bumpversion minor can be used to bump the minor version before running tox -e finish.

References

[1] Boutet, E. et al. (2016). UniProtKB/Swiss-Prot, the manually annotated section of the UniProt KnowledgeBase: how to use the entry view.. Plant Bioinformatics (pp. 23-54).
[2] Asgari, E., & Mofrad, M. R. (2015). Continuous distributed representation of biological sequences for deep proteomics and genomics. PloS one, 10(11), e0141287.