{"id":20186962,"url":"https://github.com/sebukpor/multi-cancer-classification","last_synced_at":"2026-03-19T14:25:18.689Z","repository":{"id":290975378,"uuid":"860821659","full_name":"Sebukpor/multi-cancer-classification","owner":"Sebukpor","description":"The Multi-Cancer Classification Tool is a deep learning-powered web application  designed to classify different classes of cancers based on medical images, providing accurate and fast results to aid medical specialists in diagnosis.  ","archived":false,"fork":false,"pushed_at":"2025-12-04T06:27:28.000Z","size":92915,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-07T13:20:05.189Z","etag":null,"topics":["neural","neural-networks","tensorflow","tensorflowjs","transfer-learning"],"latest_commit_sha":null,"homepage":"https://sebukpor.github.io/multi-cancer-classification/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sebukpor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-21T08:59:35.000Z","updated_at":"2025-12-04T06:27:32.000Z","dependencies_parsed_at":"2025-08-31T12:32:03.692Z","dependency_job_id":null,"html_url":"https://github.com/Sebukpor/multi-cancer-classification","commit_stats":null,"previous_names":["sebukpor/multi-cancer-classification"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Sebukpor/multi-cancer-classification","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sebukpor%2Fmulti-cancer-classification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sebukpor%2Fmulti-cancer-classification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sebukpor%2Fmulti-cancer-classification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sebukpor%2Fmulti-cancer-classification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sebukpor","download_url":"https://codeload.github.com/Sebukpor/multi-cancer-classification/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sebukpor%2Fmulti-cancer-classification/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30206339,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"online","status_checked_at":"2026-03-07T02:00:06.765Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["neural","neural-networks","tensorflow","tensorflowjs","transfer-learning"],"created_at":"2024-11-14T03:19:19.899Z","updated_at":"2026-03-07T03:02:11.529Z","avatar_url":"https://github.com/Sebukpor.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧬 Browser-Based Multi-Cancer Classification Framework Using Depthwise Separable Convolutions for Precision Diagnostics\n\n![TensorFlow.js](https://img.shields.io/badge/Made%20with-TensorFlow.js-orange?logo=tensorflow)\n![License](https://img.shields.io/badge/License-MIT-blue.svg)\n![Status](https://img.shields.io/badge/Demo-Live-success?logo=huggingface)\n![Platform](https://img.shields.io/badge/Platform-Browser--Based-green)\n\n---\n\n**Authors:** Divine Sebukpor, Ikenna Odezuligbo*, Maimuna Nagey, Michael Chukwuka, Oluwamayowa Akinsuyi (Corresponding Author)\n\n**Access Paper :** [here](https://www.mdpi.com/2075-4418/15/23/3066)\n\n* **Test on Web:** [Multi-Cancer Classification – DAS medhub](https://sebukpor.github.io/multi-cancer-classification/)\n\n**Live Demo (Hugging Face Space):** [https://huggingface.co/spaces/Sebukpor/multi-cancer-gradcam](https://huggingface.co/spaces/Sebukpor/multi-cancer-gradcam)\n\n---\n\n## Overview\n\nThis repository documents our work: **“Browser-Based Multi-Cancer Classification Framework Using Depthwise Separable Convolutions for Precision Diagnostics.”**\nWe present a unified, browser-accessible AI system capable of detecting multiple cancer types from medical images, offering fast, accurate, and accessible diagnostic assistance via a web interface.\n\n---\n\n## Multi-Cancer Classification Tool\n\nThe Multi-Cancer Classification Tool is a machine-learning-powered web application developed by **DAS medhub**.\nUsers can upload a medical image and receive a predicted cancer type. The inference runs entirely in the browser using TensorFlow.js—no specialised hardware or server-side inference needed.\n\n### Features\n\n* **Multi-Cancer Classification:** Supports classification for 26 cancer types (see list below).\n* **Web-based Inference:** Model runs client-side in the browser.\n* **Fast \u0026 Efficient:** Delivers predictions within seconds.\n* **Accessible:** Tailored for clinicians, researchers, and healthcare professionals.\n\n---\n\n## Model Architecture\n\n* **Base architecture:** Xception (pretrained backbone, fine-tuned).\n* **Key components:**\n\n  * Depthwise Separable Convolutions for lightweight computation\n  * Batch Normalization for stability\n  * Dropout for regularization\n  * Dense layers for classification\n* **Input size:** 224 × 224 pixels\n* **Output:** Softmax over 26 cancer classes.\n\n---\n\n## Data Pre-processing \u0026 Training\n\n* **Image resizing:** All images scaled to 224 × 224.\n* **Normalization:** Pixel values scaled to [0, 1].\n* **Augmentation:** Rotation, zooming, and horizontal flips.\n\n## 🛠️ Training Protocol\n\n| Parameter               | Value                         |\n|------------------------|-------------------------------|\n| Base Model             | Xception (ImageNet weights)   |\n| Input Size             | 224 × 224 × 3                 |\n| Batch Size             | 32                            |\n| Epochs                 | 21                            |\n| Optimizer              | Adam (lr = 1e⁻⁴)              |\n| Loss                   | Categorical Cross-Entropy     |\n| Augmentation           | Rotation (45°), zoom (0.2), horizontal/vertical flip, shift |\n| Regularization         | Dropout (0.1–0.4), L2 weight decay |\n| Fine-tuned Layers      | Last 50 layers of Xception    |\n| Callbacks              | EarlyStopping (patience=10), ReduceLROnPlateau (factor=0.2, patience=5) |\n\n\u003e 💡 The model is **class-balanced**: 4,000 training images per class, 500 validation/test per class.\n\n---\n\n## Performance Metrics\n\n| Metric                     | Value   |\n| -------------------------- | ------- |\n| **Top-1 Accuracy**         | 99.85%  |\n| **Top-5 Accuracy**         | 100.00% |\n| **Precision (macro avg.)** | 1.00    |\n| **Recall (macro avg.)**    | 1.00    |\n| **F1-score (macro avg.)**  | 1.00    |\n\n---\n\n## Confusion Matrix \u0026 Loss Curves\n\n![Confusion Matrix](images/confusion_matrix.png)\n![Training \u0026 Validation Loss](images/train_and_validation.png)\n\n---\n\n## 🧫 Classes of Cancer and Imaging Modalities\n\nEach class corresponds to a **specific imaging modality** from a **documented dataset**, ensuring that uploaded images match the model’s expected input type.\n\n---\n| Cancer Type         | Dataset Source (Kaggle/Figshare)                                                                 |\n|---------------------|--------------------------------------------------------------------------------------------------|\n| Brain Tumor         | [Figshare – Cheng (2017)](https://figshare.com/articles/dataset/brain_tumor_dataset/1512427)      |\n| Acute Lymphoblastic Leukemia | [Kaggle – ALL-IDB](https://www.kaggle.com/datasets/mehradaria/leukemia)                   |\n| Breast Cancer       | [BreakHis – Spanhol et al.](https://www.kaggle.com/datasets/anaselmasry/breast-cancer-dataset)   |\n| Cervical Cancer     | [SIPaKMeD – Plissiti et al.](https://www.kaggle.com/datasets/prahladmehandiratta/cervical-cancer-largest-dataset-sipakmed) |\n| Kidney CT           | [CT-Kidney Dataset](https://www.kaggle.com/datasets/nazmul0087/ct-kidney-dataset-normal-cyst-tumor-and-stone) |\n| Lung \u0026 Colon        | [LC25000 – Borkowski et al.](https://www.kaggle.com/datasets/biplobdey/lung-and-colon-cancer)    |\n| Lymphoma            | [Malignant Lymphoma](https://www.kaggle.com/datasets/andrewmvd/malignant-lymphoma-classification)|\n| Oral Cancer         | [Oral Histopathology](https://www.kaggle.com/datasets/ashenafifasilkebede/dataset)               |\n\n---\n\n### 1. Acute Lymphoblastic Leukemia ↪ [Reference](https://www.kaggle.com/datasets/mehradaria/leukemia)\n\n**Imaging Modality:** Microscopy (blood smear / bone marrow)\n\n* **all_benign:** Benign\n* **all_early:** Early\n* **all_pre:** Pre\n* **all_pro:** Pro\n\n---\n\n### 2. Brain Cancer ↪ [Reference](https://figshare.com/articles/dataset/brain_tumor_dataset/1512427)\n\n**Imaging Modality:** MRI – T1-weighted contrast-enhanced (CE-MRI)\n\n* **brain_glioma:** Glioma\n* **brain_menin:** Meningioma\n* **brain_tumor:** Pituitary Tumor\n\n---\n\n### 3. Breast Cancer ↪ [Reference](https://www.kaggle.com/datasets/anaselmasry/breast-cancer-dataset)\n\n**Imaging Modality:** Histopathology / Microscopy (digital pathology – breast)\n\n* **breast_benign:** Benign\n* **breast_malignant:** Malignant\n\n---\n\n### 4. Cervical Cancer ↪ [Reference](https://www.kaggle.com/datasets/prahladmehandiratta/cervical-cancer-largest-dataset-sipakmed)\n\n**Imaging Modality:** Cytology / Histopathology (Pap smear / cervical slide)\n\n* **cervix_dyk:** Dyskeratotic\n* **cervix_koc:** Koilocytotic\n* **cervix_mep:** Metaplastic\n* **cervix_pab:** Parabasal\n* **cervix_sfi:** Superficial-Intermediate\n\n---\n\n### 5. Kidney Cancer ↪ [Reference](https://www.kaggle.com/datasets/nazmul0087/ct-kidney-dataset-normal-cyst-tumor-and-stone)\n\n**Imaging Modality:** Computed Tomography (CT scans)\n\n* **kidney_normal:** Normal\n* **kidney_tumor:** Tumor\n\n---\n\n### 6. Lung and Colon Cancer ↪ [Reference](https://www.kaggle.com/datasets/biplobdey/lung-and-colon-cancer)\n\n**Imaging Modality:** Histopathology (Microscopy of H\u0026E-stained slides)\n\n* **colon_aca:** Colon Adenocarcinoma\n* **colon_bnt:** Colon Benign Tissue\n* **lung_aca:** Lung Adenocarcinoma\n* **lung_bnt:** Lung Benign Tissue\n* **lung_scc:** Lung Squamous Cell Carcinoma\n\n---\n\n### 7. Lymphoma ↪ [Reference](https://www.kaggle.com/datasets/andrewmvd/malignant-lymphoma-classification)\n\n**Imaging Modality:** Histopathology / Microscopy (hematologic tissue slides)\n\n* **lymph_cll:** Chronic Lymphocytic Leukemia\n* **lymph_fl:** Follicular Lymphoma\n* **lymph_mcl:** Mantle Cell Lymphoma\n\n---\n\n### 8. Oral Cancer ↪ [Reference](https://www.kaggle.com/datasets/ashenafifasilkebede/dataset)\n\n**Imaging Modality:** Histopathology (H\u0026E-stained oral cavity tissue slides)\n\n* **oral_normal:** Normal\n* **oral_scc:** Oral Squamous Cell Carcinoma\n\n---\n\n\n## 🧾 Dataset and Resource Links\n\n* **Full Preprocessed Dataset DOI:** [Cancer Classification](https://doi.org/10.34740/kaggle/dsv/9419092)\n* **Demo Video:** [https://youtu.be/GQ7QS0NIviA?si=IRA5Ncn5bzYd0wdm](https://youtu.be/GQ7QS0NIviA?si=IRA5Ncn5bzYd0wdm)\n* **Test on Web:** [Multi-Cancer Classification – DAS medhub](https://sebukpor.github.io/multi-cancer-classification/)\n\n---\n\n## Live Demo\n\nTry the live demo on Hugging Face:\n🔗 [https://huggingface.co/spaces/Sebukpor/multi-cancer-gradcam](https://huggingface.co/spaces/Sebukpor/multi-cancer-gradcam)\n*Upload sample medical images and receive instant predictions — all processed in your browser.*\n\n---\n\n## License\n\nThis project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for details.\n\n---\n\n## Contact\n\n📧 **Email:** [divinesebukpor@gmail.com](mailto:divinesebukpor@gmail.com)\n\n---\n\n## Acknowledgements\n\nWe thank all dataset providers, research collaborators, and open-source communities that contributed to the datasets, deployment, and web integration.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebukpor%2Fmulti-cancer-classification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebukpor%2Fmulti-cancer-classification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebukpor%2Fmulti-cancer-classification/lists"}