Skip to main content

Python package for creating simplified 2D protein visualizations. Specialized on showing differences and similarities between proteins of the same protein family.

Project description

FlatProt

image

FlatProt is a tool for 2D protein visualization aimed at improving the comparability of protein structures through standardized 2D visualizations. FlatProt focuses on creating highly comparable representations for same-family proteins.

📚 Documentation

📖 Full Documentation - Complete guide with examples, API reference, and tutorials

🔬 Interactive Examples - Jupyter notebooks with Google Colab integration

🧬 Try Now: UniProt to Visualization - From any UniProt ID to beautiful 2D visualization in minutes!

🚀 Quick Start

Installation

FlatProt requires Python 3.11-3.13. Install using uv (recommended):

Option 1: Install and use persistently (recommended)

# Install FlatProt (makes 'flatprot' command available)
uv tool add FlatProt

# Now you can use flatprot directly
flatprot --help

Option 2: Run without installation

# Run FlatProt without installing (use 'uvx flatprot' instead of 'flatprot')
uvx flatprot --help

Dependencies

Required:

  • Foldseek - for structure alignment
  • DSSP - mkdssp version 4.4.0 (available via brew on macOS)

Optional:

  • Cairo - for PNG/PDF output from overlay command

Basic Usage

Generate a 2D protein visualization from a structure file:

# Option 1: AlphaFold structures (no DSSP needed - secondary structure included!)
flatprot project AF-P69905-F1-model_v4.cif --output protein_2d.svg

# Option 2: PDB/CIF files (add secondary structure first)
mkdssp your_protein.cif your_protein_with_dssp.cif
flatprot project your_protein_with_dssp.cif --output protein_2d.svg

# Note: If using without installation, replace 'flatprot' with 'uvx flatprot'

For detailed installation and usage instructions, see the documentation.

📊 Example Visualizations

Cobra protein visualization Protein overlay visualization

Contributing

We welcome contributions to FlatProt! If you'd like to contribute, please follow these steps:

  1. Fork the repository: Create your own fork of the FlatProt repository on GitHub.
  2. Create a branch: Make your changes in a dedicated branch in your fork.
  3. Submit a pull request: Open a pull request from your branch to the staging branch of the t03i/FlatProt repository.

Please ensure your contributions adhere to the project's coding style and include tests where appropriate. For major changes, please open an issue first to discuss what you would like to change.

See CONTRIBUTING.md for more detailed guidelines.

📖 Citation & Data

If you use FlatProt in your research, please cite our preprint:

FlatProt: 2D visualization eases protein structure comparison Tobias Olenyi, Constantin Carl, Tobias Senoner, Ivan Koludarov, Burkhard Rost bioRxiv 2025.04.22.650077; doi: https://doi.org/10.1101/2025.04.22.650077

Datasets and supplementary data are available on Zenodo:

DOI

🔧 CLI Commands

FlatProt provides four main commands:

  • flatprot project - Create 2D SVG projections from protein structures
  • flatprot align - Align protein structures using rotation
  • flatprot overlay - Create overlay visualizations from multiple structures
  • flatprot split - Extract and align structural regions for comparison

See the CLI documentation for detailed usage.

🔄 Common Workflows

Note: The following examples assume you've installed FlatProt with uv tool add FlatProt. If you're using the no-install option, replace flatprot with uvx flatprot in all commands.

Single Structure Visualization

# AlphaFold structures (recommended - no preprocessing needed!)
flatprot project AF-P69905-F1-model_v4.cif --output protein_2d.svg

# Traditional PDB/CIF files (requires DSSP preprocessing)
mkdssp your_protein.cif your_protein_with_dssp.cif
flatprot project your_protein_with_dssp.cif --output protein_2d.svg

Aligned Structure Visualization

# 1. Find optimal family alignment
flatprot align protein.cif -m alignment_matrix.npy

# 2. Create aligned 2D projection
flatprot project protein.cif --matrix alignment_matrix.npy -o aligned_protein.svg

Family Comparison Workflow

# 1. Find optimal alignment for family
flatprot align reference_protein.cif -i family_info.json

# 2. Extract family ID from results
family_id=$(jq -r '.best_hit.target_id' family_info.json)

# 3. Create conserved overlay using fixed family ID
flatprot overlay "family_proteins/*.cif" --family "$family_id" -o family_overlay.png

Domain Analysis Workflow

# 1. Create full structure view
flatprot project protein.cif -o full_structure.svg

# 2. Extract and align specific domains
flatprot split protein.cif --regions "A:1-100,A:150-250" --show-database-alignment -o domains.svg

# 3. Create domain overlay for comparison
flatprot overlay "domain_structures/*.cif" --family 3000114 -o domain_comparison.png

Custom Alignment Workflow

# 1. Generate alignment matrix from first structure
flatprot align reference.cif -m alignment_matrix.npy

# 2. Apply same alignment to all structures
for file in *.cif; do
    flatprot project "$file" --matrix alignment_matrix.npy -o "aligned_${file%.cif}.svg"
done

License

FlatProt is licensed under the Apache License 2.0. See the LICENSE file for more details.

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

flatprot-2.4.6.tar.gz (28.6 MB view details)

Uploaded Source

Built Distribution

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

flatprot-2.4.6-py3-none-any.whl (140.6 kB view details)

Uploaded Python 3

File details

Details for the file flatprot-2.4.6.tar.gz.

File metadata

  • Download URL: flatprot-2.4.6.tar.gz
  • Upload date:
  • Size: 28.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for flatprot-2.4.6.tar.gz
Algorithm Hash digest
SHA256 7315a2a2f8fa1136f0c26fe72e97e982620f1a7f55fe3146efa246f2b8b86738
MD5 b2eabde8899f0d70c58ab74fdb048dcc
BLAKE2b-256 31784ea3a0492350829daede3ba70cf97e8c72ce283c38a9208f42be0204010f

See more details on using hashes here.

Provenance

The following attestation bundles were made for flatprot-2.4.6.tar.gz:

Publisher: release.yml on t03i/FlatProt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flatprot-2.4.6-py3-none-any.whl.

File metadata

  • Download URL: flatprot-2.4.6-py3-none-any.whl
  • Upload date:
  • Size: 140.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for flatprot-2.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 de300ee775a460b5a7252a4df7eda4ad617ab2a62c6342a9fc9797af458a0c2d
MD5 8b1ff00e73db61036e4c3f7fe3ec4db8
BLAKE2b-256 4ec6ee39ee75b4758edb6567ddc92221d1d9991529e5039dd8eac325cb01a06e

See more details on using hashes here.

Provenance

The following attestation bundles were made for flatprot-2.4.6-py3-none-any.whl:

Publisher: release.yml on t03i/FlatProt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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