The {scMitoMut} is a R/Bioconductor Package for lineage informative mitochondrial mutation calling in Single-Cell sequencing.
The mitochondrial somatic mutations are promising lineage markers for single-cell sequencing data. The {scMitoMut} package provides a comprehensive function to call the lineage informative mitochondrial mutations using beta-binomial model.
## Install `BiocManager` package to manage Bioconductor packages.
install.packages("BiocManager")
## Install `scMitoMut` from Bioconductor
BiocManager::install("scMitoMut")
# install.packages("devtools")
devtools::install_github("wenjie1991/scMitoMut", build_vignettes = TRUE)
# or
BiocManager::install("scMitoMut", version = "devel")
A vignette can be found in Bioconductor.
And the source code can be found here.
You can also access the vignette by the R command browseVignettes('scMitoMut')
after installing the package.
This is a simple example that demonstrates the main function of the package. It can be executed in less than 1 minute.
library(scMitoMut)
# load the data
## Use the example data
f = system.file("extdata", "mini_dataset.tsv.gz", package = "scMitoMut")
## Load the data with parse_table function
f_h5 = parse_table(f, sep = "\t", h5_file = "./mut.h5")
## open the h5f file
x = open_h5_file(f_h5)
# run the model fit
# You can increase the cpu core to accelerate
# This step need some time, so the result will be kept in h5 file,
# you do not need to re-run this step, when you load the h5 file next time.
run_model_fit(x, mc.cores = 1)
# Filter the loci based on the model fit results
# The filter options will be keeped in the object by memory
# Next time you re-load the h5 file, the filter will be initiated as default
x = filter_loc(x,
min_cell = 5,
model = "bb",
p_threshold = 0.01,
p_adj_method = "fdr"
)
x
# Set the cell annotation
f = system.file("extdata", "mini_dataset_cell_ann.csv", package = "scMitoMut")
cell_ann = read.csv(f, row.names=1)
# Prepare the color for cell annotation
colors = c(
"Cancer Epi" = "#f28482",
Blood = "#f6bd60")
ann_colors = list("SeuratCellTypes" = colors)
# plot the heatmap for p-value
plot_heatmap(x, type = "p", cell_ann = cell_ann, ann_colors = ann_colors, percent_interp = 0.2)
# plot the heatmap for allele frequency
plot_heatmap(x, type = "af", cell_ann = cell_ann, ann_colors = ann_colors, percent_interp = 0.2)
# check af~coverage for one loci
plot_af_coverage(x, "chrM.1227")
You are welcome to open an issue or make a pull request.