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
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
:
- Generate. Downloads and prepare the SwissProt data set that is showcased in the RatVec paper.
$ ratvec generate
- Train. Compute KPCA embeddings on a given data set. Please run the following command to see the arguments:
$ ratvec train --help
- 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. |