Commit acc70552 authored by Chaos's avatar Chaos
Browse files

fix a bug in de.gene when choosing short_ENSEMBL

parent 2eac7993
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ import(patchwork)
import(kableExtra)
import(ggseqlogo)
import(edgeR)
import(limma)
import(rtracklayer)
import(ggthemes)
import(ggrepel)
+29 −19
Original line number Diff line number Diff line
@@ -77,28 +77,38 @@ de.gene <- function(
				.data,
				regulation,
				fold_change = 2, 
				p_value = 0.05
				p_value = 0.05,
				keytype = "SYMBOL"
){
	dt <-.data[adj.P.Val < p_value]

	if(tolower(regulation) == "up")
	{
		dt[log2FC > log2(fold_change), gene_name]
	}else if(tolower(regulation) == "down")
	{
		dt[log2FC < -log2(fold_change), gene_name]
	}else if(tolower(regulation) == "regulated")
	{
		dt[log2FC > log2(fold_change) | log2FC < -log2(fold_change), gene_name]
	}else if(tolower(regulation) == "not_sig")
	{
		c(
			.data[adj.P.Val >= p_value, gene_name],
			dt[log2FC <= log2(fold_change) & log2FC >= -log2(fold_change), gene_name]
		)
	}else if(tolower(regulation) == "all")
	{
		.data[, gene_name]
	if(tolower(regulation) == "up"){
		sub_dt <- dt[log2FC > log2(fold_change)]
	}else if(tolower(regulation) == "down"){
		sub_dt <- dt[log2FC < -log2(fold_change)]
	}else if(tolower(regulation) == "regulated"){
		sub_dt <- dt[log2FC > log2(fold_change) | log2FC < -log2(fold_change)]
	}else if(tolower(regulation) == "not_sig"){
		sub_dt <-	rbind(
						.data[adj.P.Val >= p_value],
						dt[log2FC <= log2(fold_change) & log2FC >= -log2(fold_change)]
					) |>
					unique()
	}else if(tolower(regulation) == "all"){
		sub_dt <- .data
	}
	if(keytype == "SYMBOL"){
		sub_dt[,gene_name]
	}else if(keytype == "ENSEMBL"){
		sub_dt[,gene_id]
	}else if(keytype == "short_ENSEMBL"){
		separate_col(
			sub_dt,
			"gene_id",
			select = 1,
			into = "short_ENSEMBL",
			remove = F
		)[,short_ENSEMBL]
	}
}