ConfigurationΒΆ

Siflex is configured via a JSON file specifying input/output paths and pipeline steps.

πŸ“œ Configuration fileΒΆ

{
  "input_files": {
    "sif_network": "data/cell_fate_plus.sif",
    "node_hgnc_file": "data/NodeHGNC.csv",
    "kegg_pathway": "data/kegg_pathway.csv",
    "kegg_categories": "data/kegg_categories.json",
    "bless_out": "data/tissue_folders",
    "inhibitor_profiles": "data/inhibitor_profiles.csv"
  },
  "output_files": {
    "node_scores": "output/node_scores.csv",
    "node_scores_agg": "output/node_scores_agg.csv",
    "pathway_scores": "output/pathway_scores.csv",
    "synergy_scores": "output/synergy_scores.csv",
    "node_pathway_index": "output/node_pathway_index.json",
    "pathway_catalog": "output/pathway_catalog.json"
  },
  "steps": {
    "calculate_scores": true,
    "prepare_scores": true
  }
}

πŸ“ Input data formatsΒΆ

SIF network fileΒΆ

Tab-separated file with three columns:

source_node    interaction_type    target_node
EGFR           activate            MAPK1
PI3K           inhibit             PTEN

ORIS outputΒΆ

Directory structure with tissue folders containing cell line subdirectories:

tissue_folders/
β”œβ”€β”€ lung/
β”‚   β”œβ”€β”€ A549/
β”‚   β”‚   └── Pairwise_comparison.tsv
β”‚   └── H1299/
β”‚       └── Pairwise_comparison.tsv
└── breast/
    └── MCF7/
        └── Pairwise_comparison.tsv

Node-HGNC mapping (NodeHGNC.csv)ΒΆ

Node,HGNC
EGFR,EGFR
MAPK,MAPK1

KEGG pathway file (kegg_pathway.csv)ΒΆ

pathway_id,pathway_name,gene_symbols
hsa04010,MAPK signaling pathway,"EGFR,MAPK1,RAF1"

πŸ—οΈ ArchitectureΒΆ

Siflex follows a modular architecture with clean separation of concerns:

  • Data Layer (features/): Data loading, transformation, and score calculation

  • Application Layer (apps/): Data preparation functions for each explorer

  • Presentation Layer (apps/*_dash.py): Dash-based interactive visualisations

  • Orchestration Layer (main.py): Pipeline coordination and CLI interface

SIFLEX/
β”œβ”€β”€ siflex/
β”‚   β”œβ”€β”€ cli.py                  # Command-line interface
β”‚   β”œβ”€β”€ config.py               # Configuration management
β”‚   β”œβ”€β”€ main.py                 # Pipeline orchestration
β”‚   β”œβ”€β”€ apps/
β”‚   β”‚   β”œβ”€β”€ network_explorer.py # Network data preparation
β”‚   β”‚   β”œβ”€β”€ network_dash.py     # Network visualisation
β”‚   β”‚   β”œβ”€β”€ pathway_explorer.py # Pathway data preparation
β”‚   β”‚   β”œβ”€β”€ pathway_dash.py     # Pathway visualisation
β”‚   β”‚   └── app_style.py        # Shared styling
β”‚   └── features/
β”‚       β”œβ”€β”€ calculate_scores.py # Score calculation logic
β”‚       β”œβ”€β”€ prepare_scores.py   # Data preparation
β”‚       └── data_utils.py       # Data loading utilities
β”œβ”€β”€ tests/
β”œβ”€β”€ data/
β”œβ”€β”€ output/
└── pyproject.toml