瀏覽代碼

chromosomes to remove

lucananni93 2 年之前
父節點
當前提交
c3d913c483
共有 1 個文件被更改,包括 13 次插入5 次删除
  1. 13 5
      scripts/calder

+ 13 - 5
scripts/calder

@@ -5,8 +5,7 @@ suppressPackageStartupMessages(library(CALDER))
 
 AVAILABLE_REFERENCE_TRACKS_GENOMES <- c("hg19", "hg38", "mm9", "mm10")
 INPUT_TYPES <- c("hic", "cool")
-HIC_CHROMS_TO_REMOVE <- c("ALL", "M", "MT", "Y")
-COOL_CHROMS_TO_REMOVE <- c("MT", "M", 'chrMT', 'chrM', 'Y', 'chrY')
+CHROMS_TO_REMOVE <- c("ALL", "M", "chrM", "MT", "chrMT", "Y", "chrY")
 
 
 parse_arguments <- function(){
@@ -24,6 +23,8 @@ parse_arguments <- function(){
 	              help="Genomic feature track to be used to determine A/B compartment direction
 	              when genome == 'others'. The track should presumably have higher values
 	              in A than in B compartmnets. [default %default]"),
+	  make_option(c("-c", "--chromosomes"), action='store', default='all', type='character',
+	  			  help="Chromosomes to analyze, separated by comma. [default %default]"),
 	  make_option(c("-p", "--nproc"), action="store", default=1, type='integer',
 	              help="Number of cores to use [default %default]"),
 	  make_option(c("-o", "--outpath"), action="store", default=NA, type='character',
@@ -65,6 +66,7 @@ parse_arguments <- function(){
 		paste0("[Parameters] Input type: ", opt$type),
 		paste0("[Parameters] Bin size: ", opt$bin_size),
 		paste0("[Parameters] Genome: ", opt$genome),
+		paste0("[Parameters] Chromosomes: ", opt$chromosomes),
 		paste0("[Parameters] N. cores: ", opt$nproc),
 		paste0("[Parameters] Output: ", opt$outpath)
 	))
@@ -86,7 +88,7 @@ sanitize_chroms <- function(chroms){
 handle_input_hic <- function(opt){
 	suppressPackageStartupMessages(library(strawr))
 	chromsizes <- readHicChroms(opt$input)
-	chroms <- chromsizes[!(chromsizes$name %in% HIC_CHROMS_TO_REMOVE), "name"]
+	chroms <- chromsizes[!(toupper(chromsizes$name) %in% toupper(CHROMS_TO_REMOVE)), "name"]
 	CALDER(contact_file_hic = opt$input,
 		   chrs = chroms,
 		   bin_size = opt$bin_size,
@@ -107,8 +109,14 @@ handle_input_cool <- function(opt){
 				  " --header ", 
 				  opt$input))
 	chroms <- read.table(file.path(intermediate_data_dir, "chroms.txt"), sep="\t", header=TRUE)
-	chroms <- chroms[!(chroms$name %in% COOL_CHROMS_TO_REMOVE), "name"]
-
+	if(opt$chromosomes == "all"){
+		chroms <- chroms[!( toupper(chroms$name) %in% toupper(CHROMS_TO_REMOVE) ), "name"]
+	}
+	else{
+		chrom_list <- strsplit(opt$chromosomes, ",")[[1]]
+		chroms <- chroms[chroms$name %in% chrom_list, "name"]
+	}
+	
 	dump_paths <- list()
 	for(chrom in chroms){
 		cat(paste0("[Pre-processing] Dumping ", chrom, "\n"))