Contains the code and figures for the manuscript associated with NIFty: Classification with Missing Data - A NIFty Pipeline for Single-Cell Proteomics
Download or clone the repository before continuing.
To download and prepare the manuscript datasets for NIFty, do the following:
- Ensure you have the following python packages installed in your environment:
- pandas
- numpy
- scikit-learn
- anndata
- pyarrow
- Ensure you have the following R packages installed in your environment:
- MSstats
- tidyverse
- data.table
- readxl
- Navigate to
Data_Prep/Ai_Van-Eyk_2025/Original_Data/README.mdand follow the instructions. - Navigate to
Data_Prep/Furtwaengler_Porse_Schoof_2025/Original_Data/README.mdand follow the instructions. - Navigate to
Data_Prep/Khan_Elcheikhali_Slavov_2024/Original_Data/README.mdand follow the instructions. - Navigate to
Data_Prep/Leduc_Slavov_2022/Original_Data/README.mdand follow the instructions. - Navigate to
Data_Prep/Montalvo_Alvarez-Dominguez_Slavov_2023/Original_Data/README.mdand follow the instructions. - Navigate to
Data_Prep/Petrosius_Schoof_2025/Original_Data/README.mdand follow the instructions. - Navigate to
Data_Prep/Saddic_Parker_2026/Original_Data/README.mdand follow the instructions.
If you have not already, follow the instructions in the Data Prep section before continuing.
To recreate the results for testing on incomplete data, do the following:
-
Ensure you have the following python packages installed in your environment:
- pandas
- numpy
-
Download NIFty and install the dependencies as described in the documentation.
-
Navigate to
Testing/No_Imputation/and run the following python files:Ai_imputed.pyAi_unimputed.pyFurtwaengler_imputed_HSCxEarlyEryth.pyFurtwaengler_imputed_HSCxEMP.pyFurtwaengler_unimputed_HSCxEarlyEryth.pyFurtwaengler_unimputed_HSCxEMP.pyKhan_imputed.pyKhan_unimputed.pyLeduc_imputed.pyLeduc_unimputed.pyMontalvo_imputed.pyMontalvo_unimputed.pyPetrosius_imputed.pyPetrosius_unimputed.pySaddic_imputed_fibro.pySaddic_unimputed_fibro.pySaddic_imputed_mfn.pySaddic_unimputed_mfn.pySaddic_imputed_smc.pySaddic_unimputed_smc.pySaddic_imputed_wt.pySaddic_unimputed_wt.py
-
For each configuration file created (found in
Testing/No_Imputation/Test_{Dataset Identifier}/Config_Files), run NIFty using the following command:python <path_to_local_NIFty_download>/nifty.py -c <path to config file> -
Run
combine_results.py(this will replacecombined_results.tsvwith your results).
Upcoming
To recreate the results for testing on multiclass data, do the following:
- Ensure you have the following python packages installed in your environment:
- pandas
- scikit-learn
- Download NIFty from and install the dependencies as described in the documentation.
- Navigate to
Testing/Multiclass/. - Add the absolute path to the directory containing
nifty.pyand associated files to line 18 inmulticlass_wrapper.py. - Run
multiclass_wrapper.py. - Run
combine_predictions.py(this will replacecombined_predictions.tsvwith your results).
You do not need to have completed the Data Prep and Testing sections before continuing.
To recreate Figures 3, 4, and 6 and Table 1 found in the manuscript, do the following:
- Ensure you have the following R packages installed in your environment:
- tidyverse
- this.path
- caret
- ggtext
- Navigate to
Figures_and_Tables. - Run the following R files:
Generate_Figure_3.R(recreatesFig3_Leduc.png,Fig3_Montalvo.png)Generate_Table_1.R(recreatesTable1.tsv)Generate_Figure_4.R(recreatesFig4.png)Generate_Figure_6.R(recreatesFig6.png)