Skip to main content

Comprehensive Python Module for Protein Data Management: Designed for streamlined integration and processing of protein information from both UniProt and PDB. Equipped with features for concurrent data fetching, robust error handling, and database synchronization.

Project description

codecov PyPI - Version Documentation Status Linting Status

Protein Information System (PIS)

Protein Information System (PIS) is an integrated biological information system focused on extracting, processing, and managing protein-related data. PIS consolidates data from UniProt, PDB, and GOA, enabling the efficient retrieval and organization of protein sequences, structures, and functional annotations.

The primary goal of PIS is to provide a robust framework for large-scale protein data extraction, facilitating downstream functional analysis and annotation transfer. The system is designed for high-performance computing (HPC) environments, ensuring scalability and efficiency.

📈 Current State of the Project

FANTASIA Redesign

🔄 FANTASIA has been completely redesigned and is now available at:
FANTASIA Repository
This new version is a pipeline for annotating GO (Gene Ontology) terms in protein sequence files (FASTAs). The redesign focuses on long-term support, updated dependencies, and improved integration with High-Performance Computing (HPC) environments.

Stable Version of the Information System

🛠️ A stable version of the information system for working with UniProt and annotation transfer is available at:
Zenodo Stable Release
This version serves as a reference implementation and provides a consistent environment for annotation transfer tasks.

Prerequisites

  • Python 3.11.6
  • RabbitMQ
  • PostgreSQL with pgVector extension installed.

Setup Instructions

1. Install Docker

Ensure Docker is installed on your system. If it’s not, you can download it from here.

2. Starting Required Services

Ensure PostgreSQL and RabbitMQ services are running.

docker run -d --name pgvectorsql \
    --shm-size=64g \
    -e POSTGRES_USER=usuario \
    -e POSTGRES_PASSWORD=clave \
    -e POSTGRES_DB=BioData \
    -p 5432:5432 \
    pgvector/pgvector:pg16 \
    -c shared_buffers=16GB \
    -c effective_cache_size=32GB \
    -c work_mem=64MB

3. PostgreSQL Configuration

The configuration parameters provided above have been optimized for a machine with 128GB of RAM and 32 CPU cores, allowing up to 20 concurrent workers. These settings enhance PostgreSQL’s performance when handling large datasets and computationally intensive queries.

  • --shm-size=64g: Allocates 64GB of shared memory to the container, preventing PostgreSQL from running out of memory in high-performance environments.
  • -c shared_buffers=16GB: Allocates 16GB of RAM for PostgreSQL’s shared memory buffers. This should typically be 25-40% of total system memory.
  • -c effective_cache_size=32GB: Sets PostgreSQL’s estimated available memory for disk caching to 32GB. This helps the query planner make better decisions.
  • -c work_mem=64MB: Defines 64MB of memory per worker for operations like sorting and hashing. This is crucial when handling parallel query execution.

4. (Optional) Connect to the Database

You can use pgAdmin 4, a graphical interface for managing and interacting with PostgreSQL databases, or any other SQL client.

5. Set Up RabbitMQ

Start a RabbitMQ container using the command below:

docker run -d --name rabbitmq \
    -p 15672:15672 \
    -p 5672:5672 \
    rabbitmq:management

6. (Optional) Manage RabbitMQ

Once RabbitMQ is running, you can access its management interface at RabbitMQ Management Interface.


Get started:

To execute the full extraction process, simply run:

python main.py

This command will trigger the complete workflow, starting from the initial data preprocessing stages and continuing through to the final data organization and storage.

Customizing the Workflow:

You can customize the sequence of tasks executed by modifying main.py or adjusting the relevant parameters in the config.yaml file. This allows you to tailor the extraction process to meet specific research needs or to experiment with different data processing configurations.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

protein_metamorphisms_is-3.1.2.tar.gz (51.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

protein_metamorphisms_is-3.1.2-py3-none-any.whl (82.0 kB view details)

Uploaded Python 3

File details

Details for the file protein_metamorphisms_is-3.1.2.tar.gz.

File metadata

  • Download URL: protein_metamorphisms_is-3.1.2.tar.gz
  • Upload date:
  • Size: 51.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.10.16 Linux/6.8.0-1021-azure

File hashes

Hashes for protein_metamorphisms_is-3.1.2.tar.gz
Algorithm Hash digest
SHA256 a1f2b48a0b162a43c9200bd454f59420f7f7182c5886ac413e7218786599a7cf
MD5 9b3a39926bccb0d12c40e18eb41728ac
BLAKE2b-256 a9a63832601c62447d5306f2b4e1c74b02c5232b7b5443031c2b481cf5427ce1

See more details on using hashes here.

File details

Details for the file protein_metamorphisms_is-3.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for protein_metamorphisms_is-3.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3465d8e6df6f207b17fe79e5c9eb07d3d18b02bb888be4faaa566e17d9d2c5da
MD5 a0f123363060fb2a224e3f2caf534327
BLAKE2b-256 d57f505f054da00b3c6a4f74e1b34781ac62f0d3d9ba9c521ffbfea475a69575

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page