当前位置: 首页 > news >正文

生物笔记——暑期学习笔记(三)

生物笔记——暑期学习笔记(三)

文章目录

  • 前言
  • 一、R篇
    • 1. 数据筛选
    • 2. 字符串处理
    • 3. 练习
  • 二、生信篇
    • 1. blast 基因家族鉴定
    • 2. hmm鉴定
    • 3. 理化性质与亚细胞定位
    • 4. 基因重复类型分析
    • 5. 家族成员染色体位置分析
    • 6. 基因组共线性分析
    • 7. 多序列比对,构树
    • 8. Ka/Ks分析
    • 9. GO、KEGG富集分析
    • 10. 基因家族Motif 分析
  • 总结


前言

这一系列文章主要是对于在暑期,老师每周教导的生信方面的课程的课后学习笔记的总结,希望用此方法来巩固我的所学。

一、R篇

1. 数据筛选

情景:
假设有一个基因表达矩阵x
目标:

  1. 筛选出在样本A中基因表达值大于10、在样本B中小于8、在样本C中与样本D中表达值相差超过或等于2的基因,并返回基因ID。
  2. 筛选出所有基因表达量都为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 = "_"))
> xA  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,]> x1A 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)

2. 字符串处理

#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

3. 练习

情景:
假设有一个包含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"

二、生信篇

1. blast 基因家族鉴定

基因家族成员鉴定(一)

2. hmm鉴定

生物笔记——暑期学习笔记(四)

3. 理化性质与亚细胞定位

理化性质与亚细胞定位
亚细胞定位
pyhton爬虫学习一

4. 基因重复类型分析

鉴定不同基因的重复模式

5. 家族成员染色体位置分析

家族成员染色体位置分析

6. 基因组共线性分析

基因组共线性分析

7. 多序列比对,构树

多序列比对,构树

8. Ka/Ks分析

Ka/Ks分析

9. GO、KEGG富集分析

10. 基因家族Motif 分析

基因家族Motif分析


总结

本文的R篇主要讲述了使用which()返回索引来进行数据筛选,以及一些字符串处理函数: paste() 、nchar() 、gsub() 、chartr() 等 。 而生信篇则主要讲述了在基因家族分析中的一些分析。

山一程,水一程,身向榆关那畔行,夜深千帐灯。

–2023-8-28 笔记篇

http://www.lryc.cn/news/147167.html

相关文章:

  • EPICS自定义设备支持--longin记录的设备支持编写
  • SpringCloud(十)——ElasticSearch简单了解(二)DSL查询语句及RestClient查询文档
  • Python Flask Web开发一:环境搭建
  • DataTable扩展 列转行方法(2*2矩阵转换)
  • Decomposed Prompting: A MODULAR APPROACH FOR SOLVING COMPLEX TASKS
  • ​无需测试环境!如何利用测试脚手架隔离微服务,实现功能自动化
  • HOperatorSet.Connection 有内存泄漏或缓存
  • 力扣2. 两数相加
  • 无涯教程-Android Intent Standard Extra Data函数
  • STM32 CAN 波特率计算分析
  • 每日后端面试5题 第十天
  • 荷兰国旗问题之快速分组
  • 只允许程序单实例运行
  • 巨人互动|Facebook海外户Facebook游戏全球发布实用策略
  • 【Java架构-版本控制】-Git进阶
  • 业务需要咨询?开发遇到 bug 想反馈?开发者在线提单功能上线!
  • MybatisPlus插件篇—逻辑删除+p6spy
  • Android studio中EditText设置默认值
  • 《Java面向对象程序设计》学习笔记——第 13 章 泛型与集合框架
  • python进阶--魔法方法之类的表示
  • JVM 创建对象时分配内存的几种方法、分配方法的选择
  • 08-Vue基础之组件
  • Kotlin学习之密封类
  • opencv鼠标事件函数setMouseCallback()详解
  • 硬件知识积累 USB 接口 type - A type - B type - C 的介绍与功能说明 (简单介绍)
  • 【LeetCode】290. 单词规律
  • 研磨设计模式day12迭代器模式
  • Python3不支持sqlite3的解决方法
  • Qt应用开发(基础篇)——消息对话框 QMessageBox
  • ETC reset