Giter Site home page Giter Site logo

bglezseoane / pytoxo Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 0.0 14.3 MB

A Python tool to calculate penetrance tables for high-order epistasis models

License: GNU General Public License v3.0

Python 66.07% TeX 33.88% Shell 0.05%
penetrance-tables epistasis full-genome human-genome python genetics bioinformatics

pytoxo's Introduction

PyToxo

A Python tool to calculate penetrance tables for high-order epistasis models.

Paper: González-Seoane, B., Ponte-Fernández, C., González-Domínguez, J. et al. PyToxo: a Python tool for calculating penetrance tables of high-order epistasis models. BMC Bioinformatics 23, 117 (2022). https://doi.org/10.1186/s12859-022-04645-7.
Mailing list: freelists.org/list/pytoxo. Join to start the discussion.
User manual (English version): manuals/manual_en.pdf.
User manual (Spanish version): manuals/manual_es.pdf.


PyToxo is a library for calculating penetrance tables of any bivariate epistasis model, developed in Python. It is a improved version of the Toxo library.

PyToxo is an easy-to-use tool, which can be used directly as a Python library, or through a command-line interface (CLI) or a graphical user interface (GUI). It is aimed at professionals or people interested in the field of bioinformatics and especially genetics.

This work is part of Borja González Seoane's final project for his Degree in Computer Engineering studies from the University of A Coruña.

PyToxo GUI screenshot

Install

PyToxo requires Python 3.8 or more modern to work. It is uploaded to the official Python PyPI repository, so it is only needed to run the following command to install it:

pip install pytoxo

Use

  • To see how PyToxo is used as a library, you can examine this example.
  • To see how PyToxo is used through its CLI, you can examine this example. You can also revise the command-line help executing pytoxo_cli -h.
  • To see how PyToxo is used through its GUI, you can examine the PyToxo manual. However, the GUI is very intuitive and guides the user step by step. You might want to venture out using the pytoxo_gui command to open the interface and take a look on your own.

In any case, I recommend you take a look at the PyToxo user manual. It is available in English and Spanish.

Run the tests

To run the tests you need to download this entire repository and install the development dependencies contained in manifest requirements_dev.txt with:

pip install -r requirements_dev.txt

PyToxo project uses the Python unittest to all its associated tests routines. PyToxo has unit, integration, solubility and accuracy level tests. All of them are stored into the test directory and respect the format test_*.py.

To run the tests, the easiest way is using the helper scripts test/run_all_tests.py, test/run_all_tests_unit.py, test/run_all_tests_integration.py, test/run_all_tests_solubility.py and test/run_all_tests_accuracy.py, to respectively run the appropriate tests. This script solve by their own the execution working directory, which must be the project home one.

It is also possible to run the tests since the command line. E.g.:

python -m unittest discover  # Runs all
python -m unittest discover test/unit  # Runs unit tests
python -m unittest discover test/integration  # Runs integration tests
# ...

The tests use material generated with Toxo to compare the two programs behaviour.

Acknowledgements

Thanks to María José Martín Santamaría and Christian Ponte Fernández for their supervision of the project. Also thanks to Jorge González Domínguez.

pytoxo's People

Contributors

bglezseoane avatar dependabot[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.