Feature Extraction Package for Biological Sequences Based on Mathematical Descriptors
Home • Documentation • Web Server • Web Server - LocalHost • List of files • Dependencies • Installing • Descriptors • How To Use • GUI • Citation
Update news!!!!
MathFeature - Now available on Web Server - Access on http://mathfeature.icmc.usp.br/ - 2021-09-30
Web Server - To work on your machine or network - Access on https://github.com/Bonidia/MathFeature-WebServer - 2021-11-05
Abstract
One of the main challenges in the application of Machine Learning (ML) algorithms to biological sequence data is how to numerically represent a sequence in a numeric input vector. Feature extraction techniques capable of extracting numerical information from biological sequences have been reported in the literature. However, many of these techniques are not available in existing packages, such as mathematical descriptors. This paper presents a new package, MathFeature, which implements mathematical descriptors able to extract relevant numerical information from biological sequences, i.e., DNA, RNA, and Proteins (prediction of structural features along the primary sequence of amino acids). MathFeature makes available 20 numerical feature extraction descriptors based on approaches found in the literature, e.g., multiple numeric mappings, genomic signal processing, chaos game theory, entropy, and complex networks. MathFeature also allows the extraction of alternative features, complementing the existing packages. To ensure that our descriptors are robust and to assess their relevance, experimental results are presented in nine case studies. According to these results, the features extracted by MathFeature shown high performance (0.6350-0.9897, accuracy), both applying only mathematical descriptors, but also hybridization with well-known descriptors in the literature. Finally, through MathFeature, we overcome several studies in eight benchmark datasets, exemplifying the robustness and viability of the proposed package. MathFeature advances in the area by bringing descriptors not available in other packages, as well as allowing non-experts to use feature extraction techniques.
Authors
-
Robson Parmezan Bonidia, Douglas S. Domingues, Danilo Sipoli Sanches, and André Carlos Ponce de Leon Ferreira de Carvalho.
-
Correspondence: rpbonidia@gmail.com or bonidia@usp.br
Publication
Robson P Bonidia, Douglas S Domingues, Danilo S Sanches, André C P L F de Carvalho, MathFeature: feature extraction package for DNA, RNA and protein sequences based on mathematical descriptors, Briefings in Bioinformatics, 2021; bbab434, https://doi.org/10.1093/bib/bbab434.
List of files
- case studies: case studies used in our article;
- GUI: GUI (Graphical User Interface)-based platform;
- examples: Files of Example;
- files: files used in some methods;
- methods: Main Files - Feature Extraction Models, e.g., Fourier, Numerical Mapping, Entropy, Complex Networks;
- preprocessing: Preprocessing Files;
- README: Documentation;
- requirements: Dependencies.
Dependencies
- Python (>=3.7.3)
- Biopython
- Igraph
- NumPy
- Pandas
- SciPy
Installing dependencies and package
MathFeature can be run on the console, but we also provide a GUI-based platform.
Docker Image - Terminal - MathFeature v1.0
It is important to note that we consider that the Docker is installed.
Docker commands - Examples
1 - https://www.docker.com/sites/default/files/d8/2019-09/docker-cheat-sheet.pdf
2 - https://dockerlabs.collabnix.com/docker/cheatsheet/
3 - https://github.com/wsargent/docker-cheat-sheet
$ docker pull bio21061993/mathfeature:latest
$ docker run -it --name mathfeature-terminal bio21061993/mathfeature bash
$ git clone https://github.com/Bonidia/MathFeature.git MathFeature-Terminal
$ cd MathFeature/
$ conda activate mathfeature-terminal
$ Run the desired scripts - See Documentation
Docker Image - GUI - MathFeature - Option 1
Docker commands - Examples - Running GUI applications using Docker
1 - https://cuneyt.aliustaoglu.biz/en/running-gui-applications-in-docker-on-windows-linux-mac-hosts/
2 - https://betterprogramming.pub/running-desktop-apps-in-docker-43a70a5265c4
3 - https://medium.com/@SaravSun/running-gui-applications-inside-docker-containers-83d65c0db110
4 - https://sourabhbajaj.com/blog/2017/02/07/gui-applications-docker-mac/
5 - https://www.cloudsavvyit.com/10520/how-to-run-gui-applications-in-a-docker-container/
$ docker pull bio21061993/mathfeature-gui
$ For Linux: sudo docker run -it --name mathfeature-gui --net=host --env="DISPLAY" -v /root:/root --volume="$HOME/.Xauthority:/root/.Xauthority:rw" bio21061993/mathfeature-gui
$ For Mac: docker run -it --name mathfeature-gui -e DISPLAY=$IP:0 -v /tmp/.X11-unix:/tmp/.X11-unix bio21061993/mathfeature-gui
$ git clone https://github.com/Bonidia/MathFeature.git MathFeature
$ cd MathFeature/
$ export PATH=/home/miniconda3/bin:$PATH
$ conda activate mathfeature-gui or source activate mathfeature-gui
$ python GUI/main.py
$ Run the desired scripts - See Documentation
Terminal - Option 2
It is important to note that we consider that the Python language is installed. Otherwise, access here.
$ git clone https://github.com/Bonidia/MathFeature.git MathFeature
$ cd MathFeature
$ pip3 install -r requirements.txt
$ apt-get -y install python3-igraph
Conda - Terminal - Option 3
Another way to install MathFeature is by using miniconda, e.g.:
$ git clone https://github.com/Bonidia/MathFeature.git MathFeature
$ cd MathFeature
1 - Install Miniconda:
See documentation: https://docs.conda.io/en/latest/miniconda.html
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ chmod +x Miniconda3-latest-Linux-x86_64.sh
$ ./Miniconda3-latest-Linux-x86_64.sh
$ export PATH=~/miniconda3/bin:$PATH
2 - Create environment:
conda env create -f mathfeature-terminal.yml -n mathfeature-terminal
3 - Activate environment:
conda activate mathfeature-terminal
4 - You can deactivate the environment, using:
conda deactivate
Conda - GUI - Option 4 - Linux
Another way to install MathFeature is by using GUI, e.g.:
$ git clone https://github.com/Bonidia/MathFeature.git MathFeature
$ cd MathFeature
1 - Install Miniconda:
See documentation: https://docs.conda.io/en/latest/miniconda.html
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ chmod +x Miniconda3-latest-Linux-x86_64.sh
$ ./Miniconda3-latest-Linux-x86_64.sh
$ export PATH=~/miniconda3/bin:$PATH
$ apt-get install libgtk-3-dev
2 - Create environment:
conda env create -f mathfeature-gui.yml -n mathfeature-gui
3 - Activate environment:
conda activate mathfeature-gui
python GUI/main.py
4 - You can deactivate the environment, using:
conda deactivate
List of Descriptors
Descriptors calculated by MathFeature for DNA, RNA, and Protein sequences: Click here.
How to use
We proposed an open-source Python package called MathFeature, that implements feature extraction approaches using mathematical features, including 20 descriptors organized into five categories. To our best knowledge, MathFeature is the first package that computes biological sequence features based on various mathematical descriptors. In this section, 5 feature extraction groups are available: (1) numerical mapping techniques, (2) numerical mapping techniques with Fourier transform, (3) techniques with game chaos, (4) techniques with Entropy, (5) techniques with complex networks. Furthermore, we provide additional scripts for feature extraction and preprocessing.
- Preprocessing
- Concatenate datasets/descriptors
- Numerical Mapping - DNA/RNA
- Numerical Mapping - Protein
- Chaos Game Representation - DNA/RNA
- Numerical Mapping and Fourier Transform - DNA/RNA
- Numerical Mapping and Fourier Transform - Protein
- Shannon and Tsallis Entropy - DNA/RNA/Protein
- Complex Networks - DNA/RNA/Protein
- Complex Networks (v2 - New Features - Faster and without threshold) - DNA/RNA/Protein
- Other techniques - DNA/RNA
- Basic k-mer
- Customizable k-mer
- Nucleic acid composition (NAC)
- Di-nucleotide composition (DNC)
- Tri-nucleotide composition (TNC)
- Accumulated Nucleotide Frequency - ANF
- Accumulated Nucleotide Frequency with Fourier
- ORF Features or Coding Features
- Fickett score
- Pseudo K-tuple nucleotide composition
- Xmer k-Spaced Ymer Composition Frequency (kGap)
- Other techniques - Protein
GUI
Feature Selection
If you want to apply feature selection techniques, visit our repository.
Citation
If you use this code in a scientific publication, we would appreciate citations to the following paper:
Robson P Bonidia, Douglas S Domingues, Danilo S Sanches, André C P L F de Carvalho, MathFeature: feature extraction package for DNA, RNA and protein sequences based on mathematical descriptors, Briefings in Bioinformatics, 2021; bbab434, https://doi.org/10.1093/bib/bbab434.
@article{10.1093/bib/bbab434,
author = {Bonidia, Robson P and Domingues, Douglas S and Sanches, Danilo S and de Carvalho, André C P L F},
title = "{MathFeature: feature extraction package for DNA, RNA and protein sequences based on mathematical descriptors}",
journal = {Briefings in Bioinformatics},
year = {2021},
month = {11},
issn = {1477-4054},
doi = {10.1093/bib/bbab434},
url = {https://doi.org/10.1093/bib/bbab434},
note = {bbab434},
eprint = {https://academic.oup.com/bib/advance-article-pdf/doi/10.1093/bib/bbab434/41108442/bbab434.pdf},
}