Skip to main content

App description

Project description

lux_noctis

License: GPL v3

lux_noctis is a Python package for the quality control (QC), processing, and differential analysis of proteomics data, designed primarily to work with outputs from FragPipe.

This package provides a comprehensive pipeline, encapsulated in the LuxFragPipeProtein class, to load FragPipe results, perform pre-processing (normalization, imputation), conduct statistical analysis (limma t-test), and generate a wide array of publication-ready visualizations. It also includes a Go class for performing Gene Ontology (GO) enrichment analysis on the results.

Core Features

  • FragPipe Integration: Natively handles FragPipe outputs for both DDA (iq_dda) and DIA (diann_dia) workflows.
  • Data Pre-processing: Includes methods for filtering (by peptide count, quantile threshold), log transformation, median normalization, and min-value imputation.
  • Statistical Analysis: Implements a wrapper for the limma Bayes moderated t-test to perform robust differential abundance analysis.
  • GO Enrichment: A dedicated Go class to run Gene Ontology enrichment analysis on differentially abundant protein sets, complete with helpers to download GAF and OBO files.
  • Comprehensive Visualization: Generates a wide range of interactive (Plotly) and static (Matplotlib/Seaborn) plots:
    • PCA Plots
    • Correlation Clustermaps
    • Interactive Volcano Plots
    • MA Plots
    • Intensity Distribution Boxplots
    • Coefficient of Variation (CV) Histograms
    • Upset Plots (for protein ID distribution)
    • Membrane Enrichment Plots
  • Helper Utilities: Includes functions to download the latest UniProt annotations and "Surfy" (surfaceome) protein lists.

Development Setup

This repository is configured for a containerized development environment using Docker, managed by simple shell scripts. This ensures all dependencies (including Python, R, and system libraries) are correctly configured.

Requirements

  • Docker

Getting Started

  1. Clone the repository:

    git clone [your-repo-url]
    cd lux_noctis
    
  2. Start the development container:

    ./start_dev.sh
    

    This script builds the Docker image, sets up a user with permissions matching your host user, and drops you into a bash shell inside the container. The project directory is mounted at /App.

  3. Install pre-commit hooks (First time only): Inside the container's shell:

    pre-commit install
    

    This will ensure your code is automatically formatted and linted (using black, flake8, isort, etc.) before each commit.

  4. Develop: You can now edit files on your host machine using your preferred IDE, and all changes will be reflected inside the container. Run your tests and scripts from within the container's shell.

  5. Stop the container: From your host machine (in the project directory):

    ./stop_dev.sh
    

    This script stops and removes the Docker container.

Package Installation (User)

To use lux_noctis as a package in your own environment (outside the provided Docker setup), you will need Python 3.13+ and R.

You can install it directly from the source:

# Install the package
pip install .

# Or, install in editable mode with dev dependencies
pip install -e .[dev]

Dependencies

This package relies on dousatsu.

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

lux_noctis-0.2.0.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

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

lux_noctis-0.2.0-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file lux_noctis-0.2.0.tar.gz.

File metadata

  • Download URL: lux_noctis-0.2.0.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for lux_noctis-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9a677776c3bcf8782a6441e68a148bc30ebf94dd0cd242739ee88be51975c3cc
MD5 1d576a6aac3eb3574aade2f72ed77dfc
BLAKE2b-256 13d98ff7ade16b2714e8d7a5037c3c970144b567dfcc4df76e09537eac3f5ca1

See more details on using hashes here.

File details

Details for the file lux_noctis-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: lux_noctis-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for lux_noctis-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2424e3ccd4ced45f29688fafd893c7d9ed8f3c3db43c48adc754dd67b7638d72
MD5 2f4a03f4dc734d4288a3ef937fc716bc
BLAKE2b-256 7eddcffd0267462404acb6ba2f77940fdaeea839bb329ea4ccb8a4f1f428bc10

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