Skip to content

MuteJester/LZGraphs

Repository files navigation

Stargazers Commits Issues MIT License LinkedIn


Logo

LZGraphs

LZ76 Graphs and Applications in Immunology
Explore the docs »

Report Bug · Request Feature

Table of Contents

About The Project

LZGraphs 🧬 is a Python library that implements the methodology presented in the research paper "A Novel Approach to T-Cell Receptor Beta Chain (TCRB) Repertoire Encoding Using Lossless String Compression".

Background

The diversity of T-cells is crucial for producing effective receptors that can recognize the pathogens encountered throughout life. A stochastic biological process known as V(D)J recombination accounts for the high diversity of these receptors, making their analysis challenging.

The LZGraphs Approach

LZGraphs presents a new approach to sequence encoding and analysis, based on the Lempel-Ziv 76 algorithm (LZ-76). By creating a graph-like model, LZGraphs identifies specific sequence features and produces a new encoding approach to an individual’s repertoire.

This unique repertoire representation allows for various applications, such as:

  • Generation probability inference
  • Informative feature vector derivation
  • Sequence generation
  • A new measure for diversity estimation

All of these are obtained without relying on time costly and error-prone alignment steps.

Installation

General Python Environment

To install LZGraphs in a general Python environment, you can use pip, which is a package manager for Python. Open your terminal and type the following command:

pip install LZGraphs

If you have both Python 2 and Python 3 installed on your machine, and you want to use Python 3, you should use pip3:

pip3 install LZGraphs

Jupyter Notebook

If you're using a Jupyter notebook, you can install LZGraphs directly in a code cell. Just type and execute the following command in a new cell:

!pip install LZGraphs

The exclamation mark at the beginning is a special Jupyter command that allows you to run terminal commands from within a notebook.

Troubleshooting

If you encounter any issues during the installation, make sure that your pip is up-to-date. You can upgrade pip using the following command:

pip install --upgrade pip

Or, for Python 3:

pip3 install --upgrade pip

After upgrading pip, try installing LZGraphs again. If you still encounter issues, please raise an issue in this GitHub repository with a description of the problem and any error messages you received.


Usage

The LZGraphs library is designed to be user-friendly and easy to use. You can get started with it in two main ways:

  1. Read the Documentation: We have a comprehensive documentation that provides detailed information about the LZGraph model and its applications. The documentation is divided into several sections to help you understand and use the functions and data structures implemented in this library in the most effective and quick manner. It includes:

    • Installation instructions
    • Tutorials for quick plug-and-play usage
    • Descriptions of miscellaneous, visualization, utilities, and Node Edge Saturation functions
    • Detailed information about the LZGraph Base Class, NDPLZGraph Class, and AAPLZGraph Class

    We recommend starting with the Tutorials page for a hands-on introduction to the useful functionality provided by the LZGraph library.

  2. Interactive Jupyter Notebook Guides: You can also download the Examples folder from this repository and follow an interactive Jupyter notebook guide. These guides provide step-by-step instructions on how to use the different models of this repo, making it easy for you to learn by doing.

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open-source community such a powerful place to create new ideas, inspire, and make progress. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT license. See LICENSE for more information.

Contact

Thomas Konstantinovsky - [email protected]

Project Link: https://github.com/MuteJester/LZGraphs