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.1.0.tar.gz (37.1 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.1.0-py3-none-any.whl (35.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for lux_noctis-0.1.0.tar.gz
Algorithm Hash digest
SHA256 457cd0e73194b42e2aec451a517175e267faacb92a31b612b876f0a0ec149c0f
MD5 adefc34463476c85bc741df6d4bce9ea
BLAKE2b-256 5ac6a0eb8d75616fefeff75e6a24306ab995a687dc7f45101dcd953b7b6fbbae

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lux_noctis-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7fd72d4a24a9ea25cf8ccf2b3b2b6bb429549609c22bb204578c3ca764155dd3
MD5 7049bf172092acacb3a58fa683419cbc
BLAKE2b-256 1cf08348b4eb87dad63490db3d70c43e7697376d164d131282071decb0e804c0

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