Commit fc191673 authored by Chaos's avatar Chaos
Browse files

rewrite chr_size

parent 615ae8db
Loading
Loading
Loading
Loading
+24 −52
Original line number Diff line number Diff line
@@ -24,70 +24,42 @@ online_genome_process <- function(
}

chr_size <- function(
				ref = "hg19",
				ref = "hg38",
				mit = FALSE,
				extra = FALSE,
				online = FALSE
){
	"data_dir" |>
	chaos_info() |>
	chaos_create_dir()
	extdata_dir <- "~/.config/chaos.tools"
	chr_size_data <- file.path(extdata_dir,"chr_size.rds")

	local_genome_file <- system.file(
								"extdata",
								"common.genome.info.txt",
								package = chaos_info("name")
							)

	downloaded_genome_file <- file.path(
									chao_data_dir,
									"downloaded.genome.info.txt"
								)

	if(!file.exists(downloaded_genome_file))
	{
		downloaded_genome <- data.table(NULL)
	}else
	{
		downloaded_genome <- fread(downloaded_genome_file)
	if(!file.exists(chr_size_data)){
		raw_data <- data.table(NULL)
		if(!dir.exists(extdata_dir)){
			dir.create(extdata_dir)
		}


	all_genome <- rbind(
						fread(local_genome_file),
						downloaded_genome
					)

	genome_list <- all_genome[,name] %>% 
		genome_list <- NULL
	}else{
		raw_data <- readRDS(chr_size_data)
		genome_list <-	raw_data[,name] |>
						unique()
	}

	if (ref == "list")
	{
	if (ref == "list"){
		genome_list
	}else
	{
		
		if(ref %in% genome_list)
		{
			if(isTRUE(online))
			{
	}else{
		if(ref %in% genome_list){
			if(isTRUE(online)){
				dt <- online_genome_process(ref = ref)
			}else
			{
				dt <- all_genome[
							name == ref
						][
							,group := factor(group,levels = c("main","mitochondrion","extra"))
						]
			}else{
				dt <- raw_data[name == ref]
			}
		}else
		{
		}else{
			dt <- online_genome_process(ref = ref)
			data.table::fwrite(
				rbind(dt,downloaded_genome),
				downloaded_genome_file,
				sep = "\t"
			)
			rbind(
				dt,
				raw_data
			) |>
			saveRDS(file = chr_size_data)
		}

		if(isFALSE(mit))