Skip to main content

Feature selection pipeline for high-dimensional data with a focus on genomics and bioinformatics

Project description

featsel

Feature selection pipeline for high-dimensional data with a focus on genomics and bioinformatics.

The Problem

Modern datasets often contain thousands of features but relatively few samples. This is especially common in:

  • Genomics: Gene expression profiles with 20,000+ genes per patient
  • Text analysis: Document classification with large vocabularies
  • Sensor data: IoT and industrial monitoring systems

Training models on such data leads to overfitting, long computation times, and poor interpretability. Feature selection addresses this by identifying the most predictive variables while discarding noise.

What This Project Does

This project implements a feature selection pipeline that:

  • Applies multiple feature selection methods (filter, wrapper, and embedded approaches)
  • Compares their effectiveness on classification tasks
  • Scales efficiently through parallelization
  • Produces interpretable results for domain experts

The primary use case is predicting breast cancer molecular subtypes from gene expression data, but the pipeline generalizes to other high-dimensional classification problems.

Project Structure

├── configs/            # Dataset configuration files (YAML)
├── docs/               # Report chapters (Markdown)
├── notebooks/          # Jupyter notebooks for analysis
├── featsel/            # Main Python package
├── datasets/           # Input data (one subfolder per dataset)
├── figures/            # Generated plots
└── references/         # Project proposal and papers

Installation

# Clone the repository
git clone https://github.com/drormeir/featsel.git
cd featsel

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

Future PyPI installation (not yet available):

pip install featsel

Usage

Run the pipeline with a configuration file:

python -m featsel.run --config configs/scanb.yaml

To use your own dataset, create a config file (see configs/scanb.yaml as a template) and a data folder in datasets/.

Datasets

The pipeline is dataset-agnostic. Each dataset needs:

  • A subfolder in datasets/ with features.csv and metadata.csv
  • A YAML config file in configs/

SCAN-B Breast Cancer (included config)

  • Gene expression measurements (thousands of features)
  • PAM50 molecular subtype labels (Basal, LumA, LumB, HER2, Normal)
  • Clinical metadata (ER status, survival data)

Note: Data files are not included due to size. Download from [TBD] and place in datasets/scanb/.

Status

This project is part of an M.Sc. thesis at Reichman University, supervised by Dr. Ben Galili.

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

featsel-0.1.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

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

featsel-0.1.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for featsel-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9712876fb3805a9a076415e563b2a43c574ef3df145ce424e39e5d00af6c316f
MD5 fa8865640bd8ca8ff95c7f6b6d019e1e
BLAKE2b-256 3fd2729f36cacac34ee0c014721fd1780a36aec5f80b71a581e04736a20cd0ee

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for featsel-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f2c8e79c56d0e0e2e21eb806d03af76d020b1854a197aaa2fec6fde573d59ad
MD5 5ef7a57036211600aa75c39cff8a95ba
BLAKE2b-256 bb92f7eaf240db376c2e9edb72fa93533a554b1f74659149ae137d2cfa140148

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