{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Import packages" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Loading required package: stats4\n", "Loading required package: BiocGenerics\n", "Loading required package: parallel\n", "\n", "Attaching package: ‘BiocGenerics’\n", "\n", "The following objects are masked from ‘package:parallel’:\n", "\n", " clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,\n", " clusterExport, clusterMap, parApply, parCapply, parLapply,\n", " parLapplyLB, parRapply, parSapply, parSapplyLB\n", "\n", "The following objects are masked from ‘package:stats’:\n", "\n", " IQR, mad, sd, var, xtabs\n", "\n", "The following objects are masked from ‘package:base’:\n", "\n", " anyDuplicated, append, as.data.frame, basename, cbind, colMeans,\n", " colnames, colSums, dirname, do.call, duplicated, eval, evalq,\n", " Filter, Find, get, grep, grepl, intersect, is.unsorted, lapply,\n", " lengths, Map, mapply, match, mget, order, paste, pmax, pmax.int,\n", " pmin, pmin.int, Position, rank, rbind, Reduce, rowMeans, rownames,\n", " rowSums, sapply, setdiff, sort, table, tapply, union, unique,\n", " unsplit, which, which.max, which.min\n", "\n", "Loading required package: S4Vectors\n", "\n", "Attaching package: ‘S4Vectors’\n", "\n", "The following object is masked from ‘package:base’:\n", "\n", " expand.grid\n", "\n", "Loading required package: IRanges\n", "Loading required package: GenomeInfoDb\n", "Warning message:\n", "“replacing previous import ‘IRanges::which’ by ‘Matrix::which’ when loading ‘scABC’”Loading required package: Biostrings\n", "Loading required package: XVector\n", "\n", "Attaching package: ‘Biostrings’\n", "\n", "The following object is masked from ‘package:base’:\n", "\n", " strsplit\n", "\n", "\n", "Attaching package: ‘data.table’\n", "\n", "The following object is masked from ‘package:GenomicRanges’:\n", "\n", " shift\n", "\n", "The following object is masked from ‘package:IRanges’:\n", "\n", " shift\n", "\n", "The following objects are masked from ‘package:S4Vectors’:\n", "\n", " first, second\n", "\n", "\n", "Attaching package: ‘dplyr’\n", "\n", "The following objects are masked from ‘package:data.table’:\n", "\n", " between, first, last\n", "\n", "The following objects are masked from ‘package:Biostrings’:\n", "\n", " collapse, intersect, setdiff, setequal, union\n", "\n", "The following object is masked from ‘package:XVector’:\n", "\n", " slice\n", "\n", "The following objects are masked from ‘package:GenomicRanges’:\n", "\n", " intersect, setdiff, union\n", "\n", "The following object is masked from ‘package:GenomeInfoDb’:\n", "\n", " intersect\n", "\n", "The following objects are masked from ‘package:IRanges’:\n", "\n", " collapse, desc, intersect, setdiff, slice, union\n", "\n", "The following objects are masked from ‘package:S4Vectors’:\n", "\n", " first, intersect, rename, setdiff, setequal, union\n", "\n", "The following objects are masked from ‘package:BiocGenerics’:\n", "\n", " combine, intersect, setdiff, union\n", "\n", "The following objects are masked from ‘package:stats’:\n", "\n", " filter, lag\n", "\n", "The following objects are masked from ‘package:base’:\n", "\n", " intersect, setdiff, setequal, union\n", "\n", "── Attaching packages ─────────────────────────────────────── tidyverse 1.2.1 ──\n", "✔ ggplot2 3.1.0 ✔ readr 1.3.1\n", "✔ tibble 2.1.1 ✔ purrr 0.3.2\n", "✔ tidyr 0.8.3 ✔ stringr 1.4.0\n", "✔ ggplot2 3.1.0 ✔ forcats 0.4.0\n", "── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──\n", "✖ dplyr::between() masks data.table::between()\n", "✖ dplyr::collapse() masks Biostrings::collapse(), IRanges::collapse()\n", "✖ dplyr::combine() masks BiocGenerics::combine()\n", "✖ purrr::compact() masks XVector::compact()\n", "✖ dplyr::desc() masks IRanges::desc()\n", "✖ tidyr::expand() masks S4Vectors::expand()\n", "✖ dplyr::filter() masks stats::filter()\n", "✖ dplyr::first() masks data.table::first(), S4Vectors::first()\n", "✖ dplyr::lag() masks stats::lag()\n", "✖ dplyr::last() masks data.table::last()\n", "✖ ggplot2::Position() masks BiocGenerics::Position(), base::Position()\n", "✖ purrr::reduce() masks GenomicRanges::reduce(), IRanges::reduce()\n", "✖ dplyr::rename() masks S4Vectors::rename()\n", "✖ dplyr::slice() masks XVector::slice(), IRanges::slice()\n", "✖ purrr::transpose() masks data.table::transpose()\n", "\n", "Attaching package: ‘Matrix’\n", "\n", "The following object is masked from ‘package:tidyr’:\n", "\n", " expand\n", "\n", "The following object is masked from ‘package:S4Vectors’:\n", "\n", " expand\n", "\n", "\n", "Attaching package: ‘gplots’\n", "\n", "The following object is masked from ‘package:IRanges’:\n", "\n", " space\n", "\n", "The following object is masked from ‘package:S4Vectors’:\n", "\n", " space\n", "\n", "The following object is masked from ‘package:stats’:\n", "\n", " lowess\n", "\n", "SHA-1 hash of file is 015fc0457e61e3e93a903e69a24d96d2dac7b9fb\n" ] } ], "source": [ "options(stringsAsFactors = FALSE)\n", "library(GenomicRanges)\n", "library(scABC)\n", "library(Rsamtools)\n", "library(data.table)\n", "library(dplyr)\n", "library(tidyverse)\n", "library(Matrix)\n", "\n", "library(gplots) \n", "library(RColorBrewer)\n", "library(devtools)\n", "source_url(\"https://raw.githubusercontent.com/obigriffith/biostar-tutorials/master/Heatmaps/heatmap.3.R\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Functions" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "bam2gr <- function(bamfile, PAIRED = FALSE) {\n", " if (PAIRED) {\n", " scanned = scanBam(bamfile, param = ScanBamParam(flag =scanBamFlag(isMinusStrand = FALSE,\n", " isUnmappedQuery = FALSE,\n", " isProperPair = TRUE),\n", " what = c(\"rname\", \"pos\", \"isize\")))[[1]]\n", " out = GRanges(seqnames = scanned$rname, IRanges(start = scanned$pos, width = scanned$isize))\n", " } else {\n", " scanned = scanBam(bamfile, param = ScanBamParam(flag =scanBamFlag(isUnmappedQuery = FALSE),\n", " what = c(\"rname\", \"pos\", \"strand\", \"qwidth\")))[[1]]\n", " out = GRanges(seqnames = scanned$rname,\n", " IRanges(start = ifelse(scanned$strand == \"-\", scanned$pos + scanned$qwidth - 1, scanned$pos),\n", " width = scanned$qwidth))\n", " }\n", " return(out)\n", "}\n", "\n", "getCountsByReadGroup <- function(bamfile, peaks, RGtag, tags = NULL, PAIRED = FALSE, VERBOSE = FALSE){\n", " scanned <- Rsamtools::scanBam(bamfile,\n", " param = Rsamtools::ScanBamParam(flag =scanBamFlag(isUnmappedQuery = FALSE),\n", " what = c(\"rname\", \"pos\", \"strand\", \"qwidth\"),\n", " tag = RGtag))[[1]]\n", " if(is.null(tags)){\n", " RGtags = unique(unlist(scanned$tag[RGtag]))\n", " }\n", " counts_mat = Matrix::Matrix(0, nrow = length(peaks), ncol = length(tags), sparse = TRUE)\n", " for(i in 1:length(tags)){\n", " tag = tags[i]\n", " if(VERBOSE){\n", " message(\"Processing tag \", tag)\n", " }\n", " match_RG <- which(scanned$tag[[RGtag]] == tag)\n", " # convert bamfiles to Genomic Ranges\n", " bam.gr = GenomicRanges::GRanges(seqnames = scanned$rname[match_RG],\n", " IRanges::IRanges(start = sapply(match_RG, function(i) ifelse(scanned$strand[i] == \"-\",\n", " scanned$pos[i] + scanned$qwidth[i] - 1,\n", " scanned$pos[i])),\n", " width = scanned$qwidth[match_RG]))\n", " counts_mat[,i] = GenomicRanges::countOverlaps(peaks, bam.gr, type = \"any\", ignore.strand = TRUE)\n", " }\n", " # counts = do.call(cbind, lapply(RGtags, function(x) getTagCounts(x, bamfile, peaks)))\n", " colnames(counts_mat) = tags\n", " return(counts_mat)\n", "}\n", " \n", "peaks2GRanges <- function(peaks, upstream = 0, downstream = 0){\n", " peaks.gr = with(peaks, GenomicRanges::GRanges(chrom, IRanges::IRanges(sapply(start, function(x) max(0, x - upstream)), end + downstream), \n", " id = name))#, pVal = pValue))\n", "}\n", "\n", "# peaks should be in GenomicRanges\n", "get_counts_from_bam <- function(bamfile, peaks){\n", " param = Rsamtools::ScanBamParam(flag =scanBamFlag(isUnmappedQuery = FALSE), \n", " which = peaks, \n", " what = c(\"rname\", \"pos\", \"strand\", \"qwidth\"))\n", " counts = Rsamtools::countBam(bamfile, param = param,\n", " flag = Rsamtools::scanBamFlag(isDuplicate = FALSE,\n", " isUnmappedQuery = FALSE))\n", " return(counts[,c(\"space\", \"start\", \"end\", \"file\", \"records\")])\n", "}\n", " \n", "\n", "getCountsMatrix <- function(bamfiles, peaks, PAIRED = FALSE,\n", " byReadGroup = FALSE, \n", " RGtag = 'RG',\n", " tags2include = NULL, \n", " VERBOSE = FALSE){\n", " peaks.gr = peaks2GRanges(peaks)\n", " if(VERBOSE){\n", " message(\"beginning reading in counts\\n\")\n", " }\n", " if(byReadGroup){\n", " if(VERBOSE){\n", " message(\"getting counts by read group\\n\")\n", " message(\"read group tag = \", RGtag, \"\\n\")\n", " }\n", " stopifnot(length(bamfiles) == 1)\n", " counts_mat = getCountsByReadGroup(bamfiles, peaks.gr, RGtag = RGtag, \n", " tags = tags2include);\n", " rownames(counts_mat) = peaks$name\n", " }\n", " else{\n", " nCells = length(bamfiles)\n", " counts_mat = matrix(nrow = length(peaks.gr), ncol = nCells)\n", " for(i in 1:nCells){\n", " if(VERBOSE){\n", " message(\"Processing file \", bamfiles[i])\n", " }\n", " # convert bamfiles to Genomic Ranges\n", " bam.gr = bam2gr(bamfiles[i], PAIRED = PAIRED)\n", " counts_mat[,i] = countOverlaps(peaks.gr, bam.gr, type = \"any\", ignore.strand = TRUE)\n", " }\n", " colnames(counts_mat) = bamfiles\n", " rownames(counts_mat) = peaks$name\n", " #counts_info = data.frame(chrom = counts_list[[1]]$space, start = counts_list[[1]]$start, end = counts_list[[1]]$end, name = peaks$id, pValue = peaks$pVal)\n", " }\n", " peaks = peaks[,c(\"chrom\", \"start\", \"end\", \"name\")]#, \"pValue\")]\n", " return(list(peaks = peaks, ForeGroundMatrix = Matrix::Matrix(counts_mat, sparse = TRUE)))\n", "}\n", " \n", " \n", "sort_peaks <- function(peaks){\n", " return(peaks[order(peaks$chrom, peaks$start), ])\n", "}\n", " \n", "selectPeaks <- function(filename, thresh = 2){\n", " peaks = read.table(file = filename, header = FALSE, sep = \"\\t\",\n", " stringsAsFactors = FALSE);\n", " if(dim(peaks)[2] == 15){\n", " # gapped peaks\n", " column_names = c(\"chrom\", \"start\", \"end\", \"name\", \"score\", \"strand\",\n", " \"thickStart\", \"thickEnd\", \"itemRgb\", \"blockCount\", \"blockSizes\",\n", " \"blockStarts\", \"signalValue\", \"pValue\", \"qValue\");\n", " colnames(peaks) = column_names\n", " wanted_peaks = which(peaks$pValue > thresh); # pValue is -log10(p), p < 0.1 => pValue > 2\n", " peaks = sort_peaks(peaks[wanted_peaks, ])\n", " }\n", " if(dim(peaks)[2] == 10){\n", " # narrow peaks\n", " column_names = c(\"chrom\", \"start\", \"end\", \"name\", \"score\", \"strand\",\n", " \"foldChange\", \"pValue\", \"qValue\", \"summit2PeakDist\")\n", " colnames(peaks) = column_names\n", " wanted_peaks = which(peaks$pValue > thresh); # pValue is -log10(p), p < 0.1 => pValue > 2\n", " peaks = sort_peaks(peaks[wanted_peaks, ])\n", " }\n", " \n", " # mine \n", " if(dim(peaks)[2] == 3){\n", " # gapped peaks\n", " column_names = c(\"chrom\", \"start\", \"end\");\n", " colnames(peaks) = column_names\n", " peaks = sort_peaks(peaks)\n", " }\n", " return(peaks)\n", "}\n", " \n", " \n", "getBackground <- function(bamfiles, peaks, upstream = 500000,\n", " downstream = 500000, byReadGroup = FALSE,\n", " VERBOSE = FALSE, PAIRED = FALSE){\n", " nCells = length(bamfiles)\n", " background_peaks.gr = peaks2GRanges(peaks, upstream, downstream)\n", " if(byReadGroup){\n", " counts_mat = getCountsByReadGroup2(bamfile, background_peaks.gr);\n", " rownames(counts_mat) = peaks$name\n", " }\n", " else{\n", " counts_mat = matrix(nrow = length(background_peaks.gr), ncol = nCells)\n", " for(i in 1:nCells){\n", " if(VERBOSE){\n", " message(\"Processing file \", bamfiles[i])\n", " }\n", " # convert bamfiles to Genomic Ranges\n", " bam.gr = bam2gr(bamfiles[i], PAIRED = PAIRED)\n", " counts_mat[,i] = countOverlaps(background_peaks.gr, bam.gr, type = \"any\", ignore.strand = TRUE)\n", " }\n", " colnames(counts_mat) = bamfiles\n", " rownames(counts_mat) = peaks$name\n", " #counts_info = data.frame(chrom = counts_list[[1]]$space, start = counts_list[[1]]$start, end = counts_list[[1]]$end, name = peaks$id, pValue = peaks$pVal)\n", " }\n", " peaks = peaks[,c(\"chrom\", \"start\", \"end\", \"name\")]#, \"pValue\")]\n", " return(list(peaks = peaks, BackGroundMatrix = Matrix::Matrix(counts_mat, sparse = TRUE)))\n", "}" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Obtain Feature Matrix" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "start_time <- Sys.time()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "metadata <- read.table('../../input/metadata.tsv',\n", " header = TRUE,\n", " stringsAsFactors=FALSE,quote=\"\",row.names=1)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# loading input 1: single-cell BAM files\n", "bamfiles <- list.files(\"../../input/sc-bams_nodup/\", \n", " pattern = \"*.bam\", full.names = TRUE)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "12178" ], "text/latex": [ "12178" ], "text/markdown": [ "12178" ], "text/plain": [ "[1] 12178" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "length(bamfiles)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 385237
  2. \n", "\t
  3. 4
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 385237\n", "\\item 4\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 385237\n", "2. 4\n", "\n", "\n" ], "text/plain": [ "[1] 385237 4" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
chromstartendname
chr1 3002715 3002962 Peak_chr1_3002715_3002962
chr1 3037090 3037634 Peak_chr1_3037090_3037634
chr1 3084622 3085850 Peak_chr1_3084622_3085850
chr1 3103610 3104006 Peak_chr1_3103610_3104006
chr1 3106869 3107182 Peak_chr1_3106869_3107182
chr1 3109389 3111052 Peak_chr1_3109389_3111052
\n" ], "text/latex": [ "\\begin{tabular}{r|llll}\n", " chrom & start & end & name\\\\\n", "\\hline\n", "\t chr1 & 3002715 & 3002962 & Peak\\_chr1\\_3002715\\_3002962\\\\\n", "\t chr1 & 3037090 & 3037634 & Peak\\_chr1\\_3037090\\_3037634\\\\\n", "\t chr1 & 3084622 & 3085850 & Peak\\_chr1\\_3084622\\_3085850\\\\\n", "\t chr1 & 3103610 & 3104006 & Peak\\_chr1\\_3103610\\_3104006\\\\\n", "\t chr1 & 3106869 & 3107182 & Peak\\_chr1\\_3106869\\_3107182\\\\\n", "\t chr1 & 3109389 & 3111052 & Peak\\_chr1\\_3109389\\_3111052\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| chrom | start | end | name |\n", "|---|---|---|---|\n", "| chr1 | 3002715 | 3002962 | Peak_chr1_3002715_3002962 |\n", "| chr1 | 3037090 | 3037634 | Peak_chr1_3037090_3037634 |\n", "| chr1 | 3084622 | 3085850 | Peak_chr1_3084622_3085850 |\n", "| chr1 | 3103610 | 3104006 | Peak_chr1_3103610_3104006 |\n", "| chr1 | 3106869 | 3107182 | Peak_chr1_3106869_3107182 |\n", "| chr1 | 3109389 | 3111052 | Peak_chr1_3109389_3111052 |\n", "\n" ], "text/plain": [ " chrom start end name \n", "1 chr1 3002715 3002962 Peak_chr1_3002715_3002962\n", "2 chr1 3037090 3037634 Peak_chr1_3037090_3037634\n", "3 chr1 3084622 3085850 Peak_chr1_3084622_3085850\n", "4 chr1 3103610 3104006 Peak_chr1_3103610_3104006\n", "5 chr1 3106869 3107182 Peak_chr1_3106869_3107182\n", "6 chr1 3109389 3111052 Peak_chr1_3109389_3111052" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# loading input 2: peaks file\n", "peaks <- selectPeaks(\"../../input/combined.sorted.merged.bed\")\n", "peaks$name <- paste(\"Peak\", peaks$chrom, peaks$start, peaks$end, sep = \"_\")\n", "dim(peaks)\n", "head(peaks)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": true }, "outputs": [], "source": [ "ForeGround <- getCountsMatrix(bamfiles, peaks) " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "ForeGroundFiltered <- filterPeaks(ForeGround$ForeGroundMatrix, peaks, \n", " nreads_thresh = 1, \n", " ncells_thresh = length(bamfiles)*0.01)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 385237
  2. \n", "\t
  3. 4
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 385237\n", "\\item 4\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 385237\n", "2. 4\n", "\n", "\n" ], "text/plain": [ "[1] 385237 4" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 147423
  2. \n", "\t
  3. 4
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 147423\n", "\\item 4\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 147423\n", "2. 4\n", "\n", "\n" ], "text/plain": [ "[1] 147423 4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dim(peaks)\n", "dim(ForeGroundFiltered$peaks)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "fm_scABC = as.matrix(ForeGroundFiltered$ForeGroundMatrix)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 147423
  2. \n", "\t
  3. 12178
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 147423\n", "\\item 12178\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 147423\n", "2. 12178\n", "\n", "\n" ], "text/plain": [ "[1] 147423 12178" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAATACGATAATGGCAGCTCGCAGGACGT.header.bam../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAATATTACTTTCCGCGGACTGTACTGAC.header.bam../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGACCAGGCGCATGGCAGCTCGATAGAGGC.header.bam../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGGTCAGCTTGGAGTTGCGTGTACTGAC.header.bam
Peak_chr1_3084622_308585000000
Peak_chr1_3109389_311105200000
Peak_chr1_3111327_311186300000
Peak_chr1_3174934_317660800000
Peak_chr1_3238831_323993400000
\n" ], "text/latex": [ "\\begin{tabular}{r|lllll}\n", " & ../../input/sc-bams\\_nodup//BoneMarrow\\_62016.AGCGATAGAATACGATAATGGCAGCTCGCAGGACGT.header.bam & ../../input/sc-bams\\_nodup//BoneMarrow\\_62016.AGCGATAGAATATTACTTTCCGCGGACTGTACTGAC.header.bam & ../../input/sc-bams\\_nodup//BoneMarrow\\_62016.AGCGATAGACCAGGCGCATGGCAGCTCGATAGAGGC.header.bam & ../../input/sc-bams\\_nodup//BoneMarrow\\_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam & ../../input/sc-bams\\_nodup//BoneMarrow\\_62016.AGCGATAGAGGTCAGCTTGGAGTTGCGTGTACTGAC.header.bam\\\\\n", "\\hline\n", "\tPeak\\_chr1\\_3084622\\_3085850 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3109389\\_3111052 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3111327\\_3111863 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3174934\\_3176608 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3238831\\_3239934 & 0 & 0 & 0 & 0 & 0\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| | ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAATACGATAATGGCAGCTCGCAGGACGT.header.bam | ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAATATTACTTTCCGCGGACTGTACTGAC.header.bam | ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGACCAGGCGCATGGCAGCTCGATAGAGGC.header.bam | ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam | ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGGTCAGCTTGGAGTTGCGTGTACTGAC.header.bam |\n", "|---|---|---|---|---|---|\n", "| Peak_chr1_3084622_3085850 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3109389_3111052 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3111327_3111863 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3174934_3176608 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3238831_3239934 | 0 | 0 | 0 | 0 | 0 |\n", "\n" ], "text/plain": [ " ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAATACGATAATGGCAGCTCGCAGGACGT.header.bam\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 \n", " ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAATATTACTTTCCGCGGACTGTACTGAC.header.bam\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 \n", " ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGACCAGGCGCATGGCAGCTCGATAGAGGC.header.bam\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 \n", " ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 \n", " ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGGTCAGCTTGGAGTTGCGTGTACTGAC.header.bam\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dim(fm_scABC)\n", "fm_scABC[1:5,1:5]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "end_time <- Sys.time()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Time difference of 48.47346 mins" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "end_time - start_time" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "FALSE" ], "text/latex": [ "FALSE" ], "text/markdown": [ "FALSE" ], "text/plain": [ "[1] FALSE" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "all(sapply(strsplit(basename(colnames(fm_scABC)),'\\\\.'),'[', 2) == rownames(metadata))" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "colnames(fm_scABC) = sapply(strsplit(basename(colnames(fm_scABC)),'\\\\.'),'[', 2)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 147423
  2. \n", "\t
  3. 12178
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 147423\n", "\\item 12178\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 147423\n", "2. 12178\n", "\n", "\n" ], "text/plain": [ "[1] 147423 12178" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
AGCGATAGAATACGATAATGGCAGCTCGCAGGACGTAGCGATAGAATATTACTTTCCGCGGACTGTACTGACAGCGATAGACCAGGCGCATGGCAGCTCGATAGAGGCAGCGATAGAGATTACGTTGCGCAATGACGTACTGACAGCGATAGAGGTCAGCTTGGAGTTGCGTGTACTGAC
Peak_chr1_3084622_308585000000
Peak_chr1_3109389_311105200000
Peak_chr1_3111327_311186300000
Peak_chr1_3174934_317660800000
Peak_chr1_3238831_323993400000
\n" ], "text/latex": [ "\\begin{tabular}{r|lllll}\n", " & AGCGATAGAATACGATAATGGCAGCTCGCAGGACGT & AGCGATAGAATATTACTTTCCGCGGACTGTACTGAC & AGCGATAGACCAGGCGCATGGCAGCTCGATAGAGGC & AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC & AGCGATAGAGGTCAGCTTGGAGTTGCGTGTACTGAC\\\\\n", "\\hline\n", "\tPeak\\_chr1\\_3084622\\_3085850 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3109389\\_3111052 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3111327\\_3111863 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3174934\\_3176608 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3238831\\_3239934 & 0 & 0 & 0 & 0 & 0\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| | AGCGATAGAATACGATAATGGCAGCTCGCAGGACGT | AGCGATAGAATATTACTTTCCGCGGACTGTACTGAC | AGCGATAGACCAGGCGCATGGCAGCTCGATAGAGGC | AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC | AGCGATAGAGGTCAGCTTGGAGTTGCGTGTACTGAC |\n", "|---|---|---|---|---|---|\n", "| Peak_chr1_3084622_3085850 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3109389_3111052 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3111327_3111863 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3174934_3176608 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3238831_3239934 | 0 | 0 | 0 | 0 | 0 |\n", "\n" ], "text/plain": [ " AGCGATAGAATACGATAATGGCAGCTCGCAGGACGT\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 \n", " AGCGATAGAATATTACTTTCCGCGGACTGTACTGAC\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 \n", " AGCGATAGACCAGGCGCATGGCAGCTCGATAGAGGC\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 \n", " AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 \n", " AGCGATAGAGGTCAGCTTGGAGTTGCGTGTACTGAC\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dim(fm_scABC)\n", "fm_scABC[1:5,1:5]" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "scrolled": true }, "outputs": [], "source": [ "fm_scABC = fm_scABC[,rownames(metadata)]" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 147423
  2. \n", "\t
  3. 12178
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 147423\n", "\\item 12178\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 147423\n", "2. 12178\n", "\n", "\n" ], "text/plain": [ "[1] 147423 12178" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
TCCGCGAACTAACTAGGTTGCTACGGTCATAGAGGCTCCGCGAAAGGTCAGCTTTGCGGATAGTGTACTGACATTACTCGTTGCCGTAGGCTTAATCTTGTATAGCCTTCCGCGAAACCAGGCGCAAAGCTAGGTTGTACTGACATTCAGAATCGTAGCATCGCGCAATGACCCTATCCT
Peak_chr1_3084622_308585000000
Peak_chr1_3109389_311105200000
Peak_chr1_3111327_311186300000
Peak_chr1_3174934_317660800000
Peak_chr1_3238831_323993400000
\n" ], "text/latex": [ "\\begin{tabular}{r|lllll}\n", " & TCCGCGAACTAACTAGGTTGCTACGGTCATAGAGGC & TCCGCGAAAGGTCAGCTTTGCGGATAGTGTACTGAC & ATTACTCGTTGCCGTAGGCTTAATCTTGTATAGCCT & TCCGCGAAACCAGGCGCAAAGCTAGGTTGTACTGAC & ATTCAGAATCGTAGCATCGCGCAATGACCCTATCCT\\\\\n", "\\hline\n", "\tPeak\\_chr1\\_3084622\\_3085850 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3109389\\_3111052 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3111327\\_3111863 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3174934\\_3176608 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3238831\\_3239934 & 0 & 0 & 0 & 0 & 0\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| | TCCGCGAACTAACTAGGTTGCTACGGTCATAGAGGC | TCCGCGAAAGGTCAGCTTTGCGGATAGTGTACTGAC | ATTACTCGTTGCCGTAGGCTTAATCTTGTATAGCCT | TCCGCGAAACCAGGCGCAAAGCTAGGTTGTACTGAC | ATTCAGAATCGTAGCATCGCGCAATGACCCTATCCT |\n", "|---|---|---|---|---|---|\n", "| Peak_chr1_3084622_3085850 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3109389_3111052 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3111327_3111863 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3174934_3176608 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3238831_3239934 | 0 | 0 | 0 | 0 | 0 |\n", "\n" ], "text/plain": [ " TCCGCGAACTAACTAGGTTGCTACGGTCATAGAGGC\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 \n", " TCCGCGAAAGGTCAGCTTTGCGGATAGTGTACTGAC\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 \n", " ATTACTCGTTGCCGTAGGCTTAATCTTGTATAGCCT\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 \n", " TCCGCGAAACCAGGCGCAAAGCTAGGTTGTACTGAC\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 \n", " ATTCAGAATCGTAGCATCGCGCAATGACCCTATCCT\n", "Peak_chr1_3084622_3085850 0 \n", "Peak_chr1_3109389_3111052 0 \n", "Peak_chr1_3111327_3111863 0 \n", "Peak_chr1_3174934_3176608 0 \n", "Peak_chr1_3238831_3239934 0 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dim(fm_scABC)\n", "fm_scABC[1:5,1:5]" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/html": [ "TRUE" ], "text/latex": [ "TRUE" ], "text/markdown": [ "TRUE" ], "text/plain": [ "[1] TRUE" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "all(colnames(fm_scABC) == rownames(metadata))" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "saveRDS(fm_scABC, file = '../../output/feature_matrices/FM_scABC_cusanovich2018subset.rds')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Downstream Analysis" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "### Instead of normalizing the peaks-by-cells matrix, \n", "### weights calculated below will be used in k-medoid clustering step based on cell dissimilarity matrix: WeightedCluster::wcKMedoids(FGdist, k = nCluster, weights = weights);\n", "### so it's not considered as part of feature matrix construction\n", "\n", "\n", "# BackGround <- getBackground(bamfiles, ForeGroundFiltered$peaks, \n", "# upstream = 5e+05, downstream = 5e+05,\n", "# PAIRED = FALSE, byReadGroup = FALSE)\n", "\n", "# InSilicoForeGround = ForeGroundFiltered$ForeGroundMatrix\n", "# InSilicoBackGround = BackGround$BackGroundMatrix\n", "# InSilicoPeaks = ForeGroundFiltered$peaks\n", "\n", "# fg.mat <- Matrix::Matrix(InSilicoForeGround, sparse = TRUE)\n", "# bg.mat <- Matrix::Matrix(InSilicoBackGround, sparse = TRUE);\n", "\n", "# weights = apply(bg.mat, 2, median);\n", "# c = min(8, median(weights))\n", "# # compute weighted k-medioids\n", "# lambda = 1.0\n", "# FGdist = 1 - sparseSpearmanCor(ForeGround);\n", "# weights = 1/(1 + exp(-(weights - c)/(c*lambda)));" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "BackGround <- getBackground(bamfiles, ForeGroundFiltered$peaks, \n", " upstream = 5e+05, downstream = 5e+05,\n", " PAIRED = FALSE, byReadGroup = FALSE)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "InSilicoForeGround = ForeGroundFiltered$ForeGroundMatrix\n", "InSilicoBackGround = BackGround$BackGroundMatrix\n", "InSilicoPeaks = ForeGroundFiltered$peaks" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "#compute the landmarks\n", "InSilicoLandMarks = computeLandmarks(ForeGround = InSilicoForeGround, \n", " BackGround = InSilicoBackGround, \n", " nCluster = length(unique(metadata$label)), lambda = 1, nTop = 2000)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
1.00000000.45029110.58288630.39103980.61339860.58505970.42625200.75292310.67878460.61377990.56899580.51482950.5075920
0.45029111.00000000.47838610.40917250.50723640.46416010.39395870.47166790.43261130.40318040.47285620.44163820.3808171
0.58288630.47838611.00000000.53170030.56801750.56194430.41881570.57982200.53268210.50504290.52483600.48798370.4476117
0.39103980.40917250.53170031.00000000.41584350.39069360.31078520.40646490.37319410.36413760.37080850.35556870.3026505
0.61339860.50723640.56801750.41584351.00000000.60231850.44396130.64847250.59500630.52836750.59814450.50881670.4748662
0.58505970.46416010.56194430.39069360.60231851.00000000.39994610.60767340.55903170.49484850.50696510.46205560.4338220
0.42625200.39395870.41881570.31078520.44396130.39994611.00000000.44696320.41550360.41207990.47971280.68015810.4932913
0.75292310.47166790.57982200.40646490.64847250.60767340.44696321.00000000.80288520.70954140.56672490.53785090.5003190
0.67878460.43261130.53268210.37319410.59500630.55903170.41550360.80288521.00000000.68296190.52614810.48670470.4652567
0.61377990.40318040.50504290.36413760.52836750.49484850.41207990.70954140.68296191.00000000.49003050.47907540.4470428
0.56899580.47285620.52483600.37080850.59814450.50696510.47971280.56672490.52614810.49003051.00000000.53704070.5077249
0.51482950.44163820.48798370.35556870.50881670.46205560.68015810.53785090.48670470.47907540.53704071.00000000.5389705
0.50759200.38081710.44761170.30265050.47486620.43382200.49329130.50031900.46525670.44704280.50772490.53897051.0000000
\n" ], "text/latex": [ "\\begin{tabular}{lllllllllllll}\n", "\t 1.0000000 & 0.4502911 & 0.5828863 & 0.3910398 & 0.6133986 & 0.5850597 & 0.4262520 & 0.7529231 & 0.6787846 & 0.6137799 & 0.5689958 & 0.5148295 & 0.5075920\\\\\n", "\t 0.4502911 & 1.0000000 & 0.4783861 & 0.4091725 & 0.5072364 & 0.4641601 & 0.3939587 & 0.4716679 & 0.4326113 & 0.4031804 & 0.4728562 & 0.4416382 & 0.3808171\\\\\n", "\t 0.5828863 & 0.4783861 & 1.0000000 & 0.5317003 & 0.5680175 & 0.5619443 & 0.4188157 & 0.5798220 & 0.5326821 & 0.5050429 & 0.5248360 & 0.4879837 & 0.4476117\\\\\n", "\t 0.3910398 & 0.4091725 & 0.5317003 & 1.0000000 & 0.4158435 & 0.3906936 & 0.3107852 & 0.4064649 & 0.3731941 & 0.3641376 & 0.3708085 & 0.3555687 & 0.3026505\\\\\n", "\t 0.6133986 & 0.5072364 & 0.5680175 & 0.4158435 & 1.0000000 & 0.6023185 & 0.4439613 & 0.6484725 & 0.5950063 & 0.5283675 & 0.5981445 & 0.5088167 & 0.4748662\\\\\n", "\t 0.5850597 & 0.4641601 & 0.5619443 & 0.3906936 & 0.6023185 & 1.0000000 & 0.3999461 & 0.6076734 & 0.5590317 & 0.4948485 & 0.5069651 & 0.4620556 & 0.4338220\\\\\n", "\t 0.4262520 & 0.3939587 & 0.4188157 & 0.3107852 & 0.4439613 & 0.3999461 & 1.0000000 & 0.4469632 & 0.4155036 & 0.4120799 & 0.4797128 & 0.6801581 & 0.4932913\\\\\n", "\t 0.7529231 & 0.4716679 & 0.5798220 & 0.4064649 & 0.6484725 & 0.6076734 & 0.4469632 & 1.0000000 & 0.8028852 & 0.7095414 & 0.5667249 & 0.5378509 & 0.5003190\\\\\n", "\t 0.6787846 & 0.4326113 & 0.5326821 & 0.3731941 & 0.5950063 & 0.5590317 & 0.4155036 & 0.8028852 & 1.0000000 & 0.6829619 & 0.5261481 & 0.4867047 & 0.4652567\\\\\n", "\t 0.6137799 & 0.4031804 & 0.5050429 & 0.3641376 & 0.5283675 & 0.4948485 & 0.4120799 & 0.7095414 & 0.6829619 & 1.0000000 & 0.4900305 & 0.4790754 & 0.4470428\\\\\n", "\t 0.5689958 & 0.4728562 & 0.5248360 & 0.3708085 & 0.5981445 & 0.5069651 & 0.4797128 & 0.5667249 & 0.5261481 & 0.4900305 & 1.0000000 & 0.5370407 & 0.5077249\\\\\n", "\t 0.5148295 & 0.4416382 & 0.4879837 & 0.3555687 & 0.5088167 & 0.4620556 & 0.6801581 & 0.5378509 & 0.4867047 & 0.4790754 & 0.5370407 & 1.0000000 & 0.5389705\\\\\n", "\t 0.5075920 & 0.3808171 & 0.4476117 & 0.3026505 & 0.4748662 & 0.4338220 & 0.4932913 & 0.5003190 & 0.4652567 & 0.4470428 & 0.5077249 & 0.5389705 & 1.0000000\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| 1.0000000 | 0.4502911 | 0.5828863 | 0.3910398 | 0.6133986 | 0.5850597 | 0.4262520 | 0.7529231 | 0.6787846 | 0.6137799 | 0.5689958 | 0.5148295 | 0.5075920 |\n", "| 0.4502911 | 1.0000000 | 0.4783861 | 0.4091725 | 0.5072364 | 0.4641601 | 0.3939587 | 0.4716679 | 0.4326113 | 0.4031804 | 0.4728562 | 0.4416382 | 0.3808171 |\n", "| 0.5828863 | 0.4783861 | 1.0000000 | 0.5317003 | 0.5680175 | 0.5619443 | 0.4188157 | 0.5798220 | 0.5326821 | 0.5050429 | 0.5248360 | 0.4879837 | 0.4476117 |\n", "| 0.3910398 | 0.4091725 | 0.5317003 | 1.0000000 | 0.4158435 | 0.3906936 | 0.3107852 | 0.4064649 | 0.3731941 | 0.3641376 | 0.3708085 | 0.3555687 | 0.3026505 |\n", "| 0.6133986 | 0.5072364 | 0.5680175 | 0.4158435 | 1.0000000 | 0.6023185 | 0.4439613 | 0.6484725 | 0.5950063 | 0.5283675 | 0.5981445 | 0.5088167 | 0.4748662 |\n", "| 0.5850597 | 0.4641601 | 0.5619443 | 0.3906936 | 0.6023185 | 1.0000000 | 0.3999461 | 0.6076734 | 0.5590317 | 0.4948485 | 0.5069651 | 0.4620556 | 0.4338220 |\n", "| 0.4262520 | 0.3939587 | 0.4188157 | 0.3107852 | 0.4439613 | 0.3999461 | 1.0000000 | 0.4469632 | 0.4155036 | 0.4120799 | 0.4797128 | 0.6801581 | 0.4932913 |\n", "| 0.7529231 | 0.4716679 | 0.5798220 | 0.4064649 | 0.6484725 | 0.6076734 | 0.4469632 | 1.0000000 | 0.8028852 | 0.7095414 | 0.5667249 | 0.5378509 | 0.5003190 |\n", "| 0.6787846 | 0.4326113 | 0.5326821 | 0.3731941 | 0.5950063 | 0.5590317 | 0.4155036 | 0.8028852 | 1.0000000 | 0.6829619 | 0.5261481 | 0.4867047 | 0.4652567 |\n", "| 0.6137799 | 0.4031804 | 0.5050429 | 0.3641376 | 0.5283675 | 0.4948485 | 0.4120799 | 0.7095414 | 0.6829619 | 1.0000000 | 0.4900305 | 0.4790754 | 0.4470428 |\n", "| 0.5689958 | 0.4728562 | 0.5248360 | 0.3708085 | 0.5981445 | 0.5069651 | 0.4797128 | 0.5667249 | 0.5261481 | 0.4900305 | 1.0000000 | 0.5370407 | 0.5077249 |\n", "| 0.5148295 | 0.4416382 | 0.4879837 | 0.3555687 | 0.5088167 | 0.4620556 | 0.6801581 | 0.5378509 | 0.4867047 | 0.4790754 | 0.5370407 | 1.0000000 | 0.5389705 |\n", "| 0.5075920 | 0.3808171 | 0.4476117 | 0.3026505 | 0.4748662 | 0.4338220 | 0.4932913 | 0.5003190 | 0.4652567 | 0.4470428 | 0.5077249 | 0.5389705 | 1.0000000 |\n", "\n" ], "text/plain": [ " [,1] [,2] [,3] [,4] [,5] [,6] [,7] \n", " [1,] 1.0000000 0.4502911 0.5828863 0.3910398 0.6133986 0.5850597 0.4262520\n", " [2,] 0.4502911 1.0000000 0.4783861 0.4091725 0.5072364 0.4641601 0.3939587\n", " [3,] 0.5828863 0.4783861 1.0000000 0.5317003 0.5680175 0.5619443 0.4188157\n", " [4,] 0.3910398 0.4091725 0.5317003 1.0000000 0.4158435 0.3906936 0.3107852\n", " [5,] 0.6133986 0.5072364 0.5680175 0.4158435 1.0000000 0.6023185 0.4439613\n", " [6,] 0.5850597 0.4641601 0.5619443 0.3906936 0.6023185 1.0000000 0.3999461\n", " [7,] 0.4262520 0.3939587 0.4188157 0.3107852 0.4439613 0.3999461 1.0000000\n", " [8,] 0.7529231 0.4716679 0.5798220 0.4064649 0.6484725 0.6076734 0.4469632\n", " [9,] 0.6787846 0.4326113 0.5326821 0.3731941 0.5950063 0.5590317 0.4155036\n", "[10,] 0.6137799 0.4031804 0.5050429 0.3641376 0.5283675 0.4948485 0.4120799\n", "[11,] 0.5689958 0.4728562 0.5248360 0.3708085 0.5981445 0.5069651 0.4797128\n", "[12,] 0.5148295 0.4416382 0.4879837 0.3555687 0.5088167 0.4620556 0.6801581\n", "[13,] 0.5075920 0.3808171 0.4476117 0.3026505 0.4748662 0.4338220 0.4932913\n", " [,8] [,9] [,10] [,11] [,12] [,13] \n", " [1,] 0.7529231 0.6787846 0.6137799 0.5689958 0.5148295 0.5075920\n", " [2,] 0.4716679 0.4326113 0.4031804 0.4728562 0.4416382 0.3808171\n", " [3,] 0.5798220 0.5326821 0.5050429 0.5248360 0.4879837 0.4476117\n", " [4,] 0.4064649 0.3731941 0.3641376 0.3708085 0.3555687 0.3026505\n", " [5,] 0.6484725 0.5950063 0.5283675 0.5981445 0.5088167 0.4748662\n", " [6,] 0.6076734 0.5590317 0.4948485 0.5069651 0.4620556 0.4338220\n", " [7,] 0.4469632 0.4155036 0.4120799 0.4797128 0.6801581 0.4932913\n", " [8,] 1.0000000 0.8028852 0.7095414 0.5667249 0.5378509 0.5003190\n", " [9,] 0.8028852 1.0000000 0.6829619 0.5261481 0.4867047 0.4652567\n", "[10,] 0.7095414 0.6829619 1.0000000 0.4900305 0.4790754 0.4470428\n", "[11,] 0.5667249 0.5261481 0.4900305 1.0000000 0.5370407 0.5077249\n", "[12,] 0.5378509 0.4867047 0.4790754 0.5370407 1.0000000 0.5389705\n", "[13,] 0.5003190 0.4652567 0.4470428 0.5077249 0.5389705 1.0000000" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cor(InSilicoLandMarks, InSilicoLandMarks, method = 'spearman')" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "# assign cells to the closest landmark #\n", "InSilicoLandMarkAssignments = assign2landmarks(InSilicoForeGround, InSilicoLandMarks)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 147423
  2. \n", "\t
  3. 13
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 147423\n", "\\item 13\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 147423\n", "2. 13\n", "\n", "\n" ], "text/plain": [ "[1] 147423 13" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
Peak_chr1_3084622_30858500000000000000
Peak_chr1_3109389_31110520000000000000
Peak_chr1_3111327_31118630000000000000
Peak_chr1_3174934_31766080000000000000
Peak_chr1_3238831_32399340000000000000
Peak_chr1_3240564_32422330000000000000
\n" ], "text/latex": [ "\\begin{tabular}{r|lllllllllllll}\n", "\tPeak\\_chr1\\_3084622\\_3085850 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3109389\\_3111052 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3111327\\_3111863 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3174934\\_3176608 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3238831\\_3239934 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", "\tPeak\\_chr1\\_3240564\\_3242233 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| Peak_chr1_3084622_3085850 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3109389_3111052 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3111327_3111863 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3174934_3176608 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3238831_3239934 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", "| Peak_chr1_3240564_3242233 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", "\n" ], "text/plain": [ " [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]\n", "Peak_chr1_3084622_3085850 0 0 0 0 0 0 0 0 0 0 \n", "Peak_chr1_3109389_3111052 0 0 0 0 0 0 0 0 0 0 \n", "Peak_chr1_3111327_3111863 0 0 0 0 0 0 0 0 0 0 \n", "Peak_chr1_3174934_3176608 0 0 0 0 0 0 0 0 0 0 \n", "Peak_chr1_3238831_3239934 0 0 0 0 0 0 0 0 0 0 \n", "Peak_chr1_3240564_3242233 0 0 0 0 0 0 0 0 0 0 \n", " [,11] [,12] [,13]\n", "Peak_chr1_3084622_3085850 0 0 0 \n", "Peak_chr1_3109389_3111052 0 0 0 \n", "Peak_chr1_3111327_3111863 0 0 0 \n", "Peak_chr1_3174934_3176608 0 0 0 \n", "Peak_chr1_3238831_3239934 0 0 0 \n", "Peak_chr1_3240564_3242233 0 0 0 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dim(InSilicoLandMarks)\n", "head(InSilicoLandMarks)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "InSilicoCell2LandmarkCorrelation = do.call(cbind, \n", " lapply(seq(length(unique(metadata$label))), \n", " function(i) apply(InSilicoForeGround, 2, \n", " function(x) cor(x, InSilicoLandMarks[,i], method = 'spearman'))))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "dim(InSilicoCell2LandmarkCorrelation)\n", "InSilicoCell2LandmarkCorrelation[1:5,1:5]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "InSilicoLandMarkAssignments_sorted <- InSilicoLandMarkAssignments[order(InSilicoLandMarkAssignments)]\n", "InSilicoCell2LandmarkCorrelation_sorted <- InSilicoCell2LandmarkCorrelation[names(InSilicoLandMarkAssignments_sorted),]" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam0.150378250.081005560.099705000.074876230.108671350.107839350.080970960.128482840.125494060.104585670.105176370.092367450.09934552
../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam0.022548130.011676500.017172960.012223100.013612890.013192790.013816700.019807190.020927240.021399080.019262430.016148360.01441729
../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam0.079821470.031683940.061997840.042739030.041015160.047068860.037596810.056800320.046602850.048876040.040693250.042192000.03981479
../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam0.093327640.054700100.065285510.060230070.070704600.067304170.048019370.083512620.078332040.075969450.056643430.054378330.05871448
../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam0.132984260.076474890.089456090.061349830.093720200.098381010.073922240.118219800.112366380.103019810.086001420.081088290.07482789
../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam0.193142510.117282220.136399380.103230810.165835210.147597430.111030570.183286540.169871170.157002880.144172400.133564300.12417066
\n" ], "text/latex": [ "\\begin{tabular}{r|lllllllllllll}\n", "\t../../input/sc-bams\\_nodup//BoneMarrow\\_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam & 0.15037825 & 0.08100556 & 0.09970500 & 0.07487623 & 0.10867135 & 0.10783935 & 0.08097096 & 0.12848284 & 0.12549406 & 0.10458567 & 0.10517637 & 0.09236745 & 0.09934552\\\\\n", "\t../../input/sc-bams\\_nodup//BoneMarrow\\_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam & 0.02254813 & 0.01167650 & 0.01717296 & 0.01222310 & 0.01361289 & 0.01319279 & 0.01381670 & 0.01980719 & 0.02092724 & 0.02139908 & 0.01926243 & 0.01614836 & 0.01441729\\\\\n", "\t../../input/sc-bams\\_nodup//BoneMarrow\\_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam & 0.07982147 & 0.03168394 & 0.06199784 & 0.04273903 & 0.04101516 & 0.04706886 & 0.03759681 & 0.05680032 & 0.04660285 & 0.04887604 & 0.04069325 & 0.04219200 & 0.03981479\\\\\n", "\t../../input/sc-bams\\_nodup//BoneMarrow\\_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam & 0.09332764 & 0.05470010 & 0.06528551 & 0.06023007 & 0.07070460 & 0.06730417 & 0.04801937 & 0.08351262 & 0.07833204 & 0.07596945 & 0.05664343 & 0.05437833 & 0.05871448\\\\\n", "\t../../input/sc-bams\\_nodup//BoneMarrow\\_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam & 0.13298426 & 0.07647489 & 0.08945609 & 0.06134983 & 0.09372020 & 0.09838101 & 0.07392224 & 0.11821980 & 0.11236638 & 0.10301981 & 0.08600142 & 0.08108829 & 0.07482789\\\\\n", "\t../../input/sc-bams\\_nodup//BoneMarrow\\_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam & 0.19314251 & 0.11728222 & 0.13639938 & 0.10323081 & 0.16583521 & 0.14759743 & 0.11103057 & 0.18328654 & 0.16987117 & 0.15700288 & 0.14417240 & 0.13356430 & 0.12417066\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam | 0.15037825 | 0.08100556 | 0.09970500 | 0.07487623 | 0.10867135 | 0.10783935 | 0.08097096 | 0.12848284 | 0.12549406 | 0.10458567 | 0.10517637 | 0.09236745 | 0.09934552 |\n", "| ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam | 0.02254813 | 0.01167650 | 0.01717296 | 0.01222310 | 0.01361289 | 0.01319279 | 0.01381670 | 0.01980719 | 0.02092724 | 0.02139908 | 0.01926243 | 0.01614836 | 0.01441729 |\n", "| ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam | 0.07982147 | 0.03168394 | 0.06199784 | 0.04273903 | 0.04101516 | 0.04706886 | 0.03759681 | 0.05680032 | 0.04660285 | 0.04887604 | 0.04069325 | 0.04219200 | 0.03981479 |\n", "| ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam | 0.09332764 | 0.05470010 | 0.06528551 | 0.06023007 | 0.07070460 | 0.06730417 | 0.04801937 | 0.08351262 | 0.07833204 | 0.07596945 | 0.05664343 | 0.05437833 | 0.05871448 |\n", "| ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam | 0.13298426 | 0.07647489 | 0.08945609 | 0.06134983 | 0.09372020 | 0.09838101 | 0.07392224 | 0.11821980 | 0.11236638 | 0.10301981 | 0.08600142 | 0.08108829 | 0.07482789 |\n", "| ../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam | 0.19314251 | 0.11728222 | 0.13639938 | 0.10323081 | 0.16583521 | 0.14759743 | 0.11103057 | 0.18328654 | 0.16987117 | 0.15700288 | 0.14417240 | 0.13356430 | 0.12417066 |\n", "\n" ], "text/plain": [ " [,1] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.15037825\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.02254813\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.07982147\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.09332764\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.13298426\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.19314251\n", " [,2] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.08100556\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.01167650\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.03168394\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.05470010\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.07647489\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.11728222\n", " [,3] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.09970500\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.01717296\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.06199784\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.06528551\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.08945609\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.13639938\n", " [,4] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.07487623\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.01222310\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.04273903\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.06023007\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.06134983\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.10323081\n", " [,5] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.10867135\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.01361289\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.04101516\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.07070460\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.09372020\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.16583521\n", " [,6] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.10783935\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.01319279\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.04706886\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.06730417\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.09838101\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.14759743\n", " [,7] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.08097096\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.01381670\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.03759681\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.04801937\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.07392224\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.11103057\n", " [,8] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.12848284\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.01980719\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.05680032\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.08351262\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.11821980\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.18328654\n", " [,9] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.12549406\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.02092724\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.04660285\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.07833204\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.11236638\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.16987117\n", " [,10] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.10458567\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.02139908\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.04887604\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.07596945\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.10301981\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.15700288\n", " [,11] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.10517637\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.01926243\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.04069325\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.05664343\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.08600142\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.14417240\n", " [,12] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.09236745\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.01614836\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.04219200\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.05437833\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.08108829\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.13356430\n", " [,13] \n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC.header.bam 0.09934552\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT.header.bam 0.01441729\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC.header.bam 0.03981479\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC.header.bam 0.05871448\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG.header.bam 0.07482789\n", "../../input/sc-bams_nodup//BoneMarrow_62016.AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG.header.bam 0.12417066" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "head(InSilicoCell2LandmarkCorrelation_sorted)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 'AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC'
  2. \n", "\t
  3. 'AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT'
  4. \n", "\t
  5. 'AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC'
  6. \n", "\t
  7. 'AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC'
  8. \n", "\t
  9. 'AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG'
  10. \n", "\t
  11. 'AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG'
  12. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC'\n", "\\item 'AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT'\n", "\\item 'AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC'\n", "\\item 'AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC'\n", "\\item 'AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG'\n", "\\item 'AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC'\n", "2. 'AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT'\n", "3. 'AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC'\n", "4. 'AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC'\n", "5. 'AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG'\n", "6. 'AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG'\n", "\n", "\n" ], "text/plain": [ "[1] \"AGCGATAGAGATTACGTTGCGCAATGACGTACTGAC\"\n", "[2] \"AGCGATAGAGTTGAATCAAAGCTAGGTTCCTATCCT\"\n", "[3] \"AGCGATAGATGGCGCCTGCTTAATCTTGGTACTGAC\"\n", "[4] \"AGCGATAGCCGCTAAGAGTCCGCGGACTATAGAGGC\"\n", "[5] \"AGCGATAGCTAATTGCGATCCGCGGACTAGGCGAAG\"\n", "[6] \"AGCGATAGCTCAATTAGTAAGCTAGGTTAGGCGAAG\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 1
  4. \n", "\t
  5. 1
  6. \n", "\t
  7. 1
  8. \n", "\t
  9. 1
  10. \n", "\t
  11. 1
  12. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 1\n", "3. 1\n", "4. 1\n", "5. 1\n", "6. 1\n", "\n", "\n" ], "text/plain": [ "[1] 1 1 1 1 1 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cell.ids = sapply(strsplit(basename(names(InSilicoLandMarkAssignments_sorted)),'\\\\.'),'[', 2)\n", "head(cell.ids)\n", "cell.labels = metadata[cell.ids,'label']\n", "cell.info = match(metadata[cell.ids,'label'],unique(metadata[,'label']))\n", "head(cell.info)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "scalered <- colorRampPalette(c(\"white\", \"red\"), space = \"rgb\")(256)\n", "rcols1 = colorRampPalette(brewer.pal(8, \"Accent\"))(length(unique(metadata$label)))\n", "rowcols1 = rcols1[cell.info]\n", "rcols2 = colorRampPalette(brewer.pal(8, \"Dark2\"))(length(unique(metadata$label)))\n", "rowcols2 = rcols2[InSilicoLandMarkAssignments_sorted]\n", "rowcols = rbind(rowcols1, rowcols2)\n", "rownames(rowcols) = c(\"cell label\", \"cluster\")" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\t\n", "\t\n", "\n", "
cell label#7FC97F#7FC97F#7FC97F#7FC97F#7FC97F
cluster#1B9E77#1B9E77#1B9E77#1B9E77#1B9E77
\n" ], "text/latex": [ "\\begin{tabular}{r|lllll}\n", "\tcell label & \\#7FC97F & \\#7FC97F & \\#7FC97F & \\#7FC97F & \\#7FC97F\\\\\n", "\tcluster & \\#1B9E77 & \\#1B9E77 & \\#1B9E77 & \\#1B9E77 & \\#1B9E77\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| cell label | #7FC97F | #7FC97F | #7FC97F | #7FC97F | #7FC97F |\n", "| cluster | #1B9E77 | #1B9E77 | #1B9E77 | #1B9E77 | #1B9E77 |\n", "\n" ], "text/plain": [ " [,1] [,2] [,3] [,4] [,5] \n", "cell label #7FC97F #7FC97F #7FC97F #7FC97F #7FC97F\n", "cluster #1B9E77 #1B9E77 #1B9E77 #1B9E77 #1B9E77" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rowcols[,1:5]" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAIAAAByhViMAAAACXBIWXMAABJ0AAASdAHeZh94\nAAAgAElEQVR4nOzdeXxNd/4/8PfNLvaIJSEJofalLYoGYXRIKUq19pYuqOq0itIx3XWlU63S\nUaGmRjd7uky1pna1thWVUK0oIUJIREIWuff3x/2531tZJHHv631zzuv58PBI7nLe55zc5X0+\ny/tjsdlsQkREREQVn5f2DhARERGRazCxIyIiIjIIJnZEREREBsHEjoiIiMggmNgRERERGQQT\nOyIiIiKDYGJHREREZBBM7IiIiIgMgokdERERkUEwsSMiIiIyCCZ213H+/Pm///3vLVu2DAwM\nrFatWlRU1OLFi8u0Dttdd91lsVi6du3qwr0aNmyYxWKpUqWK841btmzx9/e3WCx+fn7ffvut\nC8MRERFRheCjvQMe7Zdffundu3dKSorjlh07duzYsePrr79euXKlxWJR3Ldr/P7774MHD87L\nyxOR2NjY3r17a+8RERERobHFrlgXL14cMGBASkqKl5fXAw888OGHH86aNatevXoisnr16nnz\n5mnv4P/JyMi46667zp07JyKvvvrq/fffr71HREREpIAtdsVasGBBUlKS/Yfx48fbbxw1atTN\nN9+ckZHx7rvv/u1vf1Pdwf/vypUr995776FDh0Rk4sSJzzzzjPYeERERkQ622BXr008/FZFG\njRo5sjoRiYiImDdv3n/+85/Nmzc7bjx37tyUKVMiIyMDAgIaNGjw6KOPnj59uoQtl/z4m2++\n2WKxPPvssyNHjgwICAgNDT1z5kwJW5s0adKGDRtEZNCgQYXbEf/3v/9169YtMDCwRo0a/fr1\n27dvn/32/v37WyyW0NBQx3jBy5cvBwYGWiyWadOmleb8EBERkcexUVFycnK8vb1FZNSoUSU/\n8tSpU+Hh4dec1fr16x89etT+gH79+olIVFRUKR/frl07Ealevbr9rrZt2xYOOnToUBGpXLny\nP//5T/vDAgICLly4cM3DVq9ebT8Kh4CAgO3bt9tstk8++cR+yw8//GB/8Lp16+y37N27t7yn\njYiIiDSxxa5o586dKygoEJE6deqU/MjHH3/8+PHjvr6+//znPxMSEt5///1KlSqdPHlyzJgx\nN/L4CxcuzJ49++DBgyUM5rt8+fLUqVPtP+fk5CxYsMD53vz8/Mcee6ygoOCOO+44ffr0qVOn\noqOjc3JynnzySREZMGCAfVLtmjVr7I+Pi4sTkSZNmrRv377kQyYiIiIPpZ1Zeqjjx4/bz8/k\nyZNLeNjZs2ftTWJ/+9vfHDc+99xz9ucePnzY9ucWu9I83t5iFxYWVkJce4udXYMGDexNgJUr\nVz5+/LjjMY7O4h07dthv2bhxo/2WU6dO2Wy2UaNGiUjTpk1tNltBQUHdunVF5B//+EfZzxYR\nERF5BLbYFa1WrVr2aiapqanX3JWRkeH4+dChQ/aGvZ49ezpudPx88ODBa55b+sc3a9asNPtZ\ns2bNb7755uWXXxaR7Ozsp556ynHXb7/9Zv/h9ttvt1gsFovFEejIkSMiMnLkSBH59ddfExIS\ndu3aZT/SYcOGlSYuEREReSDOii1aYGBgs2bNDh06tGPHjmvuGjt27I8//njfffe98cYbPj5F\nnECr1Wr/oXChu9I/vlq1atfdSW9v7y+//LJVq1YtWrSYM2fOgQMHVq5cuWHDhjvuuMM51ujR\no6/ZWu3atUXkjjvuqFOnzpkzZ9asWZOVlSUirVu3btWq1XXjEhERkWdii12x7rvvPhE5duzY\nhx9+6Ljxp59++uqrr44fP75lyxYvL68mTZp4eXmJyKZNmxyPcfSBtmnT5pptlv7xvr6+193D\ngICA22+/XUS8vLxee+01+42TJk2ylylu1KiR/Zb777//vffee++996ZNmzZ69Og33nijRYsW\nIuLj42M/xrVr19pnTrC5joiIqGLT7gv2XOfOnQsNDRURb2/v8ePHL1u27MUXX6xRo4b9vK1Z\ns8b+sDvvvFNE/Pz85s6dm5CQ8MEHHwQGBopIr1697A+4ZlbsdR9vH2M3dOjQEvbNMSvW+cbo\n6Gj7vr3++us2my0vLy8sLExEOnXqlJKSkp2dbW/Jq1evXk5Ojv0pP/zwg/OL4bfffnPd+SMi\nIiI0JnYl2bt3b3BwcOFs+Mknn3Q85tixYyEhIdc8oEGDBseOHbM/4JrE7rqPL3dit3PnTvvW\nKleufOLECZvN9vHHHztC2HtmLRbLsmXLnJ8VGRlpf0DHjh1v+IQRERGRJnbFlqR9+/YHDx6c\nPHly48aN/fz8qlWr1rNnz1WrVr399tuOx0RERMTHx0+ePDkyMtLPzy80NHTChAl79uyJiIgo\ncptlfXzpderUafDgwSKSnZ09efJkERk+fPhXX33VvXv3KlWqVKpU6fbbb4+Li7NPhnUYMWKE\n/Qf2wxIREVV0FtvVhQfInJ5//vmXXnrJYrEcO3ascOVkIiIiqkA4K9aksrOzMzMzDx48OHfu\nXBHp2rUrszoiIqKKjomdSSUkJNx22232ny0Wy9///nfd/SEiIqIbxzF2JhUeHl63bt2AgIBW\nrVotW7YsJiZGe4+IiIjoRnGMHREREZFBsMWOiIiIyCCY2BEREREZBBM7IiIiIoNgYkdERERk\nEEzsiIiIiAzCmHXsvvrqq7i4OO29MK8WLVo8+eST2ntBRERkOsYsdzJ27NgPlywRq7X8/woK\nxGbTv93519L9PL5q1YXp6WXefkGBWK1FbLNctzeOjPz999+1XwVERESmw65Yo1m4cKH2LhAR\nEZEOJnZEREREBsHEjoiIiMggmNgRERERGQQTOyIiIiKDYGJHREREZBBM7IiIiIgMgokdERER\nkUEwsSMiIiIyCCZ2RERERAbBxI6IiIjIIJjYERERERkEEzsiIiIig2BiR0RERGQQTOyIiIiI\nDIKJHREREZFBMLEjIiIiMggmdkREREQGwcSOiIiIyCCY2BEREREZBBM7IiIiIoNgYkdERERk\nEEzsiIiIiAyCiR0RERGRQTCxIyIiIjIIJnZEREREBsHEjoiIiMggmNgRERERGQQTOyIiIiKD\nYGJHREREZBBM7IiIiIgMgokdERERkUEwsSMiIiIyCCZ2RERERAbBxI6IiIjIIJjYERERERkE\nEzsiIiIig2BiR0RERGQQTOyIiIiIDIKJHREREZFBMLEjIiIiMggmdkREREQGwcSOiIiIyCCY\n2BEREREZBBM7IiIiIoNgYkdERERkEEzsiIiIiAyCiR0RERGRQTCxIyIiIjIIJnZEREREBsHE\njoiIiMggmNgRERERGQQTOyIiIiKDYGJHREREZBBM7IiIiIgMgokdERERkUEwsSMiIiIyCCZ2\nRERERAbBxI6IiIjIIJjYERERERkEEzsiIiIig2BiR0RERGQQTOyIiIiIDIKJHREREZFBMLEj\nIiIiMggmdkREREQGwcSOiIiIyCCY2BEREREZBBM7IiIiIoNgYkdERERkEEzsiIiIiAyCiR0R\nERGRQTCxIyIiIjIIJnZEREREBsHEjoiIiMggmNgRERERGQQTOyIiIiKDYGJHREREZBBM7IiI\niIgMgokdERERkUEwsSMiIiIyCCZ2RERERAbBxI6IiIjIIJjYERERERkEEzsiIiIig2BiR0RE\nRGQQTOyIiIiIDIKJHREREZFBMLEjIiIiMggmdkREREQGwcSOiIiIyCCY2BEREREZBBM7IiIi\nIoNgYkdERERkEEzsiIiIiAyCiR0RERGRQTCxIyIiIjIIJnZEREREBsHEjoiIiMggmNgRERER\nGQQTOyIiIiKD8NHeAbdITU2d8cwzYrPZ/x0+fLh2cHBQjRqOW679J3LtLVZrETcW92Cb7eff\nf29Wv34lX99SPr7YLV8T9+qvVqt1X2pq+9q1vRz3On7481M2d+kSnZFR0v4XGc5qzSkoSMzN\nvSUgoKSjdnp8sYcmcvHiRff/kYmIiOhaxkzsGjduvGjRIsevmZmZfn5+AQEB7ouYnp6+48gR\nX19fN23farVmZGT8mJnp5XW9RtbTp38tV4j8/PysrKy9zodgsYjFUo5NNWvSpFy7QERERDfE\nYrO3uxhahw4dhg8fPmXKFPeFqFy58ooVK/r27eum7f/xxx8NGzY8evRoo0aN3BTim2++GTRo\n0OXLl920fSIiInI3jrEjIiIiMggmdkREREQGwcSOiIiIyCCY2BEREREZBBM7IiIiIoNgYkdE\nRERkEEzsiIiIiAzCFIndkCFDOnfu7NYQDz74YMuWLd23/Tp16owZM6Zu3bruC9GiRYuHHnrI\nfdsnIiIidzNFgWIiIiIiMzBFix0RERGRGTCxIyIiIjIIJnZEREREBsHEjoiIiMggmNgRERER\nGQQTOyIiIiKDYGJHREREZBBM7IiIiIgMgokdERERkUEwsSMiIiIyCIMndgUFBc8880xISEiV\nKlWGDBmSmpqK3OD48eMnTJhwgxFdrjSHkJWV9eijj9apUycoKGjChAkXL17E7ycRERGVlcET\nuxdeeOHf//73Rx99tGXLluTk5HvuuQezQZvN9txzz33wwQc3GM4dSnMI48aN27x5c1xc3Lff\nfrtjx46xY8fi95OIiIjKzGZcubm5VatW/fDDD+2/JiUlicj27dvdvcGkpKSePXsGBQVFRESM\nHz++3OHcoTSHkJqa6uXl9dVXX9l/Xbt2rcViSU9PB+8qERERlZWRW+x+/vnnixcv9ujRw/5r\nw4YNGzZsuHXrVndvcNeuXREREQcOHGjSpEm5Y7lJaQ6hdu3aiYmJvXr1sv9qtVpFpKCgALun\nREREVGY+2jvgRsnJySJSv359xy2hoaEnTpxw9waHDh06dOjQckdxq9IcgsViadq0qYgUFBT8\n/PPP//jHP4YOHVqrVi3wrhIREVFZGbnF7tKlS15eXr6+vo5b/P39c3JyPGeDeGU6hMGDB3fo\n0OHkyZPjx49H7SARERGVn5ETu0qVKlmt1itXrjhuyc3NrVy5sudsEK9Mh7Bs2bILFy7MmDHj\njjvu2Lx5M2ofiYiIqJyMnNiFhYWJSEpKiuOWU6dOOfdCqm8Qr0yHUK1atWrVqs2YMaNVq1af\nfPIJaBeJiIiovIyc2LVr165q1aqOpqZjx44dO3ase/funrNBvNIcws6dO2vWrGmfMCsiVqs1\nMzOzUqVK6H0lIiKiMjLy5Al/f/+JEydOnTo1ODi4Tp06EydOjI6O7ty5szs2uHLlyhMnTkye\nPNl1u+8WpTmEW265JSQk5IEHHpg7d66/v/8bb7xx9uzZcePGae87ERERXYeREzsRmTVrVn5+\n/qhRo/Lz82NiYubPn++mDa5du3bnzp2en9hJKQ7B399//fr106ZN69Onj9Vq7dy58w8//NCi\nRQvd3SYiIqLrsthsNu19ICIiIiIXMPIYOyIiIiJTYWJHREREZBBM7FypT58+Fotl3bp1Rd5b\nUFBQt27dKlWqZGdnX3dTMTExFoulYlU/JiIiIl1M7FzpgQceEJHPPvusyHu/++67M2fODBky\npGLVNCYiIqKKgomdKw0aNKhq1apxcXGXLl0qfO/y5ctFZMyYMejdIiIiInNgYudKlSpVuvfe\ne7Ozs7/66qtr7rp06dLatWsbNmwYHR2tsm9ERERkeEzsXMzeG/vpp59ec3tcXFxWVtb9999v\nsVhEZP/+/SNGjGjQoIGfn1/16tW7d+9e3Mg8KWq8XUZGhsViufvuux23XLhwYdq0aZGRkf7+\n/g0aNHjsscfOnj3r4mMjIiIiz2bwAsV43bp1a9So0ddff33x4sWqVas6bl++fLnFYrGnfbt2\n7erZs6ePj8/dd99dt27do0ePxsXFDRo0aP369X/961/LETQjIyMqKiohIaFbt25Dhgw5duzY\nwoUL//vf//7www9169Z12bERERGRZ2OLnYtZLJbRo0fn5OTExcU5bjx37tz69eu7desWGRkp\nIs8++2xOTs7GjRs/+uij2bNnr1q16uOPP7bZbJ988kn5gk6fPj0hIeGll17asmXLm2+++fnn\nn69evTopKalCrIRBRERErsLEzvXuv/9++XNv7Oeff56fn++YNvHYY4/Fxsa2b9/e8YC//OUv\nInLmzJlyhMvLy/vPf/4TERExc+ZMx40DBgzo0qXLihUrsrKyynUQREREVPGwK9b1GjduHBUV\n9e2332ZkZNSoUUNEPv7448DAwCFDhtgfMHDgQBE5f/78gQMHfv/994SEhG3btolIQUFBOcIl\nJiZeunTJ39//pZdecr49JyfnypUrBw8e7NSp040eEhEREVUETOzc4oEHHti+ffvq1asffPDB\nP/74Y/v27aNGjXIMuTt+/PiUKVNWr15ttVpFpEGDBt26ddu1a1f51u3NyMgQkV9//fXFF18s\nfG96evoNHAcRERFVJOyKdYv77rsvICDAXqn4k08+sdlsjn7YgoKCmJiYlStXjh8/fuPGjWlp\naSdOnHj77bdL2Jp9Iq1ze57z2hVVqlQRkZEjR9qKEhMT44bjIyIiIk/EFju3qF69+sCBA1et\nWpWRkbFixYrw8PCePXva79q7d29iYmKfPn0WLFjgePyvv/4qIsW12Pn5+YlIZmamY8mKhIQE\nx70tWrTw9fXdvn37lStXfHz+7w/6zjvvZGVlTZo0qXr16q4+PiIiIvJEbLFzlwceeODKlSsL\nFy788ccfHeXrRMTf31/+3OSWlZX1zDPPiEh+fn6Rm2revLk4zcbIyspy7nUNDAy89957jx07\n9vzzzztu3LJly5QpUz766KNq1aq5+MCIiIjIU1nKN66LrqugoCAsLOzChQuXLl06cuRIkyZN\nHLd37Njxp59+6tOnT48ePdLS0j7//PPz58/bbLYmTZrs37/f/rCYmJj169dfvnw5ICAgMTGx\nbdu2Vqs1Jiamdu3a69evDw0NPXHixO2337527VoRSU1N7dKlS1JSUqdOnaKiolJTU1esWOHt\n7f3tt9927dpV7RQQERERFlvs3MXb23vkyJGXLl3q2rWrI6uz3/7ll1/ef//9Bw4ceOmll+Li\n4nr06PHTTz/dcccdBw4cSE5OLrypFi1arF+/vkuXLhs3bvzqq68GDBjwv//9z94/a1e3bt3d\nu3c/+eSTqamp77333qZNmwYMGLBr1y5mdURERKbCFjsiIiIig2CLHREREZFBMLEjIiIiMggm\ndkREREQGwcSOiIiIyCCY2BEREREZBBM7IiIiIoNgYkdERERkEEzsiIiIiAyCiR0RERGRQTCx\nIyIiIjIIJnZEREREBsHEjoiIiMggmNgRERERGQQTOyIiIiKDYGJHREREZBBM7IiIiIgMgokd\n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\nutSsWfOll14KCwvbtWvXtGnTkpKS7KPuCCQqCh1R5VM1Kwsd8dIldEQRqVVLISgevmHJaRFC\nEJW2E3z/r8qsJvyFgUkqP+thYud6//l2XeEbR/UeWPKznnrqqerVq2/fvt1e461nz57169cf\nM2bMo48+GhkZ6ZYdpcJyctARVQa54nt8Ll9GR1QJqtLigs8/8G8TFfg5qiqvH3w2WWFbwioK\nc6xM5/EyMzPXrFkzbdo058q9I0aM+Pzzz+11Q06dOjV48ODKlSuHh4c//fTTubm5InL69GmL\nxfLWW28FBQWNHTu2uIfZrVmzJjw8vEqVKuPHj3fcXsLjnSUnJ1sslmNXi/fOmTOnc+fOIpKW\nlmaxWJYvX96oUaPAwMBhw4b98ssvUVFRlStX7t69+8mTJ91xrtzLYkH/s9kU/vn7o/95eyv8\n8/IyxT/86wf/pwwMVPjn64v+5+Oj8M9qRf9T+dAzE7bYeYRDhw7l5ubasyUHb2/ve+65x/7z\n4MGDGzRosHv37szMzIkTJ+bm5r7zzjv2u1auXLlmzRp7pboSHrZgwYJly5b5+vo+8MADTz31\n1Pz580t+fOktWrRoz5496enpbdu23bx58xdffNG4cePevXu//vrr8+bNK/12LL7XadQs0lPv\nleNJxWvf3qWbIyIigmJi5xEyMjJEpEYx1X02b94cHx+/ceNGe/a2YMGC6Ohox9i7p59+Ojo6\n+roPmzNnjv1hs2fPHjZs2D//+c+dO3eW8PjSmzFjRnBwcHBwcOvWrW+77bYOHTqISP/+/Tdv\n3lym7XhEuZPXXivH1m6IyrIBycnoiNnZ6IiiUcdOpcBsvXroiMePoyOaZK0tlT5K/DBflXUU\nR41SCKqEiZ1HsPe3nj9/Pjg4uPC9iYmJOTk5ta8uymSz2fLz85OSkuxLeDVu3Ljkh9k37mgO\n7NChQ25u7tGjR4t7fOUyztO0r10mIv7+/o6f/fz8iuvY9Wh/+Qs6oklmxaqMCscnzSZZIA5f\n61UlY8b/NVUSO/zEFE6ecDMmdh6hVatWlSpV2rFjR1OnT0yr1dqjR4/p06dfuXIlPDx8w4YN\nzk8JCwtLT08XEcewvOIeZl86wv/qJa+9No+/v39xjz9bqProNSVXrpkEgX7LHAAAIABJREFU\n7lzs58aLsyjDl1tTyXjw5SpUVp7An1uVyZv4w8S/TVQKFOPzD5UCxfhrS6sVHVFEbrpJIagS\nJnaud90JsIUFBAQMHjz4rbfeuu+++xyJ2rJly7Zu3bpo0SI/P7/k5OSAgAB7e9jevXtnz569\ndOnSazbSrFmzEh7266+/2psDDxw4EBgYGB4eXvLjnfn5+YnIhQsX7L8eOXKkrAdYYeA/41RS\nYXyBDJWmCHxTlkkalvCddyoZs0nWisVT6Yo1EyZ2nuLVV1/t3Llz165dp0yZUq9evU2bNs2Z\nM2f69OnNmjW76aabWrduPWLEiHnz5lmt1oceeigyMrJSpUqOTMuuV69eRT4sOztbRF544YU1\na9bk5OTMnDnzqaee8vHxKe7xhfctODi4YcOGs2bNevbZZ3ft2rV27dqbjHr1ExKCjqhSxw7f\nS46v9SoaXbEqDUv4awP89Y9JTqxKUxb+3Jq+JLK7MbHzFOHh4Tt27Hj++eeffvrp9PT0xo0b\nz50795FHHhERLy+vdevWPf7441FRUQEBAf379587d27hLZT8sN69e7dv3/7s2bMjR4587rnn\nSr9ZEbFYLEuWLJk0adJtt93Wo0ePWbNm/fvf/3bPadC2cSM6osrFK36MHX51UREJC0NHVGlx\nuTpMFgc/+UYlFcAHVclf8VSWFLs6/rsw4y0p9v/XkSVS5xGzYl94oRxbuyH4KY0i8scf6Ih/\nbl0GKf6j3F1UEjt8/vr77+iI+F510ejjVmmxw+evxdR/cK9hw4q82cvLq23btvHx8fb/7Tde\nc4s9TbJYLCX84NigzWaz317Cjc5Pv+b/wk+5bujCT6yoCanxNGzYcNKkSVOnTnXc8umnn44a\nNcoly9XFx8dnZWXdfvvtN74pg8Mv8qHyjYX/KMcPtxeNjEdF3broiPgRkyrlTvBBVSZPmKTc\niZkwsTOFoUOHTp8+nYnd9bVpg46o0tqPX7lVpcUOv1asyl8TP+INP3jRJLMKKmzfX9mY5K+p\nxxwvI6xdcTsL39hpQOfCN8Kww720Dh1CRyyqcqHbpaaiI6pMnsDXWMGvpy4iQUHoiPgxdkVN\n6jIglYwH/6JVGTHZrJlCUCVM7CqGU6dOTZo0af369bVq1Ro2bNjLL79sr0u3Z8+e6dOn7969\n22q1RkVFxcbGRkREnD59OiQkZM6cOa+88srAgQOTkpIOHz48duzYbdu2xcbGah+KZzPJdFF8\ni53KyhP4oTz4EysaLXb5+eiIKvDtZypX4JcvoyOq9DibCRM7D3LlypWcnBzHr/lOn55FLuqa\n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\nhw7FbcfLy2vGjBl16tTp0aPH7t27U1NTb731VucnNrjekDXnLV88fPRvb30UERIc4K83K7ZD\nB3RElZK2+DHaKmOkrg4ewFH5a+LHL+IrU6p03uE71lVa7Ngxajj8i3qQ2bNnz5492/Hrf//7\n36FDh27btm3gwIFWq7V9+/Zz586dPHnyxYsXr3mij4/PunXrxo0b165duzZt2owZM2bbtm0i\n4uXltW7duscffzwqKiogIKB///5z584t/f5MmDBh8uTJ2dnZK1asKHI7Xbt2nTdv3osvvvjQ\nQw+Fh4e///77Xbp0cX7iokWLSg7xpz3087oruvnbMwZWr3rtAZbIpRd/hc6t2+HXoxSNUTUq\nw5Dxc5xV/pr4qQzZ2eiIKmPsTDJjHf9poHL9YyaWchehJc+RkpKSkJDQq1cv+6/PP//8rl27\nnBv/KgTrsc/kUpnHfi15uTyjmh7+ZETRd/z8czm2dkNUJoj9uQwNgspHeUYGOmK1auiIotFi\nh19rmAWK3QefNKt86BUzzNfLy6tt27bx8fH2/+03XnOLPU2yWCwl/ODYoM1ms99ewo3OT7/m\n/8JPuW7owk9ki52nKHKt2FKutZqXlxcTE7Nw4cJevXolJCS8//77r732mpv316BU6kjh4S/n\nVFrs8BmPShsP/mvSJNNF8RmPyhhNkxQ/MhMmdh6tlGutRkREfPTRRy+//PLEiRNDQkKefvrp\nBx98ELOHRlPUlGEDMkmBA3zHqMph4vMP/Ik1SSqg0oGGT5pV1hExEyZ2rmfL+1fhGy1+E8qx\nqdKvtTp8+PDhw4eXIwT9CX51c5WPcnwqoDKr8dQpdESV6X74Mf74AoEqLXZmOLGicTWicv1T\n/FQqrjxBUI6u2BdeeMHHx+c///mP/fZHH300LS1txYoVRS7hWnglWd2jqEjw0/1UhpvgewxV\nPiLrwstcq1R1wbe/4ocSqrTY4YOq5K/4YRIql3nF48oTpGPYsGFjxozJy8vz8/OzWq1r1qy5\nZqHVwkvBOlaSVd3xMrDUDxCb9hv+aglAHJVUAD+rUWVWQVISOmKQRm1t/LlNTUVHVBl8hk/s\nVA4Tn02qHOZddykEVcLErmK48847RWTDhg19+/bdvHnzpUuX+vXrV9wSrvanOFaSrSi+2hd4\n+rxGfXln+OmiKpk3vsenRg10RNGYFavS/op/CeFnxaos24ofCoY/saLx+mEtDjdjYlcx+Pv7\n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\nE+Tt3r1bLBbHxMQwHhUbNmzYsGGDYoNXr151cnJiXiu2cPTo0fv371++fHnQoEEAEB8f/8or\nr2zevJn5tY8//tjS0hIAli5d+vXXXwOArq6uQCDQ0dHR1tauq6v74IMPPvzwQx0dHVtb2yVL\nlnz//fetd6G6uhoAnlMyEHDixIlOqF97Y+FI5/821QkEAi1tLaGW1h9XC0qKij/c+rGOri4A\nLFm1LCY88nXJYm1t7aUhkk9XRYQafH31afHPoz/s5cH/L15+WT3b6T5IlFfx8x8kwgH4l3IS\nSzEzM2xG/BlnklQWfvMZiYkqfv6MZCqWS+ADOxYhLCxs3rx5ACASiezs7IxbVa/s7OyYFwUF\nBfX19UNaphrlcnljY2NRUZGDgwMABAYGLmklsdu6p631FhwdHQe1NFxPnTq1qanpxo0bzECr\noq5qYGDwZ7u71NChQ1etWpWQkPDrr78WFBTk5uaOGzeu9S8w9dbKykpTU9P2O6iMmgklzS06\nSOrIikufNTaGLn5Xsb9Nz5oqyh4MszQ3Gz70Zb95xw8nbbSYP1RHTf3jV6+qZzvdB0kptq4O\nm7Gj80HjqKjAZnzwAJsRAJydsRnxE5MkDwb4pCQ1SvzGPpK/Jv7wOB34wI5FsLOz81QiSaVo\nWXv27Jm1tXVqamrrd61aynkjRozocgttRmWZwYimlgdinVZXlvYzEzKZbNKkSSNGjHj55Zfn\nzp176dKllJSU1r8wbtw4fX398+fPj271TN/c3Ozt7R0eHt45tV5HuaumpubBQ0zWRH3UeuHg\nIf8dOCguuqslEObU/ucNEzVJ4fv6qmc73QdHtOZJdhO/R5uklIZ/bN3dsRlJwPf4awgkBi1c\nAh/YqR/dGYDtMRwcHEpKSkQiEZPlys/Pj4mJOXjwYPe3MGbMmIKCgkePHjGZs5ycHC0trVGj\nRnUy+qqIxpKTk5ubm8+ePcu07v3www9t1hKJRPPnz9++ffvChQsVoeThw4fPnj27b9++pqam\nDqkbOyhA/JdxmKV5VUWljq6OselgALh9o+hk8g/L17wDAL9evCzN/SXB5u2Vt/efqbk2Y+C4\ndhtRHS2mHXgg0bHDn4ol6aqpqsJmxM8RAsDYsdiM+LvJEYE3kowd/m6SZOwmTVL2Du88wYMY\nM2bMcHJy8vf3j4uLa25ulkgktra2+qq0LLz00ktWVlbLli3bvHlzRUVFSEjI4sWLTUxMKpRf\n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\nMCAgIDs7OyEhobS0NDg4+OTJkyYmJosWLdq0aZOenl5ZWZm5uXlsbGxUVNS8efMOHDig4Bo5\ncuT169dtbW2Z/zY1NTWRtH1Q4cQJbMYpU7AZAUAmw2ZsOaNQUVCAzUjiHDB8ODZjmpqfp7oG\nScSMH006OGAzAsWxHTwYmxEAZs1S9g5vKcZDI2hqapo9e7aFhcW5c+cqKir8/PwsLCzmzJnT\n+VpXr14NCwtLTk52cHBISEhYsGCBTCY7deqUs7NzWFhYQEAAAMyfP9/S0jI3N7empiYoKKih\noUGhY5KUlHTs2DH9v9Y4hELhmDFjAKC+vj4pKSk1NTU9PV0zO81K4HfVkLSb4F+wSJ7R8XeT\nI8MT+KU0EoFA/OFfkkgCn5TEUlk5eEsxHhpBdnZ2YWHhmTNnGLvY+Pj45m40WxQVFWlpadnY\n2NjY2Kxfv14sFmtrazPuZDo6Otra2pmZmVKpND09nYnedu/eLRaLY2JimNXXrl0rFouVbXzE\niBH379+fPXv22LFj1bSXfQH4tjMjR2IzAsDQodiMJDrM+DoOJKU0fFL8rwm+CDNQxB/47sZA\n8TUheczjEvjAjhW4fv26paWlWYvQzsKFCwFAIVCsDD4+Pq6uro6OjhMmTPD19ZVIJHp/TTgV\nFBTU19cPGTKE+a9cLm9sbCwqKho0aBAA2NnZdbLxGzduPHz4cOnSpXPnzs3MzOzxrvUx4LuL\nGhtjMwJAeTk2I0m7NL4lZW0tNiMAtHzB8fDgATYjScYOP+IhKeXjY9Ag6k/Qz8EHdqwAk2ZT\n9m6btxT5YX19/bS0tKysrJSUlMOHD+/atevChQujR49u/ZvW1tapqamtV7eysqqqqgIAg04f\nggcOHDhw4MCtW7dOmzZNJpOZ42vNkwB/XJTERLWhAZuRJLDDd04jiT/wE0sVFdiMJAcWPxVK\n4hWLnz/Dv/5wDHxgp370YADW3t6+uLj44cOHJiYmALB9+/a8vLzY2P96Kujq6gKAwuD1xo0b\nzIusrKz8/Pw1a9aIxeJt27bZ2tqePn169OjRikDQwcGhpKREJBJZWloCQH5+fkxMzMGDBzv5\nJOnp6W+88cbNmzdFIhEAVFdXa2lpDUJ5wHrgKK15lo9A1Bk++ACbkUTHAV/HjqSVcPJkbEYS\nuQp8eHlhM5IU7zjitYWfmCQJ07kEPrBjBaZNm+bs7LxixYotW7bIZLKYmJioqCjFu6ampjY2\n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", "text/plain": [ "Plot with title “Color Key”" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "heatmap.3(InSilicoCell2LandmarkCorrelation_sorted, dendrogram='none', Rowv=FALSE, Colv=FALSE,\n", " trace='none', col = scalered, margin = c(5, 5), density.info = \"none\", \n", " RowSideColors = rowcols, RowSideColorsSize=2, symm=F,symkey=F,\n", " symbreaks=F, scale=\"none\")\n", "legend(\"bottomleft\", legend = c(unique(cell.labels), paste0(\"cluster \", 1:length(unique(metadata$label)))), \n", " col = c(rcols1, rcols2), border=FALSE, bty=\"n\", y.intersp = 0.7, cex=0.7, pch = 15)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "R version 3.5.1 (2018-07-02)\n", "Platform: x86_64-conda_cos6-linux-gnu (64-bit)\n", "Running under: CentOS Linux 7 (Core)\n", "\n", "Matrix products: default\n", "BLAS/LAPACK: /data/pinello/SHARED_SOFTWARE/anaconda3/envs/ATACseq_scABC/lib/R/lib/libRblas.so\n", "\n", "locale:\n", " [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C \n", " [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 \n", " [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 \n", " [7] LC_PAPER=en_US.UTF-8 LC_NAME=C \n", " [9] LC_ADDRESS=C LC_TELEPHONE=C \n", "[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C \n", "\n", "attached base packages:\n", "[1] parallel stats4 stats graphics grDevices utils datasets \n", "[8] methods base \n", "\n", "other attached packages:\n", " [1] usethis_1.4.0 devtools_2.0.1 RColorBrewer_1.1-2 \n", " [4] gplots_3.0.1.1 Matrix_1.2-17 forcats_0.4.0 \n", " [7] stringr_1.4.0 purrr_0.3.2 readr_1.3.1 \n", "[10] tidyr_0.8.3 tibble_2.1.1 ggplot2_3.1.0 \n", "[13] tidyverse_1.2.1 dplyr_0.8.0.1 data.table_1.12.0 \n", "[16] Rsamtools_1.34.1 Biostrings_2.50.2 XVector_0.22.0 \n", "[19] scABC_0.99.0 GenomicRanges_1.34.0 GenomeInfoDb_1.18.2 \n", "[22] IRanges_2.16.0 S4Vectors_0.20.1 BiocGenerics_0.28.0 \n", "\n", "loaded via a namespace (and not attached):\n", " [1] nlme_3.1-137 fs_1.2.7 bitops_1.0-6 \n", " [4] lubridate_1.7.4 httr_1.4.0 rprojroot_1.3-2 \n", " [7] repr_0.19.2 tools_3.5.1 backports_1.1.3 \n", "[10] R6_2.4.0 rpart_4.1-13 KernSmooth_2.23-15 \n", "[13] Hmisc_4.2-0 lazyeval_0.2.2 colorspace_1.4-1 \n", "[16] nnet_7.3-12 withr_2.1.2 prettyunits_1.0.2 \n", "[19] processx_3.3.0 tidyselect_0.2.5 gridExtra_2.3 \n", "[22] curl_3.3 compiler_3.5.1 cli_1.1.0 \n", "[25] rvest_0.3.2 htmlTable_1.13.1 xml2_1.2.0 \n", "[28] desc_1.2.0 caTools_1.17.1.2 scales_1.0.0 \n", "[31] checkmate_1.9.1 callr_3.2.0 pbdZMQ_0.3-3 \n", "[34] digest_0.6.18 foreign_0.8-71 base64enc_0.1-3 \n", "[37] pkgconfig_2.0.2 htmltools_0.3.6 sessioninfo_1.1.1 \n", "[40] htmlwidgets_1.3 rlang_0.3.3 readxl_1.3.1 \n", "[43] rstudioapi_0.10 generics_0.0.2 jsonlite_1.6 \n", "[46] BiocParallel_1.16.6 gtools_3.8.1 acepack_1.4.1 \n", "[49] RCurl_1.95-4.12 magrittr_1.5 GenomeInfoDbData_1.2.0\n", "[52] Formula_1.2-3 Rcpp_1.0.1 IRkernel_0.8.15 \n", "[55] munsell_0.5.0 stringi_1.4.3 zlibbioc_1.28.0 \n", "[58] pkgbuild_1.0.3 plyr_1.8.4 grid_3.5.1 \n", "[61] gdata_2.18.0 crayon_1.3.4 lattice_0.20-38 \n", "[64] IRdisplay_0.7.0 haven_2.1.0 splines_3.5.1 \n", "[67] TraMineR_2.0-11.1 hms_0.4.2 ps_1.3.0 \n", "[70] knitr_1.22 pillar_1.3.1 uuid_0.1-2 \n", "[73] boot_1.3-20 pkgload_1.0.2 glue_1.3.1 \n", "[76] evaluate_0.13 latticeExtra_0.6-28 remotes_2.0.2 \n", "[79] modelr_0.1.4 cellranger_1.1.0 gtable_0.3.0 \n", "[82] assertthat_0.2.1 xfun_0.6 broom_0.5.1 \n", "[85] survival_2.44-1.1 memoise_1.1.0 cluster_2.0.7-1 \n", "[88] WeightedCluster_1.4 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sessionInfo()" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "save.image(file = 'scABC_cusanovich2018subset.RData')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "R [conda env:ATACseq_scABC]", "language": "R", "name": "conda-env-ATACseq_scABC-r" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.5.1" } }, "nbformat": 4, "nbformat_minor": 2 }