踩過(guò)的坑:
- 使用fread這個(gè)函數(shù)讀的賊快蝗岖,以后就用它了侥猩!
- 首先要設(shè)置當(dāng)前目錄,否則到后面數(shù)據(jù)一團(tuán)糟抵赢。
- 當(dāng)讀取表格文件時(shí)欺劳,我遇到了讀取后沒(méi)有表頭的情況,經(jīng)過(guò)多方搜索铅鲤,原來(lái)需要設(shè)定fill=T划提,因?yàn)橛胁幌嗟鹊男校鶕?jù)文檔原解釋:如果為真邢享,那么在行長(zhǎng)度不相等的情況下鹏往,將隱式地添加空白字段。
fill :logical. If TRUE then in case the rows have unequal length, blank fields are implicitly added. See ‘Details’.
-
rowSum骇塘、colSum伊履、which函數(shù)要多用用,真的挺好用款违。
- strsplit切分字符串后是list唐瀑,不能直接使用,需要用unlist進(jìn)行轉(zhuǎn)化插爹。
- 讀取文件時(shí)哄辣,設(shè)置header貌似相當(dāng)于col.names请梢,不過(guò)我使用這個(gè)參數(shù)一直報(bào)錯(cuò),等待會(huì)再看看柔滔。設(shè)置row.names就相當(dāng)于增加變量溢陪,但是輸出文件時(shí),行列總是會(huì)“混起來(lái)”睛廊,結(jié)合網(wǎng)上大神思維形真,輸出文件應(yīng)再增加一列
同理,還有quote超全,通常設(shè)置為quote=""咆霜,為了防止文件中已存在"而帶來(lái)的讀寫問(wèn)題。
接著嘶朱,check.names=F蛾坯,這個(gè)是用來(lái)防止將文件中的特殊命名的如. [0-9] 之類的轉(zhuǎn)換,推薦勾選疏遏。
#此腳本用于提取三代測(cè)序中的數(shù)據(jù)脉课,用于工作中,等技術(shù)高了再回來(lái)改進(jìn)财异!
#2019年1月10日14:50:45
#liyuan
#功能:提取組織中表達(dá)所有的基因及表達(dá)量倘零,并進(jìn)行聚類圖的繪制。
setwd("~/R_Workspace/DATA/1-11/1_表達(dá)譜/1_all/")
#step1, load main
#在這里使用data.table::fread比較好戳寸,因?yàn)樗俣荣\快呈驶!
in_file_main <- "~/R_Workspace/DATA/1-11/gene.description.xls"
input_main <- data.table::fread(in_file_main,header = TRUE,fill = T,quote="",check.names = F)#需要增加fill=T
prefix_out <- "exp_pro.cluster.All"
out_file_name1 <- paste(prefix_out,".tiff",sep="")
out_file_name2 <- paste(prefix_out,".xls",sep="")
#step2, remove exp <= 0,使用rowSums這個(gè)方法一次就能出結(jié)果疫鹊,我還傻乎乎寫了半天的for-if
row_index <- which(rowSums(input_table[,c(29:40,45)]) > 0);paste("2_calculate data of diff and save index of diff success !")
#step3袖瞻,獲取diff組織列以及gopath注釋列
exp_data <- data.frame(input_table[row_index,c(1,29:40,45,176:185)]) #索引列自動(dòng)作為row.names
#step4, draw exp_cluster by above data.
#step4.1, tran rownames
x <- "brain eye fin gill hood heart intestine muscle kidney liver testis spleen skin"#new row
y <- strsplit(x,split = "\t")
colnames(exp_data)[2:14] <- unlist(y)
data.table::fwrite(exp_data,sep="\t",col.names =TRUE,
row.names = FALSE,file = out_file_name2);paste("3_1_write table of cluster success!")
#step4.2, draw cluster,just for test1:1000
library(pheatmap)
p <- pheatmap(log2(exp_data[1:1000,2:14]+1),scale="row",
cluster_cols=T,#是否按列聚類
cluster_rows=T,#是否按行聚類
show_rownames=F,
color = colorRampPalette(c("MediumBlue","white","red"))(256),
legend_breaks = -10:10,#圖例范圍
fontsize = 18,
filename = out_file_name1#保存文件命名
);paste("3_2_draw cluster success and exit!")
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者