library(scATACutils)

plot from bam file

This is for hg19 data. for hg38, change the txdb accordingly.

library(TxDb.Hsapiens.UCSC.hg19.knownGene)
library(org.Hs.eg.db)
library(RColorBrewer)
chrom<-  "chr12"
start<-  69730394
end<- 69760971

# this takes 1.5 mins
PlotCoverageByGroup(chrom = chrom, start = start, end = end, bam = "~/projects/playground/atac_pbmc_5k_v1_possorted_bam.bam",
                    grouping = "~/projects/playground/grouping.txt",
                    txdb = TxDb.Hsapiens.UCSC.hg19.knownGene,
                    eg.db = org.Hs.eg.db,
                    label.margin = -0.3, track_cols = "red")

plot from fragment.tsv file

## this is much faster.
PlotCoverageByGroup(chrom = chrom, start = start, end = end, fragment = "~/projects/playground/atac_pbmc_5k_v1_fragments.tsv.gz",
                    grouping = "~/projects/playground/grouping.txt",
                    label.margin = -0.3, track_cols =  "blue")

track_cols<- brewer.pal(9, "Paired")
PlotCoverageByGroup(chrom = chrom, start = start, end = end, fragment = "~/projects/playground/atac_pbmc_5k_v1_fragments.tsv.gz",
                    grouping = "~/projects/playground/grouping.txt",
                    label.margin = -0.3, track_cols = track_cols)

specify a gene rather than the chr, start and end

PlotCoverageByGroup(gene_name = "MS4A1", downstream = 8000, 
                    yaxis_cex = 1,
                    fragment = "~/projects/playground/atac_pbmc_5k_v1_fragments.tsv.gz",
                    grouping = "~/projects/playground/grouping.txt",
                    tick_label_cex = 1, tick.dist = 5000,
                    track_cols = "red", 
                    label_cex = 1,
                    minor.tick.dist = 1000, label.margin = -0.6)

plot only a subset of the clusters with user specified order:

PlotCoverageByGroup(gene_name = "MS4A1", downstream = 8000, 
                    yaxis_cex = 1,
                    fragment = "~/projects/playground/atac_pbmc_5k_v1_fragments.tsv.gz",
                    clusters_to_plot = c("7", "5", "3", "4"),
                    grouping = "~/projects/playground/grouping.txt",
                    tick_label_cex = 1, tick.dist = 5000,
                    track_cols = "red", 
                    label_cex = 1,
                    minor.tick.dist = 1000, label.margin = -0.6)

plot only a subset of the clusters with user specified order and color

track_cols<- brewer.pal(4, "Dark2")
PlotCoverageByGroup(gene_name = "MS4A1", downstream = 8000, 
                    yaxis_cex = 1,
                    fragment = "~/projects/playground/atac_pbmc_5k_v1_fragments.tsv.gz",
                    clusters_to_plot = c("7", "5", "3", "4"),
                    grouping = "~/projects/playground/grouping.txt",
                    tick_label_cex = 1, tick.dist = 5000,
                    track_cols = track_cols, 
                    label_cex = 1,
                    minor.tick.dist = 1000, label.margin = -0.6)