Note: All analyses and the development of the MRS package were conducted using R version 4.0.2, ensuring compatibility and reproducibility within this environment. The full list of R packages and their versions used during the analysis is provided in Session_info.txt.
This repository includes:
-
📊 Malaria Lipid Metabolism Analysis — A computational pipeline based on single-cell RNA-seq and bulk RNA-seq to identify conserved lipid metabolism-related genes in Plasmodium species and prioritize functional candidates for downstream validation.
-
🤖 MRS (Metabolism-Related Score) R Package — A machine learning framework built on Spy-PU learning (Spy-based positive-unlabeled learning), designed for gene classification in datasets containing only positive samples. Includes model comparison, feature selection, and final model training.
We jointly analyzed scRNA-seq data from Plasmodium falciparum and Plasmodium berghei IDC stages. A lipid metabolism gene, CAP, was identified and shown to regulate phosphatidylcholine and phosphatidylethanolamine biosynthesis via interaction with host CTL1.
Figure 1. UMAP visualization of IDC-stage scRNA-seq for P. falciparum and P. berghei, downloaded from the Malaria Cell Atlas.
This folder contains core datasets used throughout the analysis, including single-cell and bulk RNA-seq data, gene annotation, and machine learning input features.
| File / Folder | Description |
|---|---|
01_01_Pb_10X/ |
Single-cell RNA-seq dataset of Plasmodium berghei, including raw gene expression matrix and cell-level phenotype annotations. Data sourced from the Malaria Cell Atlas. |
01_01_Pf_10X/ |
Single-cell RNA-seq dataset of Plasmodium falciparum, including raw gene expression matrix and cell-level phenotype annotations. Data sourced from the Malaria Cell Atlas. |
01_03_Gene_Orth_Data.Rds |
One-to-one ortholog mapping between P. berghei and P. falciparum, enabling cross-species gene name translation. |
03_Gene.xlsx |
Curated list of lipid metabolism-related genes for pathway analysis and candidate selection. |
03_GeneInfo_forML.Rds |
Feature matrix with gene-level annotations and binary labels used as input for the MRS model. |
04_raw_counts.txt |
Bulk RNA-seq raw count matrix from the CAP knockout experiment (phenotype data not available). |
The analysis scripts are organized by module prefix:
01_scripts: Single-cell preprocessing, Seurat object construction, scmap-based annotation, and transcriptomic feature analysis.02_scripts: Gene temporal expression analysis using Mfuzz, aimed at identifying conserved trophozoite-stage upregulated genes.03_scripts: Target gene prioritization using the MRS package.04_scripts: Differential expression (DE) analysis of CAP knockout bulk RNA-seq data using DESeq2.
| Script | Description |
|---|---|
01_01_Making_SeuratObject_Pb_10X.Rmd |
Constructs Seurat object from P. berghei 10X data. |
01_02_Making_SeuratObject_Pf_10X.Rmd |
Constructs Seurat object from P. falciparum 10X data. |
01_03_Scmap.Rmd |
Performs cell type and stage assignment using Scmap. |
01_04_scRNAseq_conclusion.Rmd |
Summary of single-cell RNA-seq results and temporal feature characteristics. |
02_01_Mfuzz_Pb.Rmd |
Temporal expression clustering for P. berghei using Mfuzz. |
02_02_Mfuzz_Pf.Rmd |
Temporal expression clustering for P. falciparum using Mfuzz. |
02_03_Mfuzz_Conclusion.Rmd |
Summary and comparison of dynamic gene expression patterns. |
03_01_LipidGene_expression.Rmd |
Expression analysis of lipid metabolism-related genes. |
03_02_ML_for_candidate_gene.Rmd |
Machine learning-based gene scoring and selection using the MRS package. |
04_DESeq2.Rmd |
Differential expression analysis for CAP knockout using DESeq2. |
This folder contains .Rds files with processed results from each major analysis step. Files with pb and pf denote P. berghei and P. falciparum, respectively.
| File(s) | Description |
|---|---|
01_04_DE_pb.Rds, 01_04_DE_pf.Rds |
Stage-specific marker genes identified from single-cell data for each species. |
01_04_dds_res.Rds |
DESeq2 pseudobulk result object combining both species. |
02_01_pb_mfuzz_cl.Rds, 02_02_pf_mfuzz_cl.Rds |
Mfuzz clustering results (cluster labels). |
02_01_pb_mfuzz_df.Rds, 02_02_pf_mfuzz_df.Rds |
Preprocessed expression matrices used in Mfuzz analysis. |
02_01_pb_mfuzz_gene.Rds, 02_01_pf_mfuzz_gene.Rds |
Final selected conserved stage-enriched genes. |
02_01_pb_mfuzz_plotdata.Rds, 02_01_pf_mfuzz_plotdata.Rds |
Processed data for Mfuzz cluster visualization. |
03_02_PosNegData.Rds |
Dataset for the MRS-based gene prioritization model. |
MRS is a machine learning package built on caret, tailored for positive-only binary classification tasks.
All source files and detailed function documentation are available in the /MRS_package folder.
It implements a Spy-PU learning pipeline to identify reliable negatives, compares 10 classifiers, supports ablation-based feature selection, and provides end-to-end model evaluation.
- Spy-PU learning with tunable parameters
- Model comparison (XGBoost, RF, SVM, etc.)
- Feature selection via ablation (optional)
- Final model tuning + performance visualization
The MRS package was developed under R version 4.0.2, and depends on core packages including caret, pROC, PRROC, and doParallel, among others. Please refer to the package DESCRIPTION file for a complete list and version requirements.
# Install from source
devtools::install_local("MRS_1.0.0.tar.gz")
# Step 1: Find optimal PU-learning parameters using spy strategy
pu_param <- Tune_spy_pu(data = my_data)
# Step 2: Identify reliable negatives using selected PU-learning parameters
pu_data <- Identify_reliable_negatives(data = my_data)
# Step 3: Prepare training and testing datasets
prep <- Prepare_classification_data(pu_data)
# Step 4: Train and compare multiple models, evaluate performance
models <- Train_multiple_models(prepared_data = prep)
# Evaluate training performance across models
train_eval <- Evaluate_train_performance(models, prepared_data = prep)
# Evaluate test performance across models
test_eval <- Evaluate_test_performance(models, prepared_data = prep)
# Step 5 (Optional): Perform feature ablation to identify key predictors
fs_result <- Feature_selection_ablation(prepared_data = prep, model_name = "XX")
# Step 6: Tune hyperparameters and finalize best model
final_model <- Tune_model_eval(prepared_data = fs_result, model_name = "XX")
# Plot AUROC and AUPRC curves
Plot_roc_curves(final_model$train_roc_list, final_model$test_roc, title = "ROC Curves")
Plot_pr_curves(final_model$train_pr_list, final_model$test_pr, title = "Precision-Recall Curves")Detailed examples for running MRS — including data preparation, step-by-step execution, and result visualization — are available in the Wiki.
You can find:
- Input data formats and preprocessing steps
- Command-line and R script usage examples
- Sample output interpretation and visualization guides
-
Howick VM, Russell AJC, Andrews T, Heaton H, Reid AJ, Natarajan K, Butungi H, Metcalf T, Verzier LH, Rayner JC, Berriman M, Herren JK, Billker O, Hemberg M, Talman AM, Lawniczak MKN. (2019). The Malaria Cell Atlas: Single parasite transcriptomes across the complete Plasmodium life cycle. Science, 365(6455):eaaw2619. https://doi.org/10.1126/science.aaw2619
-
Kuhn M. (2008). Building Predictive Models in R Using the caret Package. Journal of Statistical Software, 28(5), 1–26. https://doi.org/10.18637/jss.v028.i05
-
Liu B., Dai Y., Li X., Lee W.S., and Yu P.S. (2003). Building text classifiers using positive and unlabeled examples. In Proceedings of the Third IEEE International Conference on Data Mining (ICDM), pp. 179–186. https://doi.org/10.1109/ICDM.2003.1250918
If you use the Malaria Lipid Metabolism Analysis pipeline or the MRS R package in your work, please cite this repository:
This repository accompanies a manuscript currently under peer review. Citation details will be updated upon publication.
