生物笔记——暑期学习笔记(三)
这一系列文章主要是对于在暑期,老师每周教导的生信方面的课程的课后学习笔记的总结,希望用此方法来巩固我的所学。
情景:
假设有一个基因表达矩阵x
目标:
- 筛选出在样本A中基因表达值大于10、在样本B中小于8、在样本C中与样本D中表达值相差超过或等于2的基因,并返回基因ID。
- 筛选出所有基因表达量都为0的基因
x <- data.frame(A =c(7:15,0),B = c(2:10,0), C = c(3:11,0),D = c(0:8,0),row.names = paste("gene",seq(1,10),sep = "_"))
> x
A B C D
gene_1 7 2 3 0
gene_2 8 3 4 1
gene_3 9 4 5 2
gene_4 10 5 6 3
gene_5 11 6 7 4
gene_6 12 7 8 5
gene_7 13 8 9 6
gene_8 14 9 10 7
gene_9 15 10 11 8
gene_10 0 0 0 0
#str(x)
tiaojian <- x["A"]>10 & x["B"]<8 & abs((x["C"]-x["D"]))>=2
x1 <- x[tiaojian,]
> x1
A B C D
gene_5 11 6 7 4
gene_6 12 7 8 5
#返回满足条件的基因ID
> row.names(x1)
[1] "gene_5" "gene_6"
#或者直接用which返回索引,再根据索引返回满足条件的基因
> which(tiaojian)
[1] 5 6
> x[which(tiaojian),]
A B C D
gene_5 11 6 7 4
gene_6 12 7 8 5
#筛选出所有基因表达量都为0的基因
tiaojian <- rowSums(x==0) == ncol(x)
x2 <- x[tiaojian,]
> row.names(x2)
[1] "gene_10"
#或者
tiaojian <- x$A ==0 & x$B == 0 & x$C==0 & x$D ==0
x2 <- x[which(tiaojian),]
rownames(x2)
#paste函数
> paste("x",c(1:3),sep="*")
[1] "x*1" "x*2" "x*3
#nchar函数
> nchar("星石传说")
[1] 4
> nchar("sjfakjfa")
[1] 8
> paste(c("星", "石","传","说"), collapse = "")
[1] "星石传说"
#字符串替换
x <- "1,3;5,6,7;8,9"
> gsub(";",",",x,fixed = TRUE)
[1] "1,3,5,6,7,8,9"
> sub(";",",",x,fixed = TRUE)
[1] "1,3,5,6,7;8,9"
> chartr("asx","xwb","xingshichuangshuo")
[1] "bingwhichuxngwhuo"
#正则表达式
> gsub("[[:space:]]+"," ", "a cat in a box",perl = TRUE)
[1] "a cat in a box"
text <- "hello world"
is_match <- grepl("[A-Z]", text) #匹配text中是否包含大写字母
> is_match
[1] FALSE
情景:
假设有一个包含DNA序列的字符向量dan_seq
目标:
将序列转为大写字母,且进行碱基互补,再将所有序列按字典顺序排列,最后合并为一段长序列。
dan_seq <- c("atgcgta","cgtacg","ttgga","gcat")
dan_seq <- toupper(dan_seq)
> dan_seq
[1] "ATGCGTA" "CGTACG" "TTGGA" "GCAT"
chartr("TAGC", "ATCG", dan_seq)
> dan_seq
[1] "TACGCAT" "GCATGC" "AACCT" "CGTA"
dan_seq <- sort(dan_seq)
> dan_seq
[1] "AACCT" "CGTA" "GCATGC" "TACGCAT"
new_seq<- paste(dan_seq,collapse = "")
> new_seq
[1] "AACCTCGTAGCATGCTACGCAT"
基因家族成员鉴定(一)
生物笔记——暑期学习笔记(四)
理化性质与亚细胞定位
亚细胞定位
pyhton爬虫学习一
鉴定不同基因的重复模式
家族成员染色体位置分析
基因组共线性分析
多序列比对,构树
Ka/Ks分析
基因家族Motif分析
本文的R篇主要讲述了使用which()返回索引来进行数据筛选,以及一些字符串处理函数: paste() 、nchar() 、gsub() 、chartr() 等 。 而生信篇则主要讲述了在基因家族分析中的一些分析。
山一程,水一程,身向榆关那畔行,夜深千帐灯。
–2023-8-28 笔记篇