Skip to main content

pythonFLEX is a benchmarking toolkit for evaluating CRISPR screen results against biological gold standards. The toolkit computes gene-level and complex-level performance metrics, helping researchers systematically assess the biological relevance and resolution of their CRISPR screening data.

Project description

pythonFLEX

🧬 pythonFLEX is a benchmarking toolkit for evaluating CRISPR screen results against biological gold standards. It provides precision-recall analysis using reference gene sets from CORUM protein complexes, Gene Ontology Biological Processes (GO-BP), KEGG pathways, and other curated resources. The toolkit computes gene-level and complex-level performance metrics, helping researchers systematically assess the biological relevance and resolution of their CRISPR screening data.


🔧 Features

  • Precision-recall curve generation for ranked gene lists

  • Evaluation using CORUM complexes, GO terms, pathways

  • Complex-level resolution analysis and visualization

  • Easy integration into CRISPR screen workflows


📦 Installation

Suggested to use Python version 3.10 with virtual env.

Create venv

conda create -n p310 python=3.10
conda activate p310
pip install uv

Install pythonFLEX via pip

uv pip install pythonflex

or

pip install pythonflex

or Install pythonFLEX via git (to develop package in local)

git clone https://github.com/tyasird/pythonFLEX.git
cd pythonFLEX
uv pip install -e .

🚀 Quickstart

import pythonflex as flex

inputs = {
    "Melanoma (63 Screens)": {
        "path": flex.get_example_data_path("melanoma_cell_lines_500_genes.csv"), 
        "sort": "high"
    },
    "Liver (24 Screens)": {
        "path": flex.get_example_data_path("liver_cell_lines_500_genes.csv"), 
        "sort": "high"
    },
    "Neuroblastoma (37 Screens)": {
        "path": flex.get_example_data_path("neuroblastoma_cell_lines_500_genes.csv"), 
        "sort": "high"
    },
}



default_config = {
    "min_genes_in_complex": 2,
    "min_genes_per_complex_analysis": 2,
    "output_folder": "output",
    "gold_standard": "GOBP",
    "color_map": "RdYlBu",
    "jaccard": True,
    "jaccard_threshold": 1.0,  # set e.g. 0.90 to remove highly similar terms
    "plotting": {
        "save_plot": True,
        "output_type": "png",
    },
    "preprocessing": {
        "fill_na": True,
        "normalize": False,
    },
    "corr_function": "numpy",
    "logging": {  
        "visible_levels": ["DONE","INFO", "WARNING"]  # "PROGRESS", "STARTED", ,"INFO","WARNING"
    }
}


# Initialize logger, config, and output folder
flex.initialize(default_config)

# Load datasets and gold standard terms
data, _ = flex.load_datasets(inputs)
terms, genes_in_terms = flex.load_gold_standard()

# Run analysis
for name, dataset in data.items():
    df, pr_auc = flex.pra(name, dataset)
    fpc = flex.pra_percomplex(name, dataset, is_corr=False) 
    cc = flex.complex_contributions(name)

# Generate plots
flex.plot_auc_scores()
flex.plot_precision_recall_curve()
flex.plot_percomplex_scatter()
flex.plot_percomplex_scatter_bysize()
flex.plot_significant_complexes()
flex.plot_complex_contributions()
flex.plot_mpr_tp_multi(show_filters="all")
flex.plot_mpr_complexes_multi(show_filters="all")
flex.plot_mpr_complexes_auc_scores("all")

flex.save_results_to_csv()

📂 Examples


📃 License

MIT

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

pythonflex-0.3.4.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

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

pythonflex-0.3.4-py3-none-any.whl (2.6 MB view details)

Uploaded Python 3

File details

Details for the file pythonflex-0.3.4.tar.gz.

File metadata

  • Download URL: pythonflex-0.3.4.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.5

File hashes

Hashes for pythonflex-0.3.4.tar.gz
Algorithm Hash digest
SHA256 b6c270b2afd764755efd5146a53199a6867188ca43a2411b3c277423c3f971c7
MD5 ccd0a0a56f950d04b1f660d718f3e6d6
BLAKE2b-256 afa136097e4fbb0eeb8857c14396ddaeb457e0ffcf0dcf58cccc4fe4f4e15e03

See more details on using hashes here.

File details

Details for the file pythonflex-0.3.4-py3-none-any.whl.

File metadata

File hashes

Hashes for pythonflex-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1927560fc30fa4e491f996682f49ea2221a6ef3d9d920a351fbdfee7b5ebfd71
MD5 4e0e10adf9bdba00073130aeb68243e7
BLAKE2b-256 468f2cc562cf217e693aeb5778b88d4baca0d1bbadd26e47afecb3f62f3a847a

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