Gamer's Show

你知道人生最要紧的事是快乐不停

0%

散点图的绘制

先扔一个散点教程

数据读取

笨人踩过的一个天大的坑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
image_path = "path_to_your_image.nii"
"""
#建立名称
row_index = []
columns_index = []


matrix_zeros = np.zeros([16, 4])
row_index = ['Vic', str([0, 2]), str([0, 3]), str([0, 4]),
str([1, 1]), str([1, 2]), str([1, 3]), str([1, 4]),
str([2, 1]), str([2, 2]), str([2, 3]), str([2, 4]),
str([3, 1]), str([3, 2]), str([3, 3]), str([3, 4])
]

columns_index = ['Vic', 1, 2, 3]
numdata = pd.DataFrame(matrix_zeros, columns=columns_index, index=row_index)
print(numdata)
"""
i = 0
for idx, row in df.iterrows(): # 遍历 DataFrame
if is_number(row['Value']):#存储数字结果
numdata = numdata.append({'Feature': row['Feature'], 'Value': row['Value']},ignore_index=True)
#numdata = numdata.append(fnumdata, ignore_index=True)

# 假设我们要将第一行数据作为列标题
#new_columns = numdata.iloc[:,0]#如果是行,使用[0]
#numdata.index = new_columns# 添加标题
#numdata.columns = ['Vic']
# 删除第一行,因为它已经作为列标题了
numdata = numdata.drop(df.index[0])
#df.to_csv('./lib/Estimate/demo.csv', index=False)
#存储供生存分析使用的data

#np.savetxt('./lib/Estimate/demo.txt', numdata,),index=row_index,columns=columns_index
numdata.to_csv('./lib/Estimate/demo.csv', sep=',',index=False)
print(numdata)

一些小资源

高级可视化100图

课程准备

1_R语言基础

01 R语言简介

R语言历史

R语言是一款统计软件,R语言也是一门编程语言,R语言也是一个数据分析平台。R是一个免费自由且跨平台通用的统计计算与绘图软件,它有 Windows、Mac、Linux 等版本,均可免费下载使用。R 项目(The R Project for Statistical Computing)最早由新西兰奥克兰大学(Auckland University)的 Robert Gentleman(1959-)和 Ross Ihaka(1954-) 开发,故软件取两人名字的首字母命名为 R 。该项目始于 1993年,2000年发布了首个官方版本 R 1.0.0 ,后期维护由 R 核心团队(R Core Team)负责。截止 2022-06-23,,已发布到 4.2.1版本。凭借其开源、免费、自由等开放式理念,R 迅速获得流行,目前已成为学术研究和商业应用领域最为常用的数据分析软件之一。随着大数据行业的发展,R语言变得越来越流行,R语言发挥了越来越重要的作用。

为什么要学习 R语言

R是个多面手,你做科研过程的数据计算、统计检验、统计建模、数据挖掘、数据可视化它全包了。学了它,不用向以前必须学习统计软件STATA或者SPSS,同时还要学Graphpad、origin等绘图工具。同时R的脚本会记录你的数据处理工作的整个过程,过3年,你的学弟依旧可以拿着你的原始数据,重现你l论文的数据统计与可视化结果。

R能干啥,可能从下面的 R task view看得更清楚

image-20220824225001163

image-20220824225135768

02 R语言的优缺点

R语言的优点

  • 开源、免费,具有完整的统计学功能,有大量的扩展包
    • 有效的数据处理和保存机制。
    • 拥有一整套数组和矩阵的操作运算符。
    • 一系列连贯而又完整的数据分析中间工具。
    • 图形统计可以对数据直接进行分析和显示,可用于多种图形设备。
    • 一种相当完善、简洁和高效的程序设计语言。
    • R语言是彻底面向对象的统计编程语言。
    • R语言和其它编程语言、数据库之间有很好的接口。
    • R语言是自由软件,可以放心大胆地使用,但其功能却不比任何其它同类软件差。
    • R语言具有丰富的网上资源

R语言的缺点

  • 开源、免费,具有完整的统计学功能,有大量的扩展包
    • 学习成本大;
    • 不擅长处理非结构数据;
    • 计算消耗资源较多;
    • R的扩展包太多了,比较混乱,不容易找到适合的扩展包;
    • 不擅长多线程处理。

R语言与 Excel对比

  • R语言开源免费,Excel收费;
  • R语言支持 Linux版本,Excel只支持 windows,macos,ios,Android;
  • 能够计算大数据,Excel默认只能处理 100万行数据;
  • R语言有更好扩展能力,有很多现成的包;
  • R语言有更好的绘图能力,例如可以很方便绘制热图,基因组圈图等复杂图形;
  • R语言的 Bioconductor项目可以处理生物数据,例如基因表达数据,单细胞测序等;
  • R语言学习成本较大,不如 Excel简单。

是时候放弃excel了

R语言与 Python对比

  • R语言具有更强大的统计学功能;
  • R语言的 Bioconductor项目可以处理生物数据,例如基因表达数据,单细胞测序等;
  • R语言的绘图能力更强,尤其是 ggplot2包;
  • python兼容性不好;
  • python具有更强大的文本处理能力;
  • python资源管理更好,R不擅长多线程计算,更消耗资源

我建议:目前的科研状态,一定要学习 R 或 Python,至少学一种,实际上应该都会。如果你对==生物统计学、生物信息学==更感兴趣,我建议你先学R。如果你对机器学习最感兴趣,特别是像深度学习这样的现代方法,那么应该首先选择 Python。当然如果你有python基础,直接使用python就可,不学R。如果没有,先学R。这两种语言很多的地方是相通的。学会了一个再学另外一个相对简单。真正的数据分析科学家与工程师,都是左手R 右手Python的。看下面的链接

R vs Python:R是现在最好的数据科学语言吗?

本课程为啥不在使用SPSS?

  • 因为不开源,使用的时候写论文写统计方法,有人要问你使用的SPSS的序列号,不好回答。
  • 另外在科学图形绘制上,SPSS没有任何优势
  • 最新的统计方法都是在目前都是R上出现,最新的SPSS需要调用R插件进行新的统计方法的使用。

03 结构化数据与非结构化数据

  • 结构化数据:信息能够用数据或统一的结构加以表示,我们称之为结构化数据,如数字、符号;
  • 非结构化数据:信息无法用数字或统一的结构表示,如文本、图像、声音、网页等,我们称之为非结构化数据。

R语言更擅长处理结构化数据,因此,在使用 R之前,尽量确保数据是严格的表格结构。也就是二位的表格,分为行和列。在 R语言中,行称为“观测”,列称为“变量”。

04 数据分析的六个过程

  1. 数据采集
  2. 数据存储
  3. 统计分析
  4. 数据挖掘
  5. 数据可视化
  6. 生成报告

2_R与 Rstudio软件安装

01 R软件安装

R语言支持 windows,macos,linux等多个系统平台,提供图形化界面,下载和安装都不难,可以直接从官网进行下载,当前最新版本为 4.2.1。R语言平均每半年更新一个比较大的版本,中间也会有一些小版本,建议安装最新的版本。可以从 R的官网下载软件安装包,软件最好安装到系统默认目录下。

R官网: https://www.r-project.org/ ,如下图

image-20220825104635253

windows系统:
下载地址:https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/base/R-4.2.1-win.exe

Mac系统 :
下载地址:https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/macosx/base/R-4.2.1.pkg

02Rstudio软件安装

当前 R语言的集成开发环境很多,但其中 Rstudio可以说是最优秀的,Rstudio是 R软件的一个集成开发环境,为 R的使用提供了极大的便利,Rstudio本身并不集成 R软件,需要首先安装 R软件,Rstudio会调用 R软件。Rstudio支持 windows,macos,Linux等多个系统平台,并且提供免费的桌面版与服务器版本可供选择,服务器版本可以搭建多用户使用场景,直接通过网络浏览器访问 R。此外,Rstudio公司还开发了大量 R语言的扩展包,操作简单,功能强大,极大扩展了 R语言的功能。到10月份Rstudio将更名为Posit,将R与python的链接更方便

官方网站:https://www.rstudio.com/,如下图

image-20220825105959538

下载地址:

windows:
https://download1.rstudio.org/desktop/windows/RStudio-2022.07.1-554.exe

macos:
https://download1.rstudio.org/desktop/macos/RStudio-2022.07.1-554.dmg

rstudio设置

为了更好地使用 Rstuido软件,需要对软件进行一些设置,主要包括主题背景,字体大小,
字体编码,默认软件源等。

image-20220825110612716

03 解决windows下 Rstudio无法识别中文问题

方法一:创建一个新账户
创建一个新的英文账户,或者修改本地账户为使用 windows账户登录。

方法二:修改缓存目录
Rstudio遇到中文报错,主要原因在于,Rstudio需要一个临时缓存文件,windows系统下这个默认目录在”C:\User\XXXX\AppData\Local\Temp”。其中 XXXX为用户名,如果是中文,则无法识别,所以,我们需要修改 TEMP和 TMP这个目录环境变量。右键此电脑,选择属性,然后点到高级系统设置,选择环境变量

image-20220825111659009

修改 TEMP和 TMP变量,其中不能有中文,如下

image-20220825112113735

3_开始使用 R

01设置工作目录

使用 R语言的第一个过程就是设置工作目录,使用 R语言经常需要读写文件,设置好工作目录可以方便读写文件。需要对不同系统目录的写法有所了解,windows目录结构与 Linux(Mac)目录结构主要差别在两点:第一,Linux(Mac)系统不存在盘符,所有数据路径都是有“/”开始;第二:Linux系统采用正斜线分割目录,windows采用反斜线分割目录。在 R中可以使用正斜线。另外,Rstudio目前对中文支持并不好,目录中最好不要有中文,否则会报错。

1
2
3
windows系统目录结构:C:\Users\xxx\Desktop\
macos系统目录结构:/Users/xxx/Desktop/
Linux系统目录结构:/home/xxx/

设置工作目录

方法一:Crtl+Shift+H快捷键 (windows) ; cmd+Shift+H快捷键(Mac) 或者通过菜单,如下

image-20220825113225359

方法二:使用鼠标,通过文件管理窗口设置工作目录

image-20220825114553695

image-20220825114628797

方法三:使用 R函数

1
2
3
4
#查看当前目录
getwd()
#设置想要的工作目录,这里以账户为xxx的桌面为例子,设置为工作目录,注意使用的路径符号为正斜杆/.
setwd("c:/Users/xxx/Desktop/")

02创建 Project

创建 Project可以将所有数据放到一个目录下,R的 Project会保存分析过程中全部内容,方便管理以及分享。

image-20220825115043896

03 R软件的运行

R软件有交互式与脚本式运行两种方式,交互式便于进行数据探索,脚本式便于批量化和自动化处理。

脚本方式运行中,创建一个扩展名为.R的文件,例如test.R可以在Rstudio脚本窗口中一条条 运行,也可以一起全部运行。

[在Linux命令行中,可以使用Rscript命令运行脚本文件,或者使用R -f 来运行,当计算量较大,需要较长的运算时,或者可重复性计算等条件下,需要使用无监督的脚本式运行。在使用脚本运行R时,需要保证脚本能够正确执行,通常先使用小数据进行测试,并且运行过程中将结果及时保存为文件,例如绘制出的图片,而不是交互式显示。R脚本也可以提供选项参数,将R脚本转换为一个可执行程序。]

04 函数

R语言函数

学习 R语言的本质就是学习 R函数的过程,因为在 R中,每一步操作都需要使用 R的函数。在 R语言中,每个 R函数都需要后面介绍小括号,这是为了与环境中的变量区分开。比如定义一个名为 data的变量,R中还自带一个 data函数,这样就无法区分,因此,R函数需要接上小括号,例如 data()函数。R中需要使用选项参数,用来调节 R函数的功能。选项和参数之间用等号连接。不同选项后面接不同的参数,例如有的选项接数值参数,有的接字符串,有的接逻辑值。例如下面的案例。

1
2
#一条典型的R函数 
plot(x = women$height,y = women$weight,col="red",pch=c(16,17,18),ann = F)
  • 其中 plot()为绘图函数,后面必须是小括号;
  • x选项为输入 x轴的值,接一个向量;
  • y选项为输入 y轴的值,接一个向量;
  • col选项为颜色值,接一个字符串;
  • pch选项为点的性状,接一个数值向量;
  • ann选项为是否显示x轴与y轴的标签,接一个逻辑值;
游戏:测试计算机算力

随机生成十万,百万,千万,亿,十亿个随机数,然后利用 R进行求和计算。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#十万随机数 
x <- runif(100000,min = 1,max = 100)
length(x)
sum(x)
system.time(x <- runif(1000000,min = 1,max = 100))
#用户时间: 是处理用户应用程序代码(R 代码)所花费的 CPU 时间。
#系统时间: 用户应用程序访问系统资源,则该处理时间将报告为系统时间。
#流逝时间: 它测量代码块运行时经过的时钟时间,用户必须等待 R 完成运行代码的整体时间。

#百万随机数
x_1 <- runif(1000000,min = 1,max = 100)
sum(x_1)
system.time(x_1 <- runif(1000000,min = 1,max = 100))

#千万随机数
x_2 <- runif(10000000,min = 1,max = 100)
sum(x_2)
system.time(x_2 <- runif(10000000,min = 1,max = 100))

#亿随机数
x_3 <- runif(100000000,min = 1,max = 100)
sum(x_3)
system.time(x_3 <- runif(100000000,min = 1,max = 100))

#小心点,别轻易尝试,会很慢,10亿
system.time(x_4 <- runif(1000000000,min = 1,max = 100))
sum(x_4)
#100亿,内存不够报错Error: cannot allocate vector of size 74.5 Gb
system.time(x <- runif(10000000000,min = 1,max = 100))

#展示环境变量
ls()
#清除环境变量
rm(list= "x_1")
#清除所有变量,但是注意并没有清除内存
rm(list=ls())

#清除内存
gc()

# 揭示下结果
# used (Mb) gc trigger (Mb) max used (Mb)
# Ncells 994704 53.2 2064062 110.3 1471043 78.6
# Vcells 2690772 20.6 1028036240 7843.3 1113693366 8496.9
#######################################################
#used是当前使用情况,gc trigger是会触发垃圾回收的值,maxused是上次gc()操作或者是此次启动R后使用最大值.(Mb)是Ncells和Vcells的大小转换为Mb单位时的值.
#Ncells即cons cells,32位R中占28B,64位R中占56B,我是用的64位的R,所以
994704*56/(1024^2)
#53.12292,约等于53.2

#Vcells即vector cells,占8B,所以
2690772*8/(1024^2)
#20.52896,约等于20.6
R语言括号
  • 括号按照性状可以分为小括号,中括号以及大括号,大括号也叫作花括号。在 R语言中,各种括号实现不同的功能。其中小括号具有重要作用。是函数式编程语言,所有的功能都需要通过函数完成。在 R中,为了区分字符,变量,数据集,函数以及扩展包,所以函数后面必须接小括号。例如 sum三个字符,如果要表示一个字符,就使用双引号,如果表示求和函数,作为 sum(),如果作为一个变量,数据集,直接写 sum即可。如果代表一个 R包,则直接 library加载即可。
  • 中括号在 R中也有重要作用,数据索引时要用到。
  • 花括号与其他编程语言类似,都表示一个代码块,用在自定义 R函数中。
R语言提示警告以及错误

正确区分软件错误,R语言在运行过程中会输出很多信息,这些信息主要包括三类,分别是:

  • 运行状态信息,正常信息,不用担心;
  • 警告信息 warnings,不影响软件运行,需要注意;
  • 错误信息 Error,软件终止运行,需要检查错误;

05常用快捷键

下面列出 R或者 Rstudio中一些常用快捷键:

  • alt+-

    R语言的赋值使用“<-”,每次需要敲两个字符,非常麻烦,在 Rstudio中可以使用“alt+-”直接生成,非常方便,如果使用右侧 alt键,更加容易。

  • ctrl+shfit+h

    使用 R第一件事情就是设置工作目录,如果不习惯敲 setwd()函数或者不熟悉系统目录结构,可以使用该快捷键直接用鼠标选择。

  • esc

    中断程序,非常有用。

  • tab

tab自动补齐,可以补齐函数,选项参数等;

  • ctrl+L

    相当于清屏,与 Linux 一致。

  • 上下箭头

    历史记录;

  • ctrl+sfhit+F10

    重新启动 R,有些情况下需要重新启动 R,这个时候无需关闭整个 Rstudio,使用该快捷键即可重新启动 R。

  • ctrl+r

    ctrl+r快捷键可以快速调出使用过的历史记录,如果有些命令太长,使用这个快捷键非常方便。

  • ctrl+向上

    也是快速调出历史记录,与 ctrl+r类似。

  • ctrl++,ctrl+-

    调整字体大小。

  • ctrl+shift+m

    如果使用 tidyverse系列包,经常需要使用管道符“%>%”,使用该快捷键可以直接输出管道符。

  • alt+shift+k

    可以快速调出所有快捷键列表。

06自定义R环境

R语言可以通过自定义修改默认行为,例如修改默认提示符,修改默认镜像地址,修改默认加载包目录,默认有效数字位数,启动后自动加载包等。
R每次启动时,会从默认目录下(windows系统一般为我的文档)读取.Rpofile文件,对 R的自定义,就是修改该配置文件。这个默认配置文件类似于 Linux系统家目录下的.bashrc文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#通过 file.edit()函数创建文件 
file.edit("~/.Rprofile")
########################################################
## 在Rprofile完成下面工作 ##
########################################################
#修改提示符
#options(prompt="$")
#options(prompt=">")
#修改次级提示符
#options (continue="+")
#options(continue = "% ")
#修改默认包加载目录
#.libPaths("C:/Users/Administrator/AppData/Local/R/win-library/4.2")
.libPaths("G:/R/R-4.2.1/library/")
#修改默认 R镜像
local({r <-getOption("repos")
r["CRAN"]<-"https://mirrors.tuna.tsinghua.edu.cn/CRAN/"
options(repos=r)})
#修改 bioconductor镜像
options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")

#启动加载函数
.First <- function() {
# library(BioCManager,quietly = TRUE)
cat ("\nWelcome at",date(),"\n")
}

.Last <- function() {
cat ("\nGoodbye at ",date(),"\n")
}

4_语言包管理

R语言的一大优势就是有各种各样的扩展包,所谓 R扩展包,就是将数据处理的算法通过 R函数来实现,在加上测试数据,说明文档整合在一起,就是 R的扩展包。在使用 R的过程中,肯定需要使用到 R的包,因此,需要掌握 R包的管理,包括包的查找,安装,加载,升级,取消加载,删除,查看帮助文档等等操作。

如何选择合适的 R包

  • 1.通过 R TaskView查找需要的软件包,根据大类查找;在Rstudio的help中的Home打开R resource选择CRAN Task Views,网站如下:https://cran.rstudio.com/web/views/

image-20220825230033920

##有关生物信息的的task views取消了 需要看

https://cran.r-hub.io/web/views/Genetics.html

###有关统计学习与教学的包

https://cran.rstudio.com/web/views/TeachingStatistics.html

  • 2阅读文献,参考里面使用的 R包。
  • 3 bioconductor项目

Bioconductor 是建立在 R语言环境上的,用于生物信息数据的注释、处理、分析及可视化工具包的总集,由一系列 R扩展包组成。很多生物数据都是使用 bioconductor包来分析的。

Bioconductor官网:http://www.bioconductor.org/

R包的管理

由于不用 R包之间存在相互依赖的关系,因此,强烈推荐采用在线安装的方式,这样软件可以自动解决依赖关系问题,节约大量时间。R默认的服务器在国外,为了加快下载速度,需要将 R镜像站点修改为国内镜像站点。

R包默认安装到以下目录

R包的默认安装路径与登录账号是否为管理员有关,如果登录的为管理员账号,则默认安装到 R安装目录下。如果登录的为普通账户,则在每个账号下的**==我的文档==**中。

1
2
3
4
5
6
7
8
9
#windows系统: 
G:\R\R-4.2.1\library
C:\Users\xxxx\Documents\R\win-library\4.2
#macos系统:
/Library/Frameworks/R.framework/Versions/4.0/Resources/library

#查看R包安装目录
.libPaths()
.Library

设置镜像

通过网络安装 R包,网络速度影响比较大,因此要选择合适的镜像,一般选择距离较近的镜像。

1
2
3
chooseCRANmirror()   
chooseBioCmirror()
setRepositories()

常用 R镜像站点

R包管理

可以将每个 R包开成一个手机 App,R包的管理类似于手机应用的管理,包括搜索,下载,安装,打开,卸载等操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#安装 vcd包 
install.packages("vcd")
#一次安装多个包
install.packages(c("ggplot2","pheatmap"))
#查看已安装的包
installed.packages()

#加载 R包
library(vcd)
require(vcd)

#升级软件包
update.packages()

#删除扩展包,从磁盘中移除
remove.packages("vcd")

#取消加载,从内存中移除
detach("package:vcd")

#其余函数
#列出 R包中的函数
ls(package:base)
#加载包中的数据集
data(package="vcd")

#查看当前环境哪些包加载
search()
#列出当前包
(.packages())
#列出有效包
(.packages(all.available=TRUE))
#列出加载包的路径
find.package()
path.package()

安装 github网站的 R包

1
2
3
4
5
6
7
# 安装 devtools 
install.packages("devtools")
library(devtools)
#github在线安装
install_github("github_user_name/package_name")
#下载到本地安装
devtools::install_local("path_to_package_file.zip")

安装 Bioconductor网站的 R包

1
2
install.packages("BiocManager")
BiocManager::install("DESeq2")

检查更新R包,不建议频繁更新,半年一次就好

1
2
3
4
5
6
7
8
#安装rvcheck
BiocManager::install("rvcheck")
#加载rvcheck
library(rvcheck)
#检查R版本是否要更新
check_r()
#更新全部R以及包
rvcheck::update_all()

查看帮助文档

学习 R语言需要经常查看帮助文档,包括 R包的帮助文档,查看帮助文档可以快速了解一些函数的用法。不过由于开发者不同,因此帮助文档的水平也参差不齐。查看帮助文档,可以使用 help()函数,一般的 R函数都会自带案例代码,可以直接使用 example()函数运行这些代码。此外,一些 R包还提供一种 vignette格式的文档。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 #打开帮助页 
help()
#查看函数帮助
?ggplot2
#查看扩展包里函数
??heatmap
#查看包帮助文档
help(package="ggplot2" )
#运行函数案例代码
example("heatmap")
#查看 vignettes格式文档
browseVignettes()
#R网站搜索
RSiteSearch("heatmap")

R包迁移

直接拷贝 R包

R包一般都是一个完整文件,只需要将 R包整个文件夹迁移走,一般就可以运行。对 R包进行迁移时,尽量保证 R版本一致。直接将整个 R包目录拷贝到新的目录下即可。首先找到 R包的安装目录,然后将整个目录打包,拷贝到另外一个目录解压缩。

1
2
#找到R包的安装目录
.libPaths()

该方法只是一种方案,绝大部分包是可以的。但是注意不能将 windows系统安装的迁移到Linux下。该方法也不是万无一失,比如 R包需要系统一些配置,缺少了还是无法运行。

获取名字重新安装

获取要迁移的 R包名字列表,在一台设备上使用循环逐个安装。但是该方法无法处理 github上安装的包。

1
2
3
4
5
6
7
8
9
10
#保存 A设备上的 R包名字列表; 
oldip <- installed.packages()[,1]
save(oldip,file = "installedPacckages.Rdata")

#在 B设备上进行安装;
load("installedPacckages.Rdata")
newip <- installed.packages()[,1]
for (i in setdiff(oldip,newip)) {
BiocManager::install(i)
}

5_文件操作

一般情况下我们需要分析的数据都是存储在文件中,那么利用 R分析数据的第一步就是将输入读入 R语言。如果分析的数据是记录着纸质载体上,还需要将数据手动录入,然后保存为一个文件。在 R中分析文件一般是文件文件,通常是以逗号分隔的 csv文件,如果数据本身包含逗号,就需要使用制表符 tab分隔的文件。有些情况下还有需要处理其他统计软件生成的文件,例如 Excel生成的 xlsx格式文件等。R可以很方便的读写多种格式文件。

文件类型

1、csv
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。

1
2
3
name,age 
张三,20
李四,30

2、tsv
TSV:tab separated values;即“制表符分隔值”,如:

1
2
3
name    age 
张三 20
李四 30

Rstudio导入文件

通过 Rstudio导入文件 , 如下:

image-20220827003446667

  • data :文件路径
  • header : 第一行是否作为表头
  • sep :分隔符
  • row.names: 哪一列作为行名
  • stringsAsFactors: 字符串是否作为因子
  • na.strings :空值用什么表示

函数读入文件

在 Rstudio中,可以通过点击鼠标读入文件,在读入文件之前,需要对文件格式和内容有所了解。例如文件是否是一个标准的列表形式,也就是是否为结构化数据。文件存储格式,是二进制还是纯文本,如果是纯文本,文件扩展名是什么?用什么分隔符分割?文件有多少行,多少列? 第一行是否为列名,第一列是否为行名?清楚了这些之后就可以读入文件了。

R提供了大量读入文件的函数,这些函数通常是以 read.*开头,后面接文件扩展,例如 read.csv,read.xlsx,read.spss等。其中最常用的为 read.table。read.table包括以下重要选项参数。

1、data:后面接文件路径,注意文件路径一定要加引号,注意 windows系统文件路径的写法。

2、header:只接逻辑值 TRUE或者 FALSE,代表第一行是否作为表头,默认为 FALSE。如果不设置,R会默认添加 V1,V2等作为列名。

3、sep:分隔符,读入文件最重要的一个选项,如果设置错误,文件格式很乱,通常就是逗号“,”,制表符“\t”或者冒号“:”等。

4、row.names:后面接数字,指定哪一列作为行名,默认是 0,通常可以设置为 1。

5、stringsAsFactors:后面接逻辑值,设置为T,R语言默认会将文件中的字符串自动转换为因子。

6、na.strings:后面接字符串,指定文件中空值的表示方法。

1
2
3
4
5
6
7
8
9
#读入一个文件,存入 x变量   
x <- read.table("./1998cross-sectional+data+set_released+version.csv")
#读入文件,指定分隔符
x <- read.table(file = "./1998cross-sectional+data+set_released+version.csv", header = T,sep = ",")
#读入文件,指定分隔符和列名
x <- read.csv(file = "./1998cross-sectional+data+set_released+version.csv",header = T,row.names = 1)
#读入文件,指定分隔符、表头与行名以及字符串不作为因子
x <- read.csv(file = "differential_expression.csv",header = T,sep = ",",row.names =
1,na.strings = "NA",stringsAsFactors = F)

无论使用哪个函数读取文件,R中读入的数据都存储为数据框这种数据类型。通常将文件保存为一个变量。读入文件之后,需要验证文件是否读入成功,通常使用 head函数截取文件头部显示出来,判断格式是否正确,在 Rstudio中也可以使用 View()函数将全部内容显示出来。如果格式不正确就需要修改命令重新读取文件;如果没有问题,就可以对数据进行后续的分析了。

1
2
3
4
5
6
7
8
9
10
11
12
13
#查看数据结构 
class(x)
#查看文件头部
head(x)
#查看文件尾部
tail(dta)
#查看行名,列名
rownames(x)
colnames(x)
#View窗口中查看数据
View(x)
#查看数据属性信息
str(x)

函数写入文件

数据处理结束之后,需要将存储在变量中的结果保存到文件中,R提供了大量写入文件的函数,这些函数通常与 read系列都是对应的,用法也类似使用起来也并不难。

1
2
#写入文件 
write.csv(x = x,file = "matrix.csv",sep = ",",append = F)
  • x:要写入文件中的数据集名字。
  • File:文件路径和文件名,注意加引号,需要自己给文件命名,注意扩展名最好与分隔符
  • 匹配。
  • sep:分隔符,如果是 csv文件,sep设置为逗号,制表符分割,则设置为“\t”
  • append:接逻辑值,是否追加写入

读写 excel文件

Excel是全球最流行的电子表格程序,即使你可以使用 R语言处理所有的数据分析工作,但是总有一天你不得不处理别人传给你 Excel生成的电子表格需要你帮忙处理。还好 R可以很方便的处理 excel的电子表格。通常处理 Excel表格有两种方法。

方法一:将excel文件另存为 csv或者 tsv

image-20220827094314568

方法二:readr,xlsx,openxlsx等包
R中有大量可以读写 Excel电子表格的包,使用方法与 read.table()函数类似,只需注意Excel的电子表格分为工作簿与工作表,一个工作簿中包含多个工作表(sheet),因此需要指定读取工作簿中那个工作表,可以指定工作表的名字,也可以使用顺序号

1
2
3
4
5
6
7
8
9
#安装 openxlsx包 
install.packages("openxlsx")
#加载 openxlsx包
library(openxlsx)
#读入 excel文件,指定 sheet的序号或者名称
x <- read.xlsx(xlsxFile= "./lettuce.xlsx",sheet = "treatment", rows = 1:60,cols = 1:5)
x <- read.xlsx(xlsxFile= "./lettuce.xlsx",sheet = 2, rows = 1:60,cols = 1:5)
#写入 Excel文件,设置 sheet名
write.xlsx(x = x,sheetName = "dta",file = "dta.xlsx",append = F)

其他 R数据格式

除了常规各种文本表格之外,R还提供了两种文件格式,分别是 RDS与 Rdata格式。RDS可以用来存储单个数据集,Rdata可以存储多个 R数据集。R内置格式的好处是对 R软件支持更好,便于分享,且内置压缩算法,同样的数据内容,文件更小,便于传输。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#数据集iris 数据框"data.frame"结构
?iris
head(iris)
class(iris)
data(iris)

#数据集iris 数组"array"结构
?iris3
head(iris3)
class(iris3)
data(iris3)

#当前工作目录
getwd()
#文件夹下所有内容
dir()
#write RDS file
saveRDS(iris,file="iris.RDS")
#read RDS file
rdsdata <- readRDS("iris.RDS")

#Write RData file
save(iris,iris3,file = "iris.Rdata")
#加载变量
load("iris.Rdata")
#所有变量存储在.Rdata
save.image()

补充R语言下的文件夹与文件操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

#查看当前目录下文件
dir()
#列出当前文件夹下所有文件夹,包括隐藏文件夹
list.dirs()
#列出当前文件夹下所有文件夹,所有文件
list.files(path = ".")
#显示文件夹下面所有的文件,包括以.开头的文件,可以设置all.files = TRUE
list.files(path = ".",all.files = TRUE)
#只关注csv文件可以使用模式匹配,也就是正则表达式
list.files(path = ".",pattern = "csv$")

#创建文件夹
dir.create("ab")
#删除文件夹
unlink("ab")

#创建文件
file.create("file_name.txt")
#编辑文件
file.edit("file_name.txt")
#重命名文件
file.rename("file_name.txt","file_name_2.txt")
#复制文件
file.copy("file_name_2.txt","file_name_3.txt")
#删除文件
file.remove(c("file_name_2.txt","file_name_3.txt"))

6_数据结构

在使用R语言过程中,每一步中都需要关注R语言的数据结构。数据结构是R语言中最重要的内容,也是最难的一部分,学会了这部分之后,R语言就不难了。很多时候,函数无法运行,都是因为数据结构的问题。在学习R语言数据结构之前需要首先了解下数据的类型。

1数据类型

数据类型主要表示数据代表哪种内容,是字符串还是数值,逻辑值,或者时间日期等。数值可以用于计算,字符串不能用来计算,逻辑值用来判断等。其实这个在excel中我们也见过,Excel中数据类型如下图所示:

image-20220827215303054

R的数值类型主要包括字符、数值、复数、逻辑4类,如下。我们主要用字符、数值和逻辑三类。

R的数值类型

image-20220827215449356

2常用数据结构

R的数据结构主要包括以下几种:向量、,每一种都有固定的用处,学习R语言需要非常熟悉每一种数据结构的特点。

image-20220827221123112

3内置数据集

R 语言的一个好处是内置了大量数据集,一般 R扩展包也包含数据集,这样无需自己准备输入文件,可以很方便的重复案例的内容。启动 R之后,默认已经加载了 datasets包,里面包含了大量数据集,使用 data()函数可以显示所有数据集。直接敲数据集的名字就能够打印出数据集的内容,内置数据集与自己通过文件将数据读入 R中,存储为变量效果上是一样的。

1
2
3
4
5
# 显示所有内置数据集 ,来自‘datasets’这个包  
data()
#加载扩展包数据集
data(package = "MASS")
data(package = "ggplot2")

4 向量

向量:vector,是 R中最重要的一个概念,它是构成其他数据结构的基础。向量其实是用于存储数值型、字符型或逻辑型数据的一维数组。R中的向量与解析几何或者物理学中有数值和方向的量不同,R中的向量是一个集合,即可以是数值的集合也可以是字符串或者逻辑值的集合。其余数据结构都由向量构成。

4.1 创建向量

用函数 c来创建向量。c代表 concatenate连接,也可以理解为收集 collect,或者合并 combine。新手经常犯的错误就是忘了使用 c()函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#R内置向量 
rivers
euro
plot(rivers)
hist(rivers)
names(euro)
length(euro)
a <- c(1,2,3)
#字符型向量
b <- c("red","green","blue")
#生成连续型向量
c <- seq(1,100,2)
d <- rep(c(1,2),5)

#数据类型、特征
class(a)
length(a)
names(a)

# 向量化操作
a
a*2
paste(b,a,sep = "-")

4.2 向量索引

1
2
3
4
rivers[c(1)] 
euro[1:3]
euro[-(1:3)]
euro["ATS"]

4.3 向量计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
x <- runif(10000000,min = 1,max = 100)   
length(x)
sum(x)
mean(x)
var(x)
sd(x)
median(x)
range(x)
abs(x)
sqrt(x)
a <- 1:5
b <- 10:1
a+1
a*2
a+b

5 矩阵

矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合。向量是一维的,而矩阵是二维的,需要有行和列。矩阵是 R语言中使用较多的一种数据结构,矩阵分为数值矩阵和字符串矩阵,常用的是数据矩阵,基因的表达数据为数值矩阵。矩阵有两大作用,一个是用来计算相关性,另外可以用来绘制热图。

5.1 创建矩阵

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
state.x77   
m <- matrix(1:20,nrow = 4,ncol = 5)
rowSums(state.x77)
apply(state.x77,1,,sum)

colMeans(state.x77)
apply(state.x77,2,mean)
apply(state.x77,2,var)
apply(state.x77,2,max)
?apply
cor(state.x77)

dim(state.x77)
rownames(state.x77)
colnames(state.x77)

5.2 矩阵索引

矩阵属于二位数据,需要给定行列的。

1
2
3
4
5
6
7
state.x77 
state.x77[1,2]
state.x77[1,]
state.x77["Alabama",]
state.x77[,"Population"]
#取奇数列
state.x77[,c(T,F)]

5.3 利用矩阵绘制热图

R非常擅长基于矩阵数据绘制热图,基础包中的 heatmap()可以直接绘制热图,gplots 包 heatmap.2()也可以绘制热图,pheatmap包 pheatmap()函数可以绘制更加优雅的热图,ComplexHeatmap包 可以绘制复杂的热图。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
example("heatmap") 
m <- read.csv("Rdata/heatmap.csv",header = T,row.names = 1)
class(m)
x <- as.matrix(m)
heatmap(x)
heatmap(t(x))
heatmap(x,col=c("green","red"))
yanse <- colorRampPalette(c("red","black","green"))(nrow(x))
heatmap(x,col=yanse)
heatmap(x,col=yanse,RowSideColors = yanse)
heatmap(x,col=yanse,ColSideColors =
colorRampPalette(c("red","black","green"))(ncol(x)))
heatmap(x,col=yanse,Rowv = NA)
heatmap(x,col=yanse,Rowv = NA,Colv = NA)
heatmap(state.x77)
heatmap(state.x77,scale = "col")

利用 pheatmap绘制热图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#install.packages("pheatmap") 
library(pheatmap)
x <- read.csv("Rdata/heatmap.csv",header = T,row.names = 1)
class(x)
pheatmap(x)
annotation_col <-
data.frame(CellType=factor(rep(c("N1","T1","N2","T2"),each=5)))
rownames(annotation_col) <- colnames(x)
pheatmap(x,annotation_col = annotation_col)
pheatmap(x,annotation_col = annotation_col,display_numbers = T)
pheatmap(x,annotation_col = annotation_col,display_numbers = T,number_format =
"%.2f")
pheatmap(x,annotation_col = annotation_col,display_numbers = T,number_format =
"%.1f",number_color = "black")

6 数据框

数据框是一种表格式的数据结构,属于一种二维表,分为行和列。数据框旨在模拟数据集,与其他统计软件例如 SAS或者 SPSS中的数据集的概念一致。数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量。不同的行业对于数据集的行和列叫法不同。在一个数据框中,每一行的元素个数相同,每一列元素个数也相同,每一列的数据类型一致,都为一个向量,每一行内容还是一个数据框。数据框是 R中使用最广泛的一种数据格式。

6.1 创建数据框

1
2
3
4
5
6
7
8
9
10
11
mtcars   
iris
adata <- data.frame(state.name,state.division,state.area)
View(adata)
str(adata)
head(adata)
tail(adata)

dim(adata)
rownames(adata)
colnames(adata)

6.2 数据框索引

  • 中括号
  • 名称
  • dollar符
  • 逻辑值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
euro[1:3]   
euro[-(1:3)]
euro["ATS"]
mtcars[1:4,1:5]
mtcars[c(2,3,4,5)]
mtcars$mpg
mtcars["Mazda RX4",]

x <- runif(100,min = 1,max = 100)
x[x>50]
x [x>20 & x <40]

####逻辑判定符号:&, |, ==, !=


6.3利用 R实现 vlookup 案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#Excel函数:=VLOOKUP($A2,Sheet1!$A$1:$I$201,COLUMN(Sheet1!A2),FALSE) 

#读入 200个基因的列表 bigtable
genes200 <- read.csv("Rdata/200genes.csv",header = T,stringsAsFactors = F)

#读入 121个基因的 list small list
genes121 <- read.csv("Rdata/121genes.csv",header = T,stringsAsFactors = F)
head(genes200)
head(genes121)
genes200["CLU",]

#修改 gene table行名
rownames(genes200) <- genes200$gene
genes200["CLU",]
genes200[c("CLU","DCN"),]
#去除重复 gene ID
gene93 <- unique(genes121$gene)
#利用数据框的访问功能,一次实现 Excel Vlookup功能
dta <- genes200[gene93,]
dta
#数据中包含没有检索到的 gene ID,返回值为 NA,利用 na.omit删除包含 NA的行
dta <- na.omit(dta)
dim(dta)
rownames(dta) <- 1:nrow(dta)
write.csv(dta,file = "Rdata/gene86.csv",row.names = F)

7 缺失数据

缺失信息问题在数据科学中非常常见。在大规模数据采集过程中,几乎不可能每次都得到完整的数据,那么该如何处理缺失数据呢?首先我们要清楚为何会出现缺失数据,一种可能是机器断电,设备故障导致某个测量值发生了丢失。或者测量根本没有发生,例如在做调查问卷时,有些问题没有回答,或者有些问题是无效的回答等,这些都算作缺失值。对于缺失信息,R中提供了一些专门的处理方法。
在 R中,NA代表缺失值,NA是不可用,not available的简称,用来存储缺失信息。这里缺失值 NA表示 没有,但注意没有并不一定就是 0,NA是不知道是多少,也能是 0,也可能是任何值,缺失值和值为零是完全不同的。

1
2
3
4
5
6
7
8
9
x <- c(1:10,NA) 
sum(x)
sum(x,na.rm = T)
is.na(x)
#install.packages("VIM")
library(VIM)
help(packages="VIM")
data(sleep,package = "VIM")
na.omit(sleep)

8 列表

列表就是一些对象的有序集合。列表中可以存储若干向量、矩阵、数据框,甚至其他列表的组合。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
state.center
length(state.center)
names(state.center)
state.center$x

alist <- list(euro,state.x77,iris)

###列表与数据框的选取
##有名称时用$
state.center$x
#选取出来的是列表的第一个元素的具体内容,这个是个向量
class(state.center$x)
is.vector(state.center$x)
##也可以按照位置选取,注意[1]与[[1]]的区别
state.center[1]#选取出来的是列表中的第一个元素,还是列表
state.center[[1]]#选取出来的是列表的第一个元素的具体内容,这个是个向量

##无名字只能按照位置选取
alist <- list(euro,state.x77,iris)
names(alist)#null,没有名字
alist[1] #选取出来的是列表中的第一个元素,还是列表
class(alist[1])

alist[[1]] #选取出来的是列表的第一个元素的具体内容,这个是个向量
class(alist[[1]])
is.vector(alist[[1]])

9 因子

所有的数据集合可以分为三类,连续型,名义型和有序型。连续型例如1 2 3 4 5 8 9 10,名义型如sample1 sample2 sample3 ,而有序型 good better best;周一,周二,周三……等。在R中名义型变量和有序性变量称为因子,factor。这些分类变量的可能值称为一个水平level,由这些水平值构成的向量就称为因子。因子主要用于计算频数,可以用来分组。可以通过factor()函数中的labels选项对因子的值进行批量修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
state.division
class(state.division)
str(state.division)
state_division <- state.division
length(state_division)
levels(state_division)
table(state_division)
par(mar=c (10,4.1,4.1,2.1))
barplot(table(state_division),las=3,cex.axis=1)
dev.off()

afactor <- factor(c("blue","red","red","green","red","blue"),levels = c("red",
"green","blue","yellow"))
bfactor <- factor(letters[1:5], labels = c("one","two","three","four","five"))


函数重载&缺省值

函数重载

同名函数有多个不同函数来实现

  • 编译器通过输入值来决定所调用的函数,必须保证至少一个函数参数类型不同,其余不能作为区分标志;
  • 函数重载时,会优先调用类型匹配的函数实现,不存在时会进行类型转换

函数参数的缺省值

函数定义时设置默认值就是缺省值,在实参缺少时,编译会自动设置为default值

  • 有缺省值的函数参数,必须排在没有缺省值参数的后面
    1
    void print(char* name,int score,char* msg="pass")
  • 缺省值可能会导致函数调用二义性,造成冲突。此时编译器会拒绝代码:
    1
    2
    3
    4
    5
    6
    7
    8
    void fun(int a, int b=1) {
    cout << a + b << endl;
    }
    void fun(int a) {
    cout << a << endl;
    }
    //测试代码
    fun(2);//编译器不知道该调用第一个还是第二个函数

auto+deltype

auto

std=c++11编译,由编译器根据上下文自动确定变量的类型:

1
2
3
4
5
6
7
8
9
10
11
12
13
auto x = 1;
// vector的遍历
// vector<string> a{"0", "1", "2", "3", "4", "5", "6", "7", "8"};
auto it = a.begin(); // 返回一个迭代器类型,一般来说我们并不关心迭代器具体的数据类型
while(it != a.end())
{
cout << *it << " ";
it++;
}
return 0;
}
// 运行结果 //
0 1 2 3 4 5 6 7 8
  1. 跟踪返回类型的函数:可以将函数返回类型的声明信息放到函数参数列表的后边进行声明,追踪返回类型在原本函数返回值的位置使用auto:
    1
    auto func(char* ptr,int val) -> int;
  2. 使用注意:
    • 必须可以在编译期确定其类型
    • 变量定义时必须初始化,两种错误如下:
      1
      2
      auto a; //错误
      auto b4 = 10, b5 = 20.0, b6 = 'a';//错误,没有推导为同一类型
    • 函数形参不能被声明为auto
    • auto并不是一个真正的类型,因此不能使用以类型为操作数的操作符
  • 代替冗长复杂、变量使用范围专一的变量声明,尤其是在循环
  • 定义模板函数时,用于声明依赖模板参数的变量类型。比如说函数A的两个特殊参数会传至模板参数B,B中对于形参的计算中所用到的中间参数或者结果等可以使用auto来定义,就使得模板参数可以在函数重载时具有普适性。同时也可以自动追踪返回类型。

decltype

可以对变量或表达式结果的类型进行推导,decltype(var)返回的是var的类型:

1
2
3
4
5
6
7
8
9
struct { char name[17]; } anon_u;
struct {
int d;
decltype(anon_u) id;
} anon_s[100]; // 匿名的struct数组
int main() {
decltype(anon_s) as; // 注意变量as的类型:数组
cin >> as[0].id.name;
...}

auto+deltype

自动追踪返回类型

  • C++11中推导返回类型
    1
    2
    auto func(int x, int y) -> decltype(x+y)
    {return x+y;}
  • C++14中返回类型可以不显式指定
    1
    2
    auto func(int x, int y)
    {return x+y;}

基础知识

内存申请与释放

  • new&delete:指针变量所指内存的动态生成和删除:
    1
    2
    3
    int * ptr = new int(10); // 单个变量
    int * array = new int[10]; // 10元素数组
    delete ptr; // 删除指针变量所指单个内存单元delete[] array; // 删除多个单元组成的内存

零指针

0NULLnullptr

  • 0NULL可以说是等价的,当int和ptr产生函数重载时的冲突时需要使用nullptr,这是一个严格意义上的空指针

基于范围的for循环

在循环头的圆括号中,由冒号”:”分为两部分,第一部分是用于迭代的变量,第二部分则表示将被迭代的范围。常见于容器的元素循环。

1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
int main() {
int arr[3] = {1, 3, 9};
for (int e : arr) // auto e:arr 也可以
cout << e << endl;
return 0;
}

类与对象

基本语法

在头文件中声明类

1
2
3
4
5
6
7
8
9
// matrix.h
#ifndef MATRIX_H
#define MATRIX_H
class Matrix {
int data[6][6];
public:
void fill(char dir);
};
#endif

成员变量与成员函数

通常,类的声明放在头文件中,而类的成员函数实现/定义放在实现文件中

  • 为了便于管理和复用,一般将不同的类分别保存为不同的头文件和实现文件

成员函数的两种定义方式

为了方便解决依赖关系,复杂的成员函数声明和定义一般是分离的,不适用类内定义

  • 类内定义
    1
    2
    3
    4
    5
    6
    class Matrix {
    public:
    void fill(char dir) {
    ...; //在类内定义成员函数
    }
    ...};
  • 类外定义
    1
    2
    3
    4
    5
    // matrix.cpp
    #include "matrix.h"
    void Matrix::fill(char dir) //类外需要类名限定
    {
    ...// 函数实现}

类成员的访问权限:private & public

类的成员(包括数据、函数)可以根据需要分成组,不同组设置不同的访问权限

  • public修饰的成员可以在类外访问
  • private默认权限,不允许在类外访问
    • class中成员的缺省属性为private,因而以下代码中data是默认权限:
      1
      2
      3
      4
      5
      class Matrix{
      int data;
      public:
      void fill(char dir)
      }
  • protected

用户定义类型:类class

  • 对象:用类定义的变量
  • 对象名.成员名or对象指针->成员名使用数据成员/函数,类外使用仅能访问public

this指针

所有成员函数的参数中,隐含着一个指向当前对象的指针变量,这也是成员函数与普通函数的重要区别。可以用作前“对象指针”访问/赋值

内联函数inline

函数调用需要压栈、跳转、退栈、返回,是一个比较慢的过程,大量调用函数会拖慢程序

  • 内联函数可以执行类型检查,进行编译器错误检查
  • 可以调试
    • debug版本没有真正内联,等同于一般函数,因而可以被调试
    • release版本实现内联,增加执行效率
  • 内联函数生成的是和函数等价的表达式

使用注意事项

  • 避免大段代码使用(相当于把所有调用处copy一遍)
  • 避免循环与复杂控制函数:优化问题
  • 避免声明与定义分离:编译时需要得到实现,需要写在同文件
  • 类声明中定义的函数认为是内联函数:构造函数、析构函数
  • 是建议
    • 编译器可以拒绝不值得内联的请求(忽略内联修饰符)
    • 会选择短小却没有内联修饰符的函数自行判断是否转化为内联函数

重点:

  • 多文件编译与链接过程
  • 宏定义&MAKE文件
  • 程序命令行参数
  • GDB调试工具

声明与定义

对于头文件,尽量只申明函数而不实现函数。尽量只声明全局变量而不定义全局变量

  • 声明:告诉编译器关于变量名称、变量类型、变量大小,函数名称、结构名称大小等信息,在此阶段不会给变量分配任何的库存

    • 声明变量:extern int x;;也可以用于函数声明
    • 通常用在全局变量在不同文件内的共享
    • 头文件中只是进行函数声明,并没有实现(定义)函数体,避免在链接时发现多个相同的函数实现(重复定义)而发生错误
  • 定义:变量声明+内存分配

    • 我们常见的int x=1或者int x都是变量定义,后者只是缺少初始化

宏定义

  • #define:一种预编译指令,用于给一个字符串定义一个“标识符”,这个标识符叫做宏名,被定义的字符串叫做替换文本
    • 预编译:宏替换:将宏名用被定义的字符串替换后再进行编译
    • 作用域:宏定义的有效范围称为宏名的作用域,宏名的作用域从宏定义的结束处开始到其所在的源代码文件末尾,不受分程序结构的影响。
      • 可以用预处理指令#undef加上宏名终止宏名的作用域。
  • 宏定义的简单使用:<宏名>(<参数表>) <字符串>
    1
    2
    #define PI 3.14
    #define sqrt(x) ((x)*(x))
    • 常量常用const定义
    • 注意line2在去掉字符串中x的括号时会引起运算错误:如果用sqrt(u+v)会输出u+v*u+v,由此体现宏替换只是简单的替换,并不会作出任何改变;如果有语法错误也只能在编译阶段发现
  • 宏使用时的其他指令
    • 避免头文件重复包含
      • #pragma指令:可以设置面一起状态或者指示编译器进行特定活动:
        • #pragma once:保证头文件只被编译一次。
        • #pragma message(“info”),在编译信息输出窗口中输出相应的信息,例如#pragma message("Hello")
        • #pragma warning,设置编译器处理编译警告信息的方式,例如#pragma warning(disable:4507 34;once : 4385;error:164)等价于#pragma warning(disable:4507 34)(不显示4507和34号警告信息)、#pragma warning(once:4385)(4385号警告信息仅报告一次)、#pragma warning(error:164)(把164号警告信息作为一个错误)。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #ifndef name //=if !def
    #define newName
    #else
    //程序段
    #endif

    // or

    #pragma once //保证物理上的同一个文件不会被编译多次
    • 用于debug输出,控制程序是否输出调试信息
      1
      2
      3
      4
      // #define DEBUG
      #ifdef DEBUG
      count<<"val:<<val<<endl;
      #endif
    • #error:指令使预处理器发出一条错误消息,然后停止执行预处理。
      1
      2
      #error info
      #error MFC requires C++ compilation

编译与连接

过程

  • 预处理:根据预处理指令对代码源文件处理,比如宏替换
  • 编译:检查语法
    • 第一遍执行语法分析与静态类型检查,把源代码解析为语法分析树的结构
    • 第二遍由代码生成器遍历语法分析树,把树的每个节点转换为汇编语言或机器代码,生成目标模块.o.obj文件
  • 汇编:汇编代码转换机器码,可以利用反汇编调试代码
  • 链接:将各目标文件中的各段代码进行地址定位,从而把一组目标模块链接为可执行程序,使操作系统可以执行它;处理目标模块中的函数或变量引用,必要时搜索库文件处理所有的引用。
    • 如果有外部函数声明但是没有函数实现,无法通过链接,但是可以通过编译

编译指令

g++ -c:只编译不链接
g++ -o ex1.out ex1.o:链接程序
g++ ex5_main.cpp func.cpp -o:直接编译

MAKE工具

通过写入MakeFile文件可以实现

程序命令行工具

GDB调试工具

细胞生物学的研究方法

形态观察

  • 相差显微镜:没有染色的活细胞
  • 微分干涉显微镜(DIC):凹凸的立体感
  • 荧光显微镜:
    • 对细胞(膜)上组分(蛋白质核酸核糖)
    • 定性定位研究(存在性&位置)
  • 激光共聚焦显微镜:
    • 更确切更精准更清楚地观察细胞结构
    • 在Z轴(纵向)上进行“光学切片”构建三维体结构
  • 扫描电镜:样品表面形貌

样品操作

  • 分离细胞&细胞组分:差速离心、密度梯度离心
  • 细胞分选:流式细胞仪
  • 分子之间相互作用:酵母双杂交技术、FRET技术
  • 分子的运动或迁移速率:荧光漂白恢复技术
  • 细胞鉴定或分子是否表达:免疫荧光技术、免疫酶标技术
    • 选择抗体要注意种属性
      名词解释:FRET技术、荧光漂白恢复技术
    • FRET技术:抗兔(FITC标记二抗)-> 兔抗大鼠(一抗) -> 大鼠
    • 荧光漂白恢复技术
  • Triton x-100(曲拉通):破膜、打洞
    • 适用于目标分子是跨膜蛋白抗体&抗胞外端抗体不能直接和目标分子结合

细胞质膜

细胞质膜:就是细胞膜,围绕在细胞最外层,由膜脂、蛋白质和糖类组成
细胞内膜:围绕各种细胞器的膜系统,细胞膜和细胞内膜统称为生物膜

细胞质膜的结构模型与基本成分

结构模型

  1. 三明治模型:”蛋白质-脂类-蛋白质”
  2. 单位膜模型”:暗亮暗+静止
  3. 流动镶嵌模型
    • 流动性:膜蛋白、膜质均可侧向流动
    • 膜蛋白分布具有不对称性:有的结合在膜表面,有的嵌入或横跨双分子层
  4. 脂筏模型:在生物膜的脂双层的外侧,鞘磷脂与胆固醇富集而形成有序的微功能区域,如同脂筏一样,上面载着蛋白质
    • 分辨胆固醇与鞘磷脂:明显比磷脂双分子层高

生物膜的组成成分

  • 膜脂:双分子
  • 膜蛋白:去垢剂:Triton X-100

膜脂

三种主要成分

  • 主要包括甘油磷脂、鞘脂、固醇(同时也是脂筏的主要成分)

    • 甘油磷脂:膜脂基本成分,占一半以上
      主要在内质网合成是3-磷酸甘油的一系列衍生物(PC,PS,PE,PI)

      • 甘油磷脂中某些成分如PI在细胞信号转导中起重要作用(磷脂酰肌醇双信使信号通路)
      • 具有一个极性头和两个非极性尾
      • 有饱和脂肪酸&不饱和脂肪酸,不饱和脂肪酸多为顺式
    • 鞘脂:膜脂的基本成分,一半以上

      • 鞘氨醇衍生物,主要在高尔基体合成。
      • 糖脂:两性分子,极性头部直接共价键结合到鞘氨醇上的一个分子或寡糖链,普遍存在于原核和真核细胞的细胞质膜上
        • 糖脂的连接:
        1. 低聚糖连接于神经酰胺,形成神经节苷脂
        2. 人类红细胞膜上与脂连接的低聚糖链决定人的血型
          • ABO血型抗原叫做ABO血型决定子,是一种糖脂,其寡糖部分决定抗原特异性:A血型寡糖链末端是N-乙酰半乳糖胺,B是半乳糖,O是N-乙酰氨基半乳糖胺
    • 固醇:胆固醇及其衍生物的统称,含有四个闭环并且其中有三个六C环一个五C环;亲水头为一个羟基(只有这一部分是亲水基团)。是一种分子刚性很强的两性化合物。

      • 特点:
        • 胆固醇在哺乳动物细胞质膜中含量丰富
        • 多数细胞的绝大部分胆固醇在细胞质膜和相关囊泡上
        • 来源:合成在动物细胞胞质和内质网,但动物体内的胆固醇多数来自于食物
        • 作用:在调节膜的流动性,增加膜的稳定性以及降低溶水性物质的通透性等起重要作用,是脂筏的基本结构
        • 缺乏胆固醇可能会抑制细胞分裂
  • 膜脂的四种热运动方式

    • 基本运动方式:沿膜平面侧向运动
    • 脂分子围绕轴心的自旋运动
    • 脂分子尾部的摆动
    • 双层脂分子之间的反转运动
  • 脂质体:概念+应用

    • 脂质体是根据磷脂分子可在水相中形成稳定的脂双层膜的趋势而制备的一种人工膜
    • 应用:基因递送,细胞力学,原子力显微镜分子的锚定。总体而言就是一种载体作用。
      • 研究膜脂与膜蛋白及其生物学性质
      • 脂质体中裹入DNA可用于基因转移
      • 临床治疗中脂质体作为药物或酶载体

膜蛋白

  • 基本类型

    • 外在(周)膜蛋白:
      • 水溶性蛋白
      • 易分离:靠离子键等与膜内表面蛋白质或脂分子极性头部非共价键结合
    • 内在(整合)膜蛋白:
      • 水不溶性蛋白
      • 跨膜螺旋,与膜紧密结合,常用去垢剂使膜崩解后才可分离
    • 脂质锚定蛋白
      • 通过磷脂或脂肪酸锚定,共价结合
    • Img
  • 内在膜蛋白与膜脂结合方式

  • 外在膜蛋白与膜脂结合方式

  • 去垢剂:一端亲水,另一端疏水的两性小分子,是分离与研究膜蛋白的常用试剂,有离子型(SDS)和非离子型(Triton X-100)

    • 这里会在设计实验中考查!免疫荧光染色中Triton X-100的作用:透化
      • 免疫免疫要有抗原抗体的结合才可称为“免疫”
      • Triton X-100的作用:溶解脂质,增加抗体对细胞膜的通透性,保证抗体可以接触到抗原结合位点。
        • 必须打孔:核蛋白、抗原抗体结合位点位于胞内的跨膜蛋白、胞质内蛋白
        • 不许打孔:抗原抗体结合位点在胞外的跨膜蛋白,胞外端蛋白
    • 注意实验的设计:

细胞质膜的基本特征与功能

细胞质膜的基本特征:流动性与不对称性

膜的流动性

  • 细胞膜的流动:主要由脂质分子本身的性质决定
    • 脂肪酸链越短,不饱和程度越高,膜脂的流动性越大
    • 温度对膜脂运动有明显的影响
    • 胆固醇在动物细胞中对细胞膜流动性起重要的双向调节作用
  • 膜蛋白的流动:荧光抗体免疫标记实验
    • 成斑现象&成帽现象
  • 影响膜流动性的因素:膜本身,遗传因子,环境因子。
    • 胆固醇:胆固醇含量增加会降低膜的流动性
    • 脂肪酸链的饱和度:越不饱和流动性越强
    • 脂肪酸链的链长:越长相变温度越高,膜的流动性降低
    • 卵磷脂:鞘磷脂:比值增高流动性增加,其中鞘磷脂为脂筏的主要成分,黏度高于卵磷脂
    • 膜蛋白和膜脂的结合方式、温度、酸碱度、离子强度等
  • 生理意义
    • 保证其正常生理功能
    • 过低时酶活动与物质运输终止,流动性过高造成膜的溶解
  • 如何证明?
    • 膜蛋白膜脂流动性研究&运动速率检测:荧光漂白恢复技术(FPAR)
    • 研究膜蛋白&膜脂流动性基本实验技术:光脱色恢复技术
    • 根据荧光恢复的速度推算出膜蛋白或膜脂扩散速度

膜的不对称性

ES:膜脂细胞外表面

  • 膜脂的不对称性:糖脂仅存在于质膜的ES面,是完成生理功能的结构基础

    • 是生物膜完成复杂的在时间控件上有序的各种生理功能的保证
    • 应用:检测细胞凋亡:磷脂酰丝氨酸在凋亡早期由脂膜内测翻向外侧
  • 膜蛋白的不对称性

    • 糖蛋白糖残基均分布在质膜的ES面
    • 指每种膜蛋白(糖侧链)分子在细胞膜上都具有明确的方向性
  • 膜蛋白的不对称性:每种膜蛋白分子在质膜上明确的方向性

细胞质膜的基本功能

  • 为细胞生命活动提供相对稳定的内环境
  • 选择性物质运输,包括输入与代谢
  • 产物的排除,其中伴随有能量的传递
  • 提供细胞识别位点,完成细胞内外信息跨膜传递
  • 为酶提供结合位点,酶促反应高校进行
  • 介导细胞与细胞,细胞与胞质的连接
  • 参与形成细胞表面特化结构
  • 膜蛋白异常与疾病有关,可做疾病治疗靶标

膜骨架与细胞表面的特化结构

没啥要考的

回顾:

结构模型:
生物膜的组成

物质的跨膜运输

被动运输小批量,其余大批量,耗能

膜转运蛋白与小分子及离子的跨膜运输

载体蛋白

  • 主动被动均需要
  • 构象改变

被动运输

主动运输

胞吞胞吐

丢一个官网教程

Get Started!

安装&初始化

  1. 超级无敌推荐git下载,不需要任何环境变量一次成功。在你准备好的虚拟环境下:
    1
    git clone https://github.com/django/django.git
  2. 虚拟环境中建立一个django的新项目
    1
    django-admin startproject [你的项目名]
    这时候新项目的目录如下:
    1
    2
    3
    4
    5
    6
    7
    8
    mysite/
    manage.py
    mysite/
    __init__.py
    settings.py
    urls.py
    asgi.py
    wsgi.py
  • setting.py指定Django如何与你的系统交互以及你如何管理项目
  • urls.py告诉Django应创建哪些网页来响应浏览器请求
  • wsgi.py帮助Django提供他创建的文件(web sever gateway interface)
  • db.sqlite3是你的数据库,用于储存Django大部分与项目有关的信息
  1. 创建应用程序
    1
    python manage.py startapp [程序名]
  2. 查看你的项目
    1
    python manage.py runserver
    注意Quit the server with CTRL-BREAK.就是说停止运行就是Ctrl+C

编写你的应用程序

我的项目名是myFirstDjango,程序名是blogs,示例代码见我的Github:myWeb

定义模型

打开blogs下的models.py,我们就在这里创建模型;模型告诉Django如何处理应用程序中存储的数据。在代码层面,模型就是一个类,就像前边讨论的每个类一样,包含属性和方法。

激活模型

要使用模型,必须让Django将应用程序包含到项目中。使用settings.py来知道Django哪些应用安装在项目中,需要将你的应用程序添加到INSTALLED_APPS这个元组中,在项目根目录下终端中执行第一行:

1
2
3
4
python manage.py makemigrations [应用名]
Migrations for 'blogs':
blogs\migrations\0001_initial.py
- Create model Topic

命令makemigrations让Django确定如何修改数据库,使其能够存储与我们定义的新模型相关联的数据,输出可以看出建立了一个新文件,用来在数据库中为模型Topic建立一个表,以下用于Django修改数据库:

1
python manage.py migrate

每当需要修改“学习笔记”管理的数据时,都采取如下三步:

  • 修改models.py
  • 调用makemigrations
  • 迁移项目

Django管理网站

  1. 在项目根目录执行:
    1
    python manage.py createsuperuser
    好像现在密码不能为空了,创建这个之后可以通过管理网站处理模型。Django通过将密码转换为散列值来保存,这样提高了安全性,因为他不存储密码,而且散列值几乎不可能反推密码。
  2. admin.py的配置
    1
    2
    from 项目名.models import Topic #这里报错没关系
    admin.site.register(Topic)
  3. 以管理员访问
    1
    python manage.py runserver
    然后在浏览器的url中直接加一个/admin/就可以啦
  4. 添加主题
    Topic中Add,可以随意添加你希望的学习主题

添加主题

定义模型基本功能的类:Django

第一章 绪论

  • 微生物的定义:微生物是一种存在于自然界的一大群体形微小、结构简单、肉眼直接看不见的微小生物。
  • 微生物的分类
    • 具有细胞结构:
      • 原核微生物:细菌、放线菌
      • 真核微生物:真菌(酵母菌、霉菌、蕈菌)、原生生物(草履虫等)
    • 不具有细胞结构:病毒
  • 微生物是一类个体微、结构单的等生物。
    • 小:um级(光镜下可见)、nm级(电镜下可见)
    • 简:单细胞、简单多细胞、非细胞
    • 低:原核类(细菌、放线菌、支原体、立克次氏体、衣原体、蓝细菌)、真核类(真菌、原生动物、显微藻类)、非细胞类(病毒、亚病毒)
  • 微生物的共同特点
    • 体积小、表面积大(巨大的营养物质吸收面、代谢废物的排泄面)
    • 吸收多、转化快
    • 生长旺、繁殖快
    • 适应强、易变异
    • 分布广、种类多
  • 微生物在生物界的地位
    • 六界系统:原核生物界、原生生物界、真菌界、动物界、植物界、(病毒界)
      • 微生物分布于除了动植物界的其他四界
    • 三域系统:古生菌域、细菌域、真核生物域
      • 微生物分布于三域
  • 微生物学的发展
    • 微生物学的定义:是在分子、细胞或群体水平上研究微生物的形态结构、生长繁殖、生理代谢、遗传变异、生态分布和分类进化等生命活动的基本规律,并将其应用于工业发酵、医学卫生和生物工程等领域的科学。
  • 微生物学的分科:
    • 按研究微生物的基本生命活动规律划分:微生物生态学、微生物分类学、微生物生理学、微生物生物化学、微生物遗传学
    • 按微生物的应用领域划分:工业微生物学、农业微生物学、医学微生物学、药用微生物学、兽医微生物学、食品微生物学
    • 按所研究的微生物的对象划分:细菌学、真菌学、病毒学、原生动物学
    • 按微生物所在的生态环境划分:土壤微生物学、海洋微生物学、宇宙微生物学
    • 按实验技术操作划分:实验微生物学
  • 微生物学的发展:
    • 史前期(朦胧时期)、初创时期(形态学时期)、奠基时期(生理学时期)、发展时期(生化时期)、分子生物学时期(成熟时期)
  • 微生物学研究的重要意义
    • 在环境中的作用:
      • 微生物在生态系统中的地位:分解者,也有部分生产者
      • 利用微生物改善环境:如污水处理
      • 微生物对环境的有害影响:引起动物、人、植物的疾病等
    • 在医药中的作用:各种疾病的疫苗、抗菌素、生物防治等
    • 在食品中的作用:
      • 有利:食品微生物工程,如酿酒、面包、酱油、酸奶等
      • 有害:引起食品酸败(发霉、变质),食品中毒以及其他疾病
    • 在农业和畜牧业的作用:微生物饲料、农用抗菌素、生物农药、生物菌肥、微生物能源等
    • 在科学研究的作用:如对生物工程、微生物基因组学、微生物生命现象等的研究

第二章 原核微生物

  • 原核微生物的定义:指一大类含有无核膜包裹的,存在称作核区的裸露DNA原始单细胞生物
  • 原核细胞与真核细胞的区别:
    • 原核细胞有明显核区,无核膜;真核细胞有核膜
    • 原核细胞无线粒体,能量代谢和许多物质代谢在质膜上进行;真核细胞有线粒体,能量代谢和许多合成代谢在线粒体中进行
    • 原核细胞核糖体分布在细胞质中,真核细胞核糖体分布在内质网膜上
  • 原核生物的三菌、三体:
    • 三菌:细菌、放线菌、蓝细菌
    • 三体:支原体、立克次氏体、衣原体

细菌

  • 定义:细菌是一类细胞细而短、结构简单、细胞壁坚韧、以二等分裂方式繁殖和水生性较强的单细胞原核微生物
  • 生存环境:温暖潮湿、富含有机物的地方,都有大量细菌活动。有特殊的臭味或酸败味,发粘、发滑
  • 应用:
    • 工业上生产各种氨基酸、核苷酸、酶制剂、乙醇、丙酮、丁醇、有机酸、抗生素等
    • 农业上用作杀虫菌剂、细菌肥料的生产和在沼气发酵等方面的应用
    • 医药上如各种菌苗、类霉素、代血浆和许多医用酶类的生产等
    • 环保上的应用等
  • 危害:人、动植物的传染病,食物和工农业产品腐烂变质
  • 细菌细胞形态:球菌、杆菌、螺旋菌、其他形状的细菌
    • 球菌:根据细胞分裂的方向及分裂后的各子细胞的空间排列状态不同,可将球菌分为单球菌、双球菌、链球菌、四联球菌、八叠球菌、葡萄球菌等
    • 杆菌:按形态可分为短杆状、长杆状、棒杆状、梭状杆状、月亮状、竹节状、双歧杆菌、柄杆菌等;按繁殖后的排列方式则有双杆菌、链状、栅状、“八”字状等;按是否产生芽苞可分为芽孢杆菌、无芽孢杆菌
    • 螺旋菌:
      • 弧菌(只有一个弯曲,形似C字或逗号):霍乱弧菌、逗号弧菌
      • 螺旋菌(螺旋数2-6环):幽门螺杆菌、干酪螺菌
      • 螺旋体(螺旋数大于6环):梅毒密螺旋体
    • 影响细菌形态的因素:培养时间、培养温度、培养基成分、浓度、pH值等
  • 细菌的大小:
    • 长度单位:微米($\mu m$)
    • 表示:球菌(直径),杆菌(宽x长)、螺菌(宽、长、螺距)
    • 细胞的大小是细菌分类的特征,细菌细胞大小还与营养等因素有关
  • 细菌的结构:
    • 一般构造:
      • 细胞壁:位于细胞表面,内侧紧贴细胞膜的一层较为坚韧,略具弹性的细胞结构。约占干重的10-25%
        • 革兰氏染色法:初染(结晶紫)、媒染剂(碘液)、脱色(95%乙醇)、复染(蕃红)。菌体呈紫色的为革兰氏阳性菌,菌体呈红色的为革兰氏阴性菌
        • 革兰氏阳性菌的细胞壁:细胞壁不分层;肽聚糖层厚,层次多,交联度高;多数含有磷壁酸;无外膜;无脂多糖(LPS);类脂和脂蛋白含量低(仅抗酸性细菌含类脂);鞭毛结构基体上着生两个环;产毒素以外毒素为主;对机械力的抗性强;细胞壁抗溶菌酶弱;对青霉素和磺胺敏感
        • 革兰氏阴性菌的细胞壁:细胞壁分内外壁层;肽聚糖层薄,一般单层,交联度低;无磷壁酸;有外膜;有脂多糖(LPS);类脂和脂蛋白含量高;鞭毛结构基体上着生四个环;产毒素以内毒素为主;对机械力的抗性弱;细胞壁抗溶菌酶强;对青霉素和磺胺不敏感,对链霉素等敏感;细胞壁组成和结构比阳性菌更复杂
        • 磷壁酸功能:
          • 带负电荷,可与环境中的Mg+等阳离子结合,提高这些离子的浓度,以保证细胞膜上一些合成酶维持高活性的需要
          • 保证革兰氏阳性致病菌与其宿主间的粘连
          • 赋予革兰氏阳性细菌以特异的表面抗原
          • 提供某些噬菌体以特异的吸附受体
          • 贮藏磷元素
          • 调节细胞内自溶素的活力以防止细胞死亡
        • 脂多糖(LPS)功能:
          • 作为重要的抗原因子决定了阴性菌抗原的多样性,有助于躲避宿主免疫系统的攻击
          • 是内毒素的物质基础
          • 起细菌自我保护作用,可以阻止溶菌酶、抗生素和染料等侵入菌体,也可以阻止周质空间中的酶外漏
          • 许多噬菌体在细胞表面的吸附受体
        • 细胞壁功能:
          • 固定细胞外型和提高机械强度,使其免受渗透压等外力的损伤
          • 鞭毛生长和运动的支点
          • 阻止大分子有害物质进入细胞
          • 赋予细菌特定的抗原性以及对抗生素和噬菌体的敏感性
        • 细胞壁缺陷细菌:
          • 自然界中长期进化形成:支原体
          • 实验室或宿主体内形成:
            • 缺壁突变:L型细菌
            • 人工去壁:
              • 基本去尽:原生质体(G+)
              • 部分去除:球状体(G-)
      • 细胞质膜:主要由磷脂双分子层和蛋白质组成,与真核细胞的质膜相似,但不含胆固醇等甾醇
        • 生理功能:
          • 选择性地控制细胞内外的营养物质和代谢产物的运送
          • 是维持细胞内正常渗透压的屏障
          • 合成细胞壁和糖被的各种组分(肽聚糖、磷壁酸、LPS、荚膜多糖等)的重要基地
          • 膜上含有氧化磷酸化或光合磷酸化等能量代谢的酶系,是细胞的产能场所
          • 是鞭毛基体的着生部位和鞭毛旋转的供能部位
        • 间体:细胞膜内褶形成的一种管状、层状或串状物,一般位于细胞分裂的部位或附近
          • 参与隔膜形成
          • 与核分裂有关
          • 类似线粒体功能
      • 细胞质和内含物:细胞质是细胞质膜包围的除核区外的一切半透明、胶状、颗粒状物质的总称。含水量约80%,主要成分为核糖体、贮藏物、多种酶类和中间代谢物、质粒、各种营养物和大分子的单体等,少数细菌还有类囊体、羧酶体、气泡或伴孢晶体等
        • 核糖体:一种核糖核蛋白的颗粒状物质,由核糖核酸(60%)和蛋白质(40%)组成,常以游离状态或多聚核糖状态分布于细胞质中
          • 功能:是细胞合成蛋白质的机构
        • 贮藏物:由不同化学成分累积而成的不溶性沉淀颗粒,主要功能是贮存营养物
          • 分类:碳源及能源类(糖源和硫源)、氮源类、磷源(异染粒)
        • 气泡:许多光合营养型、无鞭毛运动的水生细菌中存在的充满气体的泡囊状内含物,内由数排柱形小空泡组成,外有2nm厚的蛋白质膜包裹
          • 功能:调节细胞比重,使其漂浮在合适的水层中;吸收空气,空气中的氧气可供代谢需要
      • 核区:原核生物所特有的无核膜结构、无固定形态的原始细胞核
        • 细菌的遗传物质称为核质体/原核/拟核/核基因组,无核膜、核仁和有丝分裂器
        • 功能:负载遗传信息
        • 核质由单一密闭环状DNA分子反复回旋卷曲盘绕组成松散网状结构
        • 每个细胞所含的核区数一般1~4个
        • 细菌除在染色体复制时间内呈双倍体外,一般均为单倍体
      • 质粒:细菌染色体外的共价闭合环状双链DNA分子
        • 特点:
          • 可自我复制,稳定遗传
          • 对生存不是必要的
          • 不同质粒携带不同遗传信息
          • 无质粒细菌可通过接合等方式获得,不能自发产生
    • 特殊结构:
      • 糖被:包被于某些细菌细胞壁外的一层厚度不定的胶状物质。糖被按其有无固定层次、层次厚薄又可细分为荚膜、微荚膜、粘液层和菌胶团
        • 荚膜成分:多糖、多肽
        • 特点:
          • 主要成分是多糖、多肽或蛋白质,尤其以多糖居多。经特殊的荚膜染色(背景染色/负染色)可在光学显微镜清楚地观察到它的存在
          • 产生糖被是微生物的一种遗传特性,其菌落特征及血清学反应是细菌分类鉴定的指标之一
          • 荚膜并非细胞生活的必要结构,但它对细菌在环境中的生存有利
          • 细菌糖被与人类的科学研究和生产实践有密切的联系
        • 功能:
          • 保护作用:保护细菌免受干旱损坏,防止噬菌体的吸附和裂解,使致病菌免受突破主白细胞吞噬
          • 贮藏养料
          • 作为透性屏障或离子交换系介质
          • 附着作用
          • 细菌间的信息识别作用
          • 堆积代谢废物
      • 鞭毛:某些细菌细胞表面着生的一至数十条长丝状、螺旋形的附属物,首要功能是完成运动,逆时针旋转向前,顺时针旋转向后
        • 着生方式:单端鞭毛、端生丛毛、两端生鞭毛、周生鞭毛
        • 结构:鞭毛丝、鞭毛钩、基体
        • 菌种包含许多杆菌和少数球菌
      • 菌毛:长在细菌体表的纤细、中空、短直、数量较多的蛋白质类附属物,具有使菌体附着于物体表面的功能
        • 菌毛比鞭毛简单,无基体等构造,每个细菌约有250~300条菌毛,有菌毛的细菌以G-致病菌和球菌居多,借助菌毛可把它们牢固地黏附于宿主的呼吸道、消化道、泌尿生殖道等的黏膜上,进一步定植和致病
      • 性菌毛:构造和成分与菌毛相同,但比菌毛长,且每个细胞只有一至数根。一般多见于G-细菌的供体菌中,具有向受体菌传递遗传物质的作用
      • 芽苞:某些细菌在其生长发育后期,在细胞内形成一个圆形或椭圆形、厚壁、含水量极低、抗逆性极强的休眠体(相对于环境条件变好之后的营养体),称为芽孢
        • 结构:孢外壁、芽苞衣、皮层和核心
          • 芽苞的外壁层厚而致密,主要成分为脂蛋白,通透性差,不易着色
          • 核心含有大量的DNA、RNA、蛋白质酶等物质,还含有2,6—吡啶二羧酸(DPA),DPA是芽孢特有的成分。一般以DPA—Ca的形式存在
          • 皮层主要含芽苞肽聚糖、DPA-Ca,皮层体积大,比较致密
          • 芽苞平均含水量低,约40%
        • 形成过程:营养细胞——核质体复制——芽孢横隔形成——核质体被原生质膜包围——形成前芽泡——前芽孢完成,另一核质体完全降解——内外前芽抱膜之间的特孢皮层形成;合成的DPA渗入积累到内生芽孢中——芽孢衣合成——菌体裂解,孢子释放——当环境条件适宜,芽孢萌步,芽孢壁被酶解,营养细胞出现——营养细胞二分裂——营养细胞分裂完成
          • 通过其形成过程分析其抗逆性机制:
        • 特性,尤其是对芽孢抗逆性的理解:
          • 对高温、干燥、辐射、化学药物有强大的抵抗力
          • 含水量低、壁厚而致密,通透性差,不易着色,折光性强
          • 芽苞内新陈代谢几乎停止,处于休眠状态,但保持潜在萌发力
          • 一个芽苞萌发只产生一个营养状态的细胞
        • 本质:既不是细菌生活周期的必经阶段,也不是细菌繁殖的一种形式,又不是对环境的消极反应,而是一种生命形式,一种独立的休眠体
        • 研究意义
          • 分类鉴定
          • 保存菌种:是细菌的休眠体,适宜条件下重新转变成营养态细胞,用于产芽孢菌的保藏
          • 灭菌标准:芽孢是生物界中抗逆性最强的生命体,以是否能够消灭芽孢作为灭菌标准
          • 生物杀虫
          • 分离菌种
          • 芽孢染色:芽孢与营养细胞化学成分差异较大,容易在光学显微镜下观察
        • 伴孢晶体:少数芽孢杆菌会在芽苞旁形成一个菱形或双锥形的碱溶性蛋白晶体
          • 特点:不溶于水,对蛋白酶类不敏感,易溶于碱性溶剂
          • 对200多种昆虫尤其是鳞翅目昆虫的幼虫有毒杀作用,可用作生物农药
  • 细菌的繁殖方式:细菌主要是通过无性繁殖产生后代,其繁殖方式是二分裂,简称裂殖
    • 同形裂殖:裂殖后形成的子细胞大小相等
    • 异形裂殖:分裂产生两个大小不等的子细胞
    • 繁殖过程:核的分裂和隔膜的形成——横隔壁形成——子细胞分裂
    • 有的细菌还存在三分裂和复分裂
  • 细菌的菌落:
    • 菌落:在固体培养基上,由单个细胞繁殖形成的肉眼可见的子细胞群体
    • 菌苔:大量细胞密集生长,结果长成的各“菌落”连接成一片
    • 特征:包括大小、形状、颜色、边缘、质地、透明度、光泽、表面、湿润度等
image-20230419111746614

放线菌

  • 定义:具有分枝状菌丝体和主要以外生孢子繁殖或断裂生殖的陆生性较强的原核微生物;是G+菌;菌丝从一个中心向四周辐射状呈放射状生长;多为腐生,少数寄生
  • 应用:产生抗生素、酶、维生素等,也有固氮能力,在物质循环中有重要作用,能分解复杂有机物,提高土壤肥力
  • 分布:含水较低的地方,以孢子或菌丝广泛存在于自然界。有机物丰富、呈微生物碱性的土壤中较多
  • 与细菌比较:
    • 同为单细胞,菌丝比真菌细,其直径与细菌接近
    • 同属原核生物
    • 细胞壁的主要成分是肽聚糖,胞壁含磷壁酸,G+
    • 对环境要求与细菌相近
    • 对溶菌酶敏感,细菌所敏感的抗生素,放线菌也同样敏感
    • 总之,放线菌是一类介于细菌和真菌之间,而更接近细菌的原核生物
  • 形态:由分枝状菌丝组成。菌丝无隔膜,仍属单细胞。菌丝直径与杆菌相似(1µm左右);细胞壁含磷壁酸、二氨基庚二酸,不含几丁质、纤维素;革兰氏阳性。
  • 菌丝分类
    • 基内菌丝:又称营养菌丝,匍匐生长于培养基内,无隔,可营养吸收和排泄废物。直径0.2-1.2µm,长度100-600µm,色素可有可无,有的可产黄、橙、红、紫、蓝、绿、褐、黑等色素
    • 气生菌丝:基内菌丝长到一定时期,长出培养基外,伸向空间的菌丝,直径1-1.4µm, 长短不一,形状不一,直形或弯曲分枝,颜色较深。气生菌丝生长致密,覆盖整个菌落表面,菌丝成放射状。
    • 孢子丝:当气生菌丝生长发育到一定阶段,气生菌丝上分化出的可形成孢子的菌丝,即孢子丝,又称产孢丝或繁殖菌丝。其形状和排列方式因种而异,常被作为对放线菌进行分类的依据
      • 孢子丝类型:丛生、钩状、紧螺旋、松螺旋、一级轮生、二级轮生等
  • 繁殖方式:
    • 无性孢子(主要):
      • 分生孢子:在 形成成串或单个孢子,菌丝分裂形成(形成横隔——沿横隔断裂形成孢子——成熟孢子)
      • 孢子囊孢子:在气生菌丝顶端或基内菌丝顶端膨大或盘卷缠绕形成孢子囊,在孢子囊内形成孢囊孢子
        • 孢囊:菌丝细胞在不同平面反复分裂,形成孢囊孢子,还有的孢囊孢子可以丛毛运动
        • 孢子形态:有圆、卵状或柱状等,表面光滑或粗糙,有的还带有毛刺或鞭毛,色素因种而异
    • 菌丝片段
  • 菌落形态:
    • 质地:致密、干燥、多皱、小而不蔓延、不挑起、表面有放射状沟纹
    • 形状:
      • 能产生大量分枝和气生菌丝的菌种(如链霉菌):菌落质地致密,与培养基结合紧密,小而不蔓延,不易挑起或挑起后不易破损
      • 不能产生大量菌丝体的菌种(如诺卡氏菌):黏着力差,粉质,针挑起易粉碎

蓝细菌

  • 定义:也称蓝藻或蓝绿藻,是一类含有叶绿素a、能以水作为供氢体和电子供体、通过光合作用将光能转变成化学能、同化CO2为有机物质的光合细菌。
  • 特性:
    • 分布极广
    • 形态差异极大,有球状、杆状和丝状等形态
    • 细胞中含有叶绿素a,进行产氧型光合作用
    • 具有原核生物的典型细胞结构
    • 营养极为简单,不需要维生素,以硝酸盐或氨为氮源,多数能固氮,其异形细胞是进行固氮的场所
    • 分泌黏液层、荚膜或形成鞘衣,因此具有强的抗干旱能力
    • 无鞭毛,但能在固体表面滑行,进行光趋运动
    • 许多种类细胞质中有气泡,使菌体漂浮,保持在光线最充足的地方以利光合作用
  • 生理:
    • 是光能自养型生物:只需空气、阳光、水分、少量无机盐
    • 没有有性生殖,以裂殖为之,也可芽生殖,极少数有孢子
    • 已知蓝细菌有20多种具固氮作用

支原体、立克次氏体和衣原体

均是G-菌,其大小和特性均介于通常的细菌与病毒之间。

  • 重点是定义+特点
  • 支原体:自然界中天然无壁、独立营养、形体最微小的原核生物
    • 形态多变,有球形、丝状,二分分裂繁殖。最小的球形支原体0.25um,仅为一般球菌的1/2-1/4。在含有血清、营养丰富的培养基上可形成特色的“煎蛋形”菌落
    • 对抗生素敏感,可引起人、动物、植物致病
    • 具有氧化型或发酵型的产能代谢,在好氧或厌氧条件下生长
    • 能在人工培养基上独立生长
  • 立克次氏体:是大小介于通常的细菌与病毒之间,在许多方面类似细菌,专性活细胞内寄生的原核微生物
    • 某些性质与病毒相近:专性活细胞寄生物,除五日热立克次氏体外均不能在人工培养基上生长繁殖(体内酶系不完全,一些必须的养料虚从宿主细胞获得;细胞膜比一般细菌的膜疏松,可透性膜)
    • 从一种宿主传至另一宿主的特殊生活方式:主要以节肢动物为媒介,寄生在它们的消化道表皮细胞中,然后通过节肢动物叮咬和排泄物传播给人和其他动物
    • 细胞形态多变
  • 衣原体:介于立克次氏体与病毒之间,能通过细菌滤器,专性活细胞内寄生的一类原核微生物
    • 细胞结构与细菌类似
    • 细胞呈球形或椭圆形,直径0.2-0.3um,能通过细菌滤器
    • 专性活细胞内寄生
    • 在宿主细胞内生长繁殖具有独特的生活周期,即存在原体和始体两种形态
    • 衣原体广泛寄生于人类、哺乳动物及鸟类,少数致病
    • 衣原体不耐热,60度10分钟即被灭火,但不怕低温,冷冻干燥可保藏多年,对红霉素、氯霉素、四环素敏感

第三章 真核微生物

她说真核内容少

  • 定义:细胞核具有核膜;能进行有丝分裂;细胞质中存在线粒体等细胞器的微小生物
  • 主要类群:
    • 植物界:单细胞藻类
    • 动物界:原生动物
    • 菌物界:
      • 粘菌和卵菌
      • 真菌
        • 单细胞真菌:酵母菌
        • 丝状真菌:霉菌
        • 大型真菌:蕈菌
  • 真菌是最重要的真核微生物,它们的特点是:
    • 无叶绿素,不能进行光合作用
    • 一般具有发达的菌丝体
    • 细胞壁多含有几丁质
    • 营养方式为异养吸收型
    • 以产大量无性或有性孢子的形式进行繁殖
    • 陆生性较强
    • 以寄生或者腐生方式生存

酵母菌

  • 定义:一般泛指能发酵糖类的各种单细胞真菌

  • 特点:

    • 个体一般以单细胞状态存在
    • 多数营出芽繁殖
    • 能发酵糖类产能
    • 细胞壁常含甘露聚糖
    • 常生活在含糖量较高、酸度较大的环境中
  • 应用:

    • 食品:酿酒、制作面包、生产调味品
    • 医药:生产酵母片、核糖核酸、核黄素、细胞色素C、B族维生素、乳糖酶、脂肪酶、氨基酸等
    • 化工:使石油脱蜡、以石油为原料生产柠檬酸等
    • 农业:生产饲料
    • 生物工程:作为基因工程的受体菌
  • 危害:使物品变质,对人和动植物致病

  • 形态:通常为圆形、卵圆形或椭圆形。也有特殊形态,比如柠檬型,假菌丝,三角形,藕节状,腊肠形等

  • 大小:比细菌粗约10倍微米级,直径2-5um,长度5-30um,最长可达100um

  • 细胞结构:细胞壁、细胞膜、细胞核、液泡、线粒体、内质网、微丝、微体、及内含物等,有的菌体还有出芽痕。

    • 细胞壁:
      • 化学组成:葡聚糖、甘露聚糖、蛋白质、脂类、几丁质(不是所有都有)
      • 三层结构:外到内主要是甘露聚糖、蛋白质、葡聚糖
      • 有些菌壁外含有由多糖构成的类似荚膜的结构,如异多糖和淀粉类物质
    • 细胞膜:
      • 组成:蛋白质(包括一些酶),糖类(甘露聚糖等),类脂(甘油单、双、三酯,甘油磷脂,甾醇等)
      • 功能:
        • 调节细胞外溶质运送到细胞内的渗透屏障
        • 细胞壁等大分子的生物合成和装配基地
        • 部分酶的合成和作用场所
    • 细胞核:
      • 具有双层膜结构的细胞器
      • 功能:携带遗传信息,控制细胞的增殖和代谢
    • 细胞质和细胞器:
      • 细胞基质和细胞骨架:
        • 除细胞器以外的胶状溶液称为细胞基质
        • 细胞骨架是由微管、肌动蛋白丝(微丝)和中间丝三种蛋白质纤维构成的细胞支架
      • 内质网:是分布在整个细胞中的由膜构成的管道和网状结构。在细胞中和核膜或细胞膜连在一起
        • 根据表面结构分为:
          • 粗糙型内质网:膜外附着有核糖体
          • 光滑型内质网:表面没有附着的颗粒
        • 功能:起物质传递的作用,另外还有合成脂类和脂蛋白
      • 线粒体:双层膜,外形和大小与杆菌相似
        • 功能:蕴藏在有机物中的化学能转化成生命活动所需的能量
  • 繁殖方式:

    • 有性:(产子囊孢子)具有有性繁殖的酵母菌称为真酵母,酵母菌是以形成子囊和子囊孢子的方式进行有性繁殖的
      • 有性繁殖过程:细胞原生质体接触——质配——核配——减数分裂
    • 无性:只进行无性繁殖的酵母菌称为假酵母
      • 芽殖:各属都存在,是酵母菌最常见的一种繁殖方式
        • 一个酵母能形成的芽数是有限的(平均24个)
        • 出芽方式:多边出芽、两端出芽、三边出芽、单边出芽
        • 芽殖过程:母细胞形成小突起——核裂——原生质分配——新膜形成——形成新细胞壁
        • 假菌丝:有的酵母菌进行芽殖后,长大的子细胞不与母细胞立即分离,并继续除芽,细胞成串排列,这种菌丝状的细胞串就称为假菌丝。假菌丝的各细胞间仅以狭小的面积相连,呈藕节状。而霉菌的菌丝为真菌丝,即相连细胞间的横隔面积与细胞直径一致,呈竹节状的细胞串,称为真菌丝。
      • 裂殖:在裂殖酵母菌中存在,与细菌相似的二分裂繁殖方式
      • 产无性孢子:节孢子、掷孢子、厚垣孢子
  • 生活史:生活史又称生命周期,指上一代生物个体经一系列生长、发育阶段而产生下一代的全部过程

    • 营养体既能以单倍体也能以二倍体形式存在:
      • 特点:一般以营养体状态进行出芽繁殖
    • 营养体只能以单倍体形式存在:
      • 营养细胞为单倍体
      • 无性繁殖为裂殖
      • 二倍体细胞不能独立生活,此期极短。双倍体阶段短,一经生成立即减数分裂
    • 营养体只能以二倍体形式存在:
      • 营养体为二倍体不断进行芽殖,此阶段较长
      • 单倍体的子囊孢子在子囊内发生接合
      • 单倍体阶段仅以子囊孢子的形式存在,不能进行独立生活
  • 菌落:菌落与细菌的相仿,但由于细胞比细菌的大,细胞内有许多分化的细胞器,细胞间隙含水量相对较少,以及不能运动等特点,因此菌落大而厚, 圆形,光滑湿润,粘性,颜色单调。常见白色、土黄色、红色

    • 液体培养:
      • 好气性生长的酵母可在培养基表面上形成菌膜或菌醭,其厚度因种而异
      • 有的酵母菌在生长过程中始终沉淀在培养基底部
      • 有的酵母菌在培养基中均匀生长,使培养基呈浑浊状态
    • 上面酵母与下面酵母:并非分类学上的名称,而是在啤酒酿造业中根据酵母菌在容器内的情况而对酵母菌株进行的分类
      • 上面酵母:在发酵过程中细胞浮游在液体上层,是较活跃的发酵剂
      • 下面酵母:在发酵过程中细胞沉于容器底层,是较缓慢的发酵剂

丝状真菌——霉菌

霉菌是丝状真菌的一个俗称,通常指那些菌丝体较为发达又不产生大型肉质子实体结构的真菌

  • cmp:放线菌

分布:

  • 相当广泛,无所不在,种类和数量惊人
  • 霉菌是各种复杂有机物,尤其是数量最大的纤维素、半纤维素和木质素的主要分解菌
  • 一般情况下,霉菌在潮湿的环境下易于生长,特别是偏酸性的基质当中

应用:

  • 食品:酿制酱、酱油、干酪等
  • 工业:生产有机酸、酶制剂、抗生素、维生素、生物碱、真菌多糖、植物生长刺激素、甾体激素类药物等
  • 生物防治、污水处理和生物测定等
  • 基本理论研究:最著名的是利用粗糙脉胞菌进行生化遗传学方面的研究

危害:

  • 引起食品、生活用品以及一些工具、仪器、工业原料等的霉变
  • 对动植物、人类致病
  • 产生毒素,引起食物中毒
  • 形态结构:霉菌的菌体由分枝或不分枝的菌丝构成。许多分枝菌丝相互交织在一起构成菌丝体。菌丝是中空管状结构,直径约2-10um
    • 霉菌菌丝类型:
      • 按形态分:
        • 无隔菌丝:为长管状单细胞,细胞质内含多个核。其生长表现为菌丝的延长和细胞核的增多。这是低等真菌所具有的菌丝类型
        • 有隔菌丝:菌丝中有隔膜,被隔膜隔开的一段菌丝就是一个细胞,菌丝由多个细胞组成,每个细胞内有一至多个核。隔膜上有单孔或多孔,细胞质和细胞核可自由流通,每个细胞功能相同。这是高等真菌所具有的类型
      • 按分化程度分:(与放线菌比较)
        • 营养菌丝(基内菌丝):伸入到培养基内部,以吸收养分为主的菌丝
        • 气生菌丝:向空中生长的菌丝,气生菌丝发育到一定阶段可分化成繁殖菌丝
  • 细胞结构:霉菌的细胞膜、核线粒体和核糖体等成分与其它真核生物(酵母)基本相同。幼龄菌往往液泡小而少,老龄菌具有较大的液泡。
    • 细胞壁:除少数低等水生霉菌细胞壁含纤维素外,大部分霉菌细胞壁主要由几丁质组成。组成真菌细胞壁的另一类成分为无定型物质,主要是一些蛋白质、甘露聚糖和葡聚糖,它们填充于上述纤维状物质构成的网内或网外,充实细胞壁的结构
  • 菌丝体:由许多菌丝相互交织而成的一个菌丝集团
    • 营养菌丝体:密布在固体培养基质内部,主要执行吸收营养物功能的菌丝体
    • 气生菌丝体:伸展到空间的菌丝体
  • 假根:有的真菌在菌丝下面长出根状菌丝,伸入基质中吸收养分并支持上部的菌丝,这种根状菌丝叫假根
  • 吸器:专性寄生真菌(如锈菌)从菌丝产生出的旁枝,侵入寄主细胞内分化成指状、球状

霉菌的繁殖(讲过)

  • 繁殖方式:对一些典型什么花生什么
  1. 无性繁殖:不经过两个性细胞的结合,只是由营养细胞分裂或分化形成同种新个体的过程
  • 无性孢子:孢囊孢子(内生)、分生孢子(外生)、节孢子、厚垣孢子
    • 孢囊孢子:由于生于孢子囊内,又叫内生孢子。它是由气生菌丝顶端膨大形成特殊囊状结构——孢子囊,孢子囊逐渐长大,在囊中形成许多核,每一个核外包以原生质并产生细胞壁,形成孢囊孢子。有静孢子(不生鞭毛,不能游动,根霉属)和游动孢子(生鞭毛,能游动,绵霉属)两种。
    • 分生孢子:生于细胞外,又称外生孢子。是大多数子囊菌纲及全部半知菌的无性繁殖方式。分生孢子是由菌丝顶端细胞或由分生孢子梗顶端细胞经过分割或缩缢而形成的单个或成簇的孢子;eg,曲霉,青霉,镰刀酶
    • 节孢子(粉孢子):由菌丝断裂形成的外生孢子。当菌丝长到一定阶段,出现许多横膈膜,然后从横膈膜处断裂,产生许多孢子。孢子是成串的短柱状、筒状或两端钝圆的细胞;eg,白地霉
    • 厚垣孢子(壁厚孢子):这类孢子有很厚的壁,又叫厚壁孢子。菌丝顶端或中间的个别细胞膨大、原生质浓缩、变圆,然后细胞壁加厚形成圆形、纺锤形或长方形的厚壁孢子。厚垣孢子也是霉菌的休眠体,对热、干燥等不良环境抵抗力很强
  1. 有性繁殖:经过两个性细胞结合而产生新个体的过程。有性繁殖多发生在特定的条件下,在自然条件下较多,在一般培养基上不常出现。多数霉菌是由菌丝分化形成特殊的性细胞(器官)——配子囊或由配子囊产生的配子(雄器和雌器)相互交配,形成有性孢子
    1. 有性繁殖的三个阶段:
      • 质配:两个性细胞的核共存于一个细胞中,形成双核细胞,每个核的染色体数目都是单倍体的(n+n)
      • 核配:形成二倍体接合子,核的染色体数目是双倍的(2n)
      • 减数分裂:形成单倍体有性孢子,核的染色体数目是单倍的(n)
    2. 有性孢子:卵孢子、接合孢子、子囊孢子、担孢子
    • 卵孢子:由大小不同的配子囊结合后发育而成。小型的配子囊小型的配子囊称雄器,大型的配子囊称藏卵器,藏卵器内有一个或数个称为卵球的原生质团,它相当于高等生物的卵。当雄器与藏卵器配合时,雄器中的细胞质和细胞核通过受精管进入藏卵器,并与卵球结合,受精卵球生出外壁,发育成卵孢子。
    • 接合孢子:由菌丝生出的结构基本相似、形态相同或略不同的两个配子囊接合。形态:厚壁、粗糙、黑壳。两个相邻的菌丝相遇,向对方生出极短的侧枝,称原配子囊。原配子囊接触后,顶端各自膨大并形成横隔,分隔形成两个配子囊细胞,配子囊下的部分称配子囊柄。相接触的两个配子囊之间的横隔消失,发生质配、核配,同时外部形成厚壁,成接合孢子
      • 同宗配合:菌体自身可孕,不需要别的菌体帮助而能独立进行有性生殖
      • 异宗配合:菌体自身不孕,需要借助别的可亲和菌体的不同交配型来进行有性生殖
    • 子囊孢子:在子囊内形成的有性孢子。形成子囊孢子是子囊菌纲的主要特征。
      • 子囊:两性细胞接触以后形成的囊状结构。有球形、棒形、圆筒形、长方形等因种而异。子囊内孢子通常是1-8个
    • 担孢子

霉菌菌落:

菌落形态较大,质地一般比放线菌疏松、外观干燥,不透明,呈现或紧或松的蛛网状、绒毛状或棉絮状;菌落与培养基的连接紧密,不易挑取,菌落正反面的颜色和边缘与中心的颜色常不一致。比细菌、酵母菌的大。

  • 菌丝体在液体培养时的特化形态:有利于氧的传递以及营养物和代谢物的输送,对菌丝的生长代谢产物有利
    • 静止培养:霉菌往往在表面上生长,液面上形成菌膜
    • 震荡培养:菌丝有时相互缠绕在一起形成菌丝球,菌丝球可能均匀地悬浮在培养液中或沉于培养液底部

image-20230421005146860

蕈菌

产大型子实体的真菌

第四章 病毒

say:繁殖方式动物植物比较,病毒的定义,蛋白质繁殖的方式,病毒的形状和大小,五个阶段,繁殖过程,一步生长曲线,各个时期的理解(前提是烈性),烈性噬菌体与温和噬菌体亚病毒
课后习题作业
定义:病毒是含一种核酸,专性活细胞内寄生,只能依靠宿主细胞的代谢系统完成核酸的复制和蛋白质的合成,并经装配而达到增殖,又能在细胞外以无生命的大分子状态而存在的非细胞型微生物

病毒的形态结构和化学组成

对病毒的描述:非细胞生物

  • (真)病毒:至少含核酸和蛋白质两种组分
  • 亚病毒:
    • 类病毒:裸露的,仅含一个单链环状低相对分子质量的RNA分子的病原体
    • 卫星病毒:即一个小片段的RNA或DNA,他们完全依赖于另一专一辅助病毒的同时感染,基因才能复制和表达,才能完成增殖的亚病毒因子
    • 卫星RNA:只有RNA。这一类寄生于专一辅助病毒壳体内,必须依赖于辅助病毒才能复制的RNA分子片段
    • 朊病毒:是一类能侵染动物并在宿主细胞内复制的小分子无免疫性疏水蛋白质

特点:

  • 形体极其微小,必须在电子显微镜下才能观察,一般都可通过细菌滤器
  • 没有细胞构造,故也称分子生物
  • 主要成分仅是核酸和蛋白质两种
  • 每一种病毒只含有一种核酸,不是DNA就是RNA
  • 既无产能酶系也无蛋白质合成系统
  • 在宿主细胞协助下,通过核酸的复制和核酸蛋白装配的形式进行增殖,不存在个体生长和二均等分裂等细胞繁殖方式
  • 在宿主的活细胞内营专性寄生
  • 在离体条件下,以无生命的化学大分子状态存在,并可形成结晶;可保持其侵染活性(非感染态)
  • 对一般抗生素不敏感,但对干扰素敏感
  • 宿主范围:动物病毒、植物病毒、细菌病毒(或称噬菌体)

病毒的形状和大小

  • 形状:有球状、杆状、蝌蚪状、子弹状和丝状、冠状等。其基本形态为球状(或近似球状)、杆状和蝌蚪状。
  • 大小:
    • 测定大小的单位是纳米,多数病毒的直径在100nm以下
    • 个体小,必须在电镜下观察
    • 不同病毒的毒粒大小差别很大

病毒的典型结构

Img

  • 典型病毒粒的构造:病毒粒子:成熟(结构完整)的、具有侵染力的单个病毒,又称为病毒颗粒
    • 基本成分
      • 核酸:位于中心,称为核心
      • 蛋白质:包围在核心周围,形成衣壳
    • 核心和衣壳合成核衣壳(蛋白质基本单元),为病毒的基本结构
    • 外面包裹着一层由脂类和多糖组成的包膜,有的包膜上还长有刺突

病毒粒的对称体制:

  • 螺旋对称:
    • 典型代表:烟草花叶病毒
    • 无包膜:
      • 杆状:烟草花叶病毒等
      • 丝状:大肠杆菌的f1、fd、M13等
    • 有包膜:
      • 卷曲状:正粘病毒(流感病毒)等
      • 弹状:狂犬病毒,水泡性口膜炎病毒等
  • 二十面体对称:可以容纳最多的核酸(二十面体容积最大)
    • 典型代表:腺病毒
    • 无包膜:
      • 大型:腺病毒等,核心由线状双链DNA构成
      • 小型:脊髓灰质炎病毒,$\phi$X174噬菌体等
    • 有包膜:疱疹病毒
  • 复合对称:
    • 典型代表:T偶数噬菌体
    • 无包膜:大肠杆菌的T偶数噬菌体(蝌蚪状)等
    • 有包膜:痘病毒(砖块状)

化学组成:

核酸(DNA、RNA)和蛋白质。有的病毒还含有脂类、糖类等其他组分

  • 病毒核酸:单链DNA(ss NDA),双链DNA(ds DNA),单链RNA(ss RNA),双链RNA(ds RNA)
    • 分类:
      • 植物病毒绝大多数含RNA,少数含DNA
      • 动物病毒一部分含DNA,一部分含RNA
      • 细菌病毒则普遍含DNA,含RNA的极少还不清楚是否有含DNA的真菌病毒
    • 病毒DNA分子有线状和环状之分
    • 病毒核酸有正链(+)和负链(-)之分:将碱基序列与mRNA一致的核酸单链称为正链,与mRNA互补的核酸单链称为负链。
      • ($\pm$)DNA:大部分DNA病毒
      • ($\pm$)RNA:动物呼肠孤病毒
      • ($+$)DNA:大肠杆菌$\phi$X174噬菌体
      • ($+$)RNA:所有单链RNA病毒/大部分植物病毒
      • ($-$)DNA:腺病毒
      • ($-$)RNA:流感病毒
  • 病毒蛋白质:
    • 有的病毒只有一种蛋白质,多数含有为数不多的几种蛋白质
    • 不同病毒蛋白质的氨基酸组成和含量各不相同
    • 病毒蛋白质主要在构成病毒结构、病毒的侵染与增殖过程中发挥作用:
      • 结构功能
      • 吸附
      • 破坏宿主细胞壁与细胞膜
      • 增殖
  • 其他成分:
    • 较复杂病毒(包膜病毒)含有脂类、多糖等成分
    • 病毒的脂类主要以脂质双分子层的形式存在于病毒的包膜中
    • 病毒所含的糖类主要以糖蛋白的形式存在于包膜的表面,决定着病毒的抗原性

病毒的增殖

繁殖过程

病毒粒子并无个体的生长过程,而只有其两种基本成分的合成和装配,即核酸复制+蛋白质合成$\rightarrow$核蛋白

  • 分五个阶段(她讲了好多,掌握,核心是DNA复制蛋白质合成最后装配的过程):
    1. 吸附:尾丝尖端与宿主细胞表面的特异性受体接触,触发尾丝散开,附着在受体上,随之把刺突、基板固定
    2. 侵入:尾部的酶水解细胞壁的肽聚糖,使细胞壁产生小孔;尾鞘收缩,核酸通过中空的尾管压入胞内,蛋白质外壳留在胞外;
    3. 增殖(复制与生物合成):病毒利用宿主的生物合成机构和场所,使病毒核酸表达和复制,产生大量的病毒蛋白质和核酸;
    • 病毒基因组的表达与复制存在很强的时序性:宿主原有蛋白-早期蛋白-次早期蛋白-晚期蛋白
    • 病毒大分子合成:
      1. 早期:病毒特异性酶的合成
      2. 病毒核酸复制
      3. 病毒结构蛋白质合成
    • 噬菌体核酸进入宿主细胞后,会控制宿主细胞的合成系统,然后以噬菌体核酸中的指令合成噬菌体所需的核酸和蛋白质;
    1. 成熟(装配)
    2. 裂解(释放)

原核生物的病毒——噬菌体

  • 噬菌斑效价:表示每毫升试样中所含有的具侵染性的病毒粒子数
    • 噬菌体的效价指能使感染细菌裂解,产生噬菌斑的噬菌体数,又称噬菌斑形成单位或感染中心
    • 测定方法:双层平板法,避免二次吸附
  • 双层平板法:
    • 优点:
      • 底层培养基,弥补玻璃皿底面不平的缺陷
      • 全部噬菌斑都处于同一平面上,每一噬菌斑的大小接近,边缘清晰,且不发生上下噬菌斑重叠的现象
      • 上层培养基中琼脂较稀,形成的噬菌斑较大,更有利于计数
  • 一步生长曲线:以效价(噬菌斑)为纵坐标,培养时间为横坐标所绘成的曲线
    Img
    • 定量描述烈性噬菌体生长规律的实验曲线
    • 描述一个动力学过程:多少(效价),多久
  • 根据生长曲线,可分为:潜伏期——裂解期——平稳期
    • 潜伏期:从噬菌体吸附细菌到细菌细胞释放新的噬菌体之前的这段时期,曲线平行于横轴,噬菌体数无变化样品中无游离的噬菌体。(潜伏期前的噬菌斑数是噬菌体数,也就是感染噬菌体的细菌数)
    • 裂解期:曲线直线上升,直到达到一个极限子代:装配完成,噬菌体不断释放到培养基中
    • 平稳期:感染细胞后复制的子代噬菌体全部释放,噬菌班数稳定,一次感染结束
    • 平均每一个宿主细胞裂解后所产生的子代噬菌体数称作裂解量,裂解量=稳定期噬菌斑数/潜伏期噬菌斑数
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      - 植物病毒:
      - 植物病毒没有专门的吸附结构,通过昆虫口器、摩擦伤口和人为伤口进入寄主细胞。植物病毒在入住宿主细胞后脱去蛋白质外壳
      - TMV的衣壳粒以双层盘的形式组装形成衣壳,pH的改变、RNA的嵌入对衣壳的装配起关键作用
      - 人类和脊椎动物病毒:
      - 脊椎动物病毒包括DNA(腺病毒)和RNA(脊髓灰质炎病毒)病毒
      - 侵入方式:移位——质膜融合——胞吞作用
      - 释放方式:
      - 无包膜的病毒,如腺病毒通过细胞裂解或局部破裂而释放
      - 有包膜的DNA病毒,如疱疹病毒,以细胞质中通道释放到细胞外
      - 有包膜的RNA病毒,如副流感病毒用出芽方式通过寄主细胞膜,释放到细胞外并获得细胞源性的包膜和产生刺突
      - 空斑:人工培养的单层动物细胞感染病毒后,会形成类似噬菌斑的动物病毒群体
      - 病斑:单层动物细胞受到肿瘤病毒的感染后,会使动物细胞恶性增生,形成类似细菌菌落的病灶
      - 昆虫病毒:多数昆虫病毒可在宿主细胞内形成光镜下呈多角形的包涵体,称多角体,成分为碱溶性结晶蛋白,其内包裹着数目不等的病毒粒
      - 核形多角体病毒:在昆虫细胞核内增殖,具有蛋白质包涵体的杆状病毒
      - 质形多角体病毒:在昆虫细胞质内增殖,可形成蛋白质包涵体的球状病毒
      - 颗粒体病毒:具有蛋白质包涵体,每个包涵体内通常仅含有一个病毒粒的昆虫杆状病毒

噬菌体分为烈性噬菌体和温和噬菌体

烈性噬菌体:大部分噬菌体感染宿主细胞,能在宿主细胞内增殖,产生大量子代噬菌体并引起细菌裂解
温和噬菌体(溶源性噬菌体):噬菌体感染细胞后,将其核酸整合到宿主的基因组上,并且可以随宿主基因的复制而进行同步复制,在一般情况下不引起寄主细胞裂解
Img

  • 溶源性:温和噬菌体侵染敏感细菌后不裂解它们,而与细菌共存的特性,比较区别
  • 特点
    • 其核酸类型都是dsDNA
    • 具有整合能力
    • 具有同步复制能力
  • 前噬菌体(原噬菌体):处于整合态的噬菌体核酸
  • 溶源性细菌及其检出:
    • 溶源性细菌:在核染色体组上整合有前噬菌体并能正常生长繁殖而不被裂解的微生物
    • 特点:
      • 可稳定遗传:子代细菌都有含有原噬菌体,均具有溶源性
      • 可自发裂解:温和噬菌体的核酸也可从宿主DNA上脱落下来,恢复原来的状态,进行大量的复制,变成烈性噬菌体,自发裂解几率$10^{-2}\sim 10^{-5}$
      • 可诱导裂解:用化学、物理方法诱导
      • 具有“免疫性”:溶源菌对赋予其溶源性的噬菌体或相关的同源的噬菌体不敏感,对同源噬菌体具有免疫性,对非同源噬菌体没有免疫性
      • 可复愈:自然遗失前噬菌体,但不发生自发裂解和诱导裂解
      • 溶源转变:由于溶源菌整合了温和噬菌体的核酸而使自己产生一些新的生理特征
    • 检验方法:在合适的培养基中培养待测菌样——在对数期进行紫外线照射,诱导原噬菌体复制——进一步培养——过滤培养物,去除活菌体——滤液与指示菌混合、倒平板(或将滤液加到敏感性指示菌的液体培养物中)——观察是否有噬菌斑出现(或使菌液变清)
      • 敏感性指示菌:遇溶源菌裂解后所释放的温和噬菌体会裂解性生活的非溶源性菌株,这些菌株可以从自然界或菌种库中获得

病毒学研究的基本方法

  • 包涵体:感染病毒的宿主细胞内,出现在光学显微镜下可见的大小、形态、数量不等的小体,称为包涵体。在宿主细胞内形成包涵体是病毒的特征,不同的病毒其形成的包涵体具有不同的形态、结构和特性,可用于分类鉴定。
    • 本质:大多数是病毒粒子组成的,少数是细胞对病毒的反应
    • 实践意义:病毒鉴定,临床诊断依据
  • 利用价值:
    • 创造新的花卉品种
    • 防治细菌
    • 抗霜冻噬菌体保护植物免受霜冻的危害
    • 昆虫病毒用于防治害虫
    • 基因工程中重要的载体

亚病毒

  • 类病毒:裸露的,仅含一个单链环状低相对分子质量RNA分子的病原体;能独立侵染寄主,侵入寄主后也能自我复制,不需要辅助病毒;
    • 发现的第一个类病毒是马铃薯纺锤形块茎病类病毒
  • 拟病毒
  • 朊病毒

第五章 微生物的营养和培养基

微生物的营养类型(4),每一种类型的特殊微生物记忆几个,看教材
四种运输营养物质方式比较

Img

微生物的营养物质及其功能

  • 营养(营养作用):微生物细胞从外界环境中摄取化学物质,获得生命活动所需的能量及其结构物质的生理过程
  • 微生物细胞的构成:C、H、O、N、P、S以及其他微量元素。
    • 化学组成最主要的是蛋白质、核酸、多糖和脂质
    • 70%是水
    • 还有有机酸、维生素、激素等有机化合物
    • 大分子可以占到细胞干重的96%

微生物生存所需的六大要素物质

  • 碳源:能提供微生物营养所需碳元素或碳架的营养物质。碳是微生物细胞需要量最大的元素
    • 低分子量的有机物:烃类、醇、羧酸、脂肪酸、糖及其衍生物、杂环化合物、氨基酸和核苷酸(糖类是微生物最广泛利用的碳源,尤其是葡萄糖)
    • 复杂的有机大分子:蛋白质和核酸等
    • 天然含碳物质:牛肉膏、蛋白胨、花生饼粉、糖蜜、石油及其不同的组分
    • 简单的无机含碳化合物:$\mathrm{CO}_2$、$\mathrm{NaHCO}_3$和$\mathrm{CaCO_3}$等($\mathrm{CO}_2$或碳酸盐是自养微生物唯一或主要的碳源,如蓝细菌和硝化细菌)
    • 不同微生物利用的碳源物质的范围有很大不同
      • 有些微生物利用的碳源物质范围很广,有些微生物所能利用的碳源物质种类极其有限。对为数众多的化能异养微生物来说,碳源是兼有能源功能的双功能营养物
  • 能源:是提供微生物生命活动所需能量的物质。
    • 大多数微生物的能源物质是化学物质(有机化合物和无机化合物),少数微生物的能源是光
    • 葡萄糖是常见的一种兼有碳源于能源功能的双功能营养物
    • 光能自养微生物的能源是光,而碳源为$\mathrm{CO}_2$;化能自养微生物的能源为$\mathrm{NH4}^+$、$\mathrm{NO}_2$、单质$\mathrm{S}$、$\mathrm{H}_2$和$\mathrm{Fe}^{2+}$等还原态无机化合物,而碳源是$\mathrm{CO}_2$
  • 氮源:能提供微生物所需氮素的营养物质,是微生物细胞需要量仅次于碳的元素,常用分子氮(比如氮气,也是无机氮)
    • 种类:分子态氮、氨、铵盐和硝酸盐等无机含氮化合物,有尿素、氨基酸、嘌呤和嘧啶等有机氮化合物。固氮菌、根瘤菌和蓝细菌等能利用分子态氮($\mathrm{N_2}$),转化为植物所需的铵盐
    • 功能:提供细胞原生质和其他结构物质中的氮素,一般不作为能源使用。(例外:对亚硝化细菌和硝化细菌来说,$\mathrm{NO_2}$和$\mathrm{NH_3}$是兼有氮源和能源功能的双功能营养物质
  • 三重功能的营养物:对异养生物来说,含有C、H、O、N的有机化合物
  • 无机盐:是除了碳源、氮源和能源外,微生物生长必不可少的另一类营养物质。包括大量元素微量元素
    • 大量元素:P、S、K、Mg、Ca、Na、F等,浓度在$10^{-3}\sim 10^{-4}\mathrm{mol/L}$范围内
    • 微量元素:Co、Zn、Mo、Cu、Mn、Ni、W等,浓度在$10^{-6}\sim 10^{-8}\mathrm{mol/L}$范围内
    • 摄取形式:M、K、Na、Fe、Co、Zn、Mo、Cu、Mn和Ni等金属元素来源于无机盐的阳离子,而P、S等非金属元素极大多数来自于无机盐的盐根
    • 生理功能:
      • 提供微生物细胞化学组成中除C和N外的重要元素
      • 参与并稳定微生物细胞的结构
      • Mg、Cu和Zn是许多酶的激活剂,辅酶NAD是含P化合物,固氮酶含Fe、Mo辅因子
      • 调节和维持微生物生长过程中诸如渗透压、氢离子浓度和氧化还原电位等生长条件
      • 用作某些化能自养细菌的能源物质
  • 生长因子:微生物生长所不可缺少的微量有机物质
    • 种类:维生素、氨基酸、嘌呤碱和嘧啶碱、卟啉及其衍生物、固醇、胺类、C2~C6直链或分支脂肪酸等
    • 复苏促进因子Rpf是迄今为止发现的第一个能使休眠的细菌恢复生长繁殖能力的因子
    • 功能:提供微生物细胞重要化学物质,如蛋白质、核酸和脂质等;作为辅助因子如辅酶和辅基等的组分和参与代谢
    • 在微生物营养中对应微生物的生长因子,自然界还存在着微生物的生长抑制因子
    • 外源性的cAMP(环磷酸腺苷)影响真菌的生长,但依赖于选用的碳源的种类
  • 水:微生物营养中不可缺少的一种物质
    • 功能
      • 是微生物细胞的主要化学组成
      • 是营养物质和代谢产物的良好溶剂
      • 是细胞中各种生物和化学反应得以进行的介质,并参与许多生物化学反应
      • 保证细胞内的温度不会因代谢过程中释放的能量骤然上升
      • 利于生物大分子结构的稳定
    • 存在形式:自由水和结合水。
      • 结合水没有流动性和溶解力,微生物只能利用自由水。
      • 水活度(aW)=P溶液/P纯水(p是渗透压)

微生物营养类型

  • 营养类型:根据能源、碳源和氢供体(氢供体和碳源几乎都是一致有机或无机)的不同,微生物营养类型可分为光能自养型、光能异养型、化能自养型、化能异养型:
    • 光能自养型:利用光为能源,以$\mathrm{CO}_2$为基本碳源,还原$\mathrm{CO}_2$的氢供体是还原态无机化合物($\mathrm{H_2O}$、$\mathrm{H_2S}$或$\mathrm{Na_2S_2O_3}$)。
      • 含有一种或几种光和色素,利用光和色素进行光合作用
      • 蓝细菌含叶绿素
      • 紫硫细菌与绿硫细菌含菌绿素
    • 光能异养型:以光为能源,以有机碳化合物(甲酸、乙酸、甲醇、异丙醇、丙酮酸、乳酸等)作为碳源与氢供体营光合生长。
      • 紫色非硫细菌具有利用甲醇作为唯一碳源进行光合生长的能力
      • 阳光细菌利用丙酮酸与乳酸作为唯一碳源光合生长
    • 化能自养型既不需要光也不需要有机营养物质,而是利用无机化合物氧化过程中释放出的能量,以$\mathrm{CO}_2$为碳源生长(氧化无机物释放能量)
      • 化能自养菌能生活在完全无机的环境中,硫化细菌、硝化细菌、铁细菌、氢细菌等都属于此营养类型
        Img
    • 化能异养型以有机碳化合物为能源,碳源和氢供体也是有机碳化合物,大多数微生物属于化能异养型。有机碳化合物是兼有能源与碳源功能的双重营养物
      • 根据营养物质是来自死亡或腐烂的生物物质,还是来自活的有机体又可分为腐生菌与寄生菌两种类型
        • 专性腐生菌:只能从土壤和水中而不能从宿主身上获得营养物质的腐生菌
        • 专性寄生菌:必须从活细胞或组织中获得营养物质的,如立克次氏体、衣原体和病毒等
        • 兼性寄生菌:以腐生为主、兼营寄生的兼性寄生菌,在适宜的条件下可致病
        • 兼性腐生菌

四大营养类型微生物的划分是相对的,很多情况下取决于生长环境,许多微生物是兼性营养类型的,体现了微生物对环境很强的适应能力

营养物质进入微生物细胞

  • 自由扩散:
    • 主要水、无机盐、水溶性小分子等
    • 运输速率慢,非主要方式,水运最快
  • 促进/协助扩散:
    • 糖和氨基酸等
    • 借助细胞膜上特异性结合蛋白(类似的物质有抑制作用)
  • 主动运输:糖类、无机离子、氨基酸和有机酸
    • 微生物吸收营养物质的主要方式
    • 速率较快
  • 基团转位:物质在运输的同时由于受到化学修饰而源源不断进入细胞的一种运输方式。主要存在于厌氧菌和兼性厌氧细菌中
    • 逆浓度梯度
    • 需要能量
    • 特异性载体蛋白参与
    • 载体蛋白本身在运输前后发生变化
    • 运输物质:葡萄糖(大肠杆菌中磷酸化修饰)、甘露糖、乳糖、果糖、N-乙酰葡萄胺和半乳糖苷等糖及其衍生物外,还有嘌呤、嘧啶和脂肪酸等
  • 对于同种物质,不同微生物的运输方式可能不同(葡萄糖在大肠杆菌中集团转位,酵母菌中促进扩散)
  • 重要的表,背过
    image-20230422003505321

培养基

关注常用的培养基成分
培养基是是为人工培养微生物而制备的、提供微生物以合适营养条件的基质。

  • 制备培养基的基本原则:
    • 有的放矢:根据培养对象目的制备培养基
      • 根据培养对象:
        • 细菌:牛肉膏蛋白胨培养基,LB培养基
        • 真菌:查氏合成培养基,PDA培养基
        • 放线菌:高氏一号培养基
        • 酵母菌:豆汁、麦芽汁
      • 根据培养目的:
        • 为了获取微生物细胞或是作为种子培养基:营养成分宜丰富些,C/N比低。
        • 为了获取代谢产物或是作为发酵培养基:C/N比应该要高些,即所含氮源宜低些。
        • 实验室一般培养:使用营养丰富、取材与制备均较方便的天然培养基。
        • 代谢遗传研究:合成培养基
    • 营养协调:培养基基应含有维持微生物最适生长所必须的一切营养物质,但的营养物质浓度与配比要合适
      • 各种营养要素的比例大体是:水﹥碳源﹥氮源﹥P、S﹥K、Mg﹥生长因子。
      • 碳源与氮源的比例(即C/N比)尤为重要。C/N比是指培养基所含碳源中的碳原子摩尔数与氮源中的氮原子摩尔数之比。不同微生物要求不同的C/N比。如细菌和酵母菌培养基,通常用较低的C/N。
      • 还须注意培养基中无机盐的量以及它们之间的平衡。
      • 添加生长因子时也要注意有适当的比例
    • 条件适宜:创造尽可能适宜的生长条件(pH、渗透压、氧气、二氧化碳)
      • PH:
        • 在培养基中加入缓冲液来保持pH相对稳定
        • 在培养基中加入指示剂便于持续观察pH变化
      • 渗透压:
        • 绝大多数在等渗溶液中生长
        • 嗜盐嗜渗透压菌可以提高渗透压
    • 经济节约
    • 无菌状态
      • 按配方制备好的培养基必须经过灭菌处理,通常采用的灭菌方法有高压蒸汽灭菌法过滤灭菌法
  • 培养基的种类及其应用
    • 按培养微生物的类群与营养类型

    • 按对培养基化学成分的了解程度分类

      • 合成培养基:通过顺序加入准确称量的高纯化学试剂,如无机盐和有机化合物,与蒸馏水配制而成的,所含成分的量,包括微量元素在内是确切知道的
        • 优点:化学成分确定并精确定量,实验的可重复性高,定量要求高的工作中
        • 缺点:价格较贵,配置较繁,且微生物生长比较一般
        • 培养放线菌的淀粉硝酸盐培养基(即高氏一号培养基);培养真菌的蔗糖硝酸盐培养基(即察氏培养基)等
      • 天然培养基:采用动植物组织或微生物细胞或他们的提取物或粗消化产物配制而成。配置这类培养基常用牛肉膏、蛋白胨、酵母膏、麦芽汁、玉米粉、马铃薯、胡萝卜、米饭、牛奶和血清等营养价值高的物质
        • 优点:取材方便,营养丰富,且配置方便
        • 缺点:所用物质的成分不稳定,因而营养成分难以控制,实验结果的重复性差。适合于一般实验室中的菌种培养、发酵工业中生产菌种的培养和某些发酵产物的生产等
      • 半合成培养基:指一类用纯化试剂和天然物质配置成的培养基
        • 培养真菌的马铃薯蔗糖培养基。
    • 按培养基外观的物理状态分类

      • 固体培养基
        • 可溶解固体培养基:加入凝固剂如琼脂制成的培养基,其他的有:血琼脂、无机硅胶、瓜尔胶、黄原胶等
          • 凝固剂条件:
            • 不被微生物分解利用
            • 在微生物生长温度范围内保持固体状态
            • 凝固点温度对微生物无害
            • 不因灭菌而破坏
            • 透明度好、配置方便、价格低
        • 不可溶解固体培养基:直接用天然固体状物质或在营养基质上覆盖滤膜等制成
      • 半固体培养基:一般可在液体培养基中加入约0.5%-1%的琼脂制成柔软的浆糊半固体培养基;
        • 细菌的动力观察
      • 液体培养基:一类呈液体状态的培养基,在实验室和生产实践中用途广泛,尤其适用于大规模的培养微生物
        • 牛肉膏蛋白胨培养基(牛肉膏+蛋白胨+NaCl+水)
        • 一般用于细菌培养
    • 按培养基的功能

      • 基本培养基:含有一般微生物生长繁殖所需基本营养成分的培养基,也称基础培养基,如牛肉膏蛋白胨培养基,营养琼脂培养基
      • 加富培养基:在基本培养基中加入某些特殊需要的营养成分,如血清、血红蛋白或某些特殊的生长因子
      • 选择培养基:通过加入不妨碍目的微生物生长而抑制非目的微生物生长的物质以达到选择目的的培养基,广泛用于菌种筛选等领域。常用物质有染料和抗生素
      • 鉴别培养基:是一类在培养基中添加某种化学物质而将目的或对象微生物与同一培养基中其他微生物区别开的培养基。用来鉴别的特性包括:菌落的大小或颜色、培养基颜色的变化以及是否产生气体或沉淀等
      • 选择压力培养基:与选择培养基类似,多用于基因工程
      • 极端微生物培养基:用于培养生活在极端环境的微生物

第六章 微生物的代谢

初级代谢次级代谢定义与特点,二者关系;
表6-3记住,以及乳酸菌是一类菌

  • 新陈代谢:一般泛指生物与周围环境进行物质交换和能量交换的过程。发生在活细胞中的各种分解代谢和合成代谢的总和
    • 新陈代谢=分解代谢+合成代谢
    • 分解代谢(异化):指复杂的有机物分子通过分解代谢酶系的催化,产生简单分子、腺苷三磷酸(ATP)形式的能量和还原力的作用
    • 合成代谢(同化):指在合成代谢酶系的催化下,由简单小分子、ATP形式的能量和还原力一起合成复杂的大分子的过程

微生物的能量代谢

需要知道ATP相关得结论,不要求过程

  • 生物氧化的定义:就是发生在活细胞内的一系列产能性氧化反应的总称。
    • 过程:底物脱氢(或脱电子)作用——氢(或电子)的传递——最后氢受体接受氢(或电子)
    • 功能:产能(ATP);产还原力【H】小分子中间代谢物
    • 类型:呼吸和发酵
      • 呼吸:受氢过程中最终受氢体为氧或无机氧化物的产能反应
      • 发酵:受氢过程中最终受氢体为某一中间代谢物的产能反应
  • 底物脱氢的四条途径:EMP、HMP、ED和PK途径
    • EMP途径,又称糖酵解途径,是绝大多数微生物共有的一条基本代谢途径;对于专性厌氧微生物,EMP途径是产能唯一的途径
      • 预备性反应:
        • 葡萄糖$\stackrel{\mathrm{ATP->ADP}}{\Longrightarrow}$葡糖-6-磷酸${\Longrightarrow}$果糖-6-磷酸$\stackrel{\mathrm{ATP->ADP}}{\Longrightarrow}$果糖-1,6-二磷酸$\Longrightarrow$甘油醛-3-磷酸($\leftrightharpoons$磷酸二羟丙酮)
      • 氧化还原反应:
        • 甘油醛-3-磷酸$\stackrel{\mathrm{NAD^+}->\mathrm{NADH+H^+}}{\Longrightarrow}$1,3二磷酸甘油酸$\stackrel{\mathrm{ADP->ATP},底物水平磷酸化}{\Longrightarrow}$3-磷酸甘油酸$\Longrightarrow$2-磷酸甘油酸$\Longrightarrow$磷酸烯醇式丙酮酸$\stackrel{\mathrm{ADP->ATP},底物水平磷酸化}{\Longrightarrow}$丙酮酸
      • 1分子葡萄糖可降解成2分子丙酮酸;消耗2分子ATP,产生4分子ATP,净得2分子ATP;产生2分子NADH
      • 特点:
        • 基本代谢途径,产能效率低,提供多种中间代谢物作为合成代谢原料
        • 有氧时,与三羧酸循环(TCA)连接
        • 无氧时,丙酮酸及其进一步代谢产物乙醛被还原成各种发酵产物,与发酵工业有密切关系
      • 意义:可为细胞生命活动提供ATP和NADH

呼吸链(电子传递链)

由一系列氧化还原势不同的氢传递体组成的一组链状传递顺序。在氢或电子的传递过程中,通过与氧化磷酸化反应发生偶联,就可产生ATP形式的能量

  • 部位:原核生物发生在细胞膜上,真核生物发生在线粒体内膜上

  • 组成:电子传递是从$\mathrm{NAD}$到$\mathrm{O_2}$,电子传递链中的电子传递体主要包括烟酰胺脱氢酶、黄素脱氢酶、CoQ、细胞色素和一些铁硫蛋白等

    • 烟酰胺脱氢酶类:以$\mathrm{NAD^+}$或$\mathrm{NADP^+}$为辅酶
    • 黄素蛋白类:以$\mathrm{FMN}$或$\mathrm{FAD}$为辅基
    • 铁硫蛋白(Fe-S)类:传递电子的氧化还原载体,辅基为分子中的含铁硫的中心部分。存在于呼吸链中几种酶复合体中,参与膜上的电子传递
    • 泛醌(辅酶Q)类:脂溶性氢载体。广泛存在于真核生物线粒体内膜和G-菌的细胞膜上;G+菌和某些G-菌则含甲基萘醌。功能:收集来自呼吸链各种辅酶和辅基所输出的氢和电子,并将它们传递给细胞色素系统
    • 细胞色素系统:位于呼吸链后端,功能是传递电子。原核生物细胞色素种类比真核生物种类多,有a/a1/a2/a4/b/b1/c/c1/c4/d/o等
  • 功能:传递电子;将电子传递过程中释放的能量合成ATP

image-20230422170252742
  • 原核生物呼吸链的特点:
    • 电子供体种类多
    • 电子受体种类多
    • 存在于细胞膜上
    • 呼吸链中的组分与含量多变,在不同的种间,不同的环境条件下是变化的
    • 有分支呼吸链的存在,表现在来自不同的底物的还原力进入呼吸链时有不同的分支,不同的微生物细胞色素系统有别

呼吸方式

  • 有氧呼吸:以分子氧为最终受体的生物氧化。
    第一阶段,葡萄糖分解为2分子丙酮酸,由EMP、HMP和ED途径完成;第二阶段,丙酮酸通过三羧酸循环彻底分解,形成$\mathrm{CO_2}$和$\mathrm{H_2O}$,产生大量ATP

  • 无氧呼吸:呼吸链末端的氢受体为外源无机氧化物(个别为有机氧化物)的生物氧化,是一种无氧条件下进行的产能效率较低的特殊呼吸

  • 发酵:脱氢过程产生还原型氢供体——$\mathrm{NADH+H^+}$和$\mathrm{NADPH+H^+}$产生,但产生的量并不多,如不及时使它们氧化再生,糖的分解产能将会中断,这样微生物就以葡萄糖分解的过程中形成的各种中间产物为氢(电子)受体来接受$\mathrm{NADH+H^+}$和$\mathrm{NADPH+H^+}$的氢(电子),于是产生了各种各样的发酵产物

    • 发酵产物种类:乙醇、乳酸、丙酸、丁酸、混合酸、丁二醇及乙酸等
    • 由EMP途径中丙酮酸起始的发酵:同型乙醇发酵,同型乳酸发酵,混合酸发酵,2,3-丁二醇发酵等
    • 同型乙醇发酵:发酵产物中仅有乙醇一种有机分子的酒精发酵
    • 异型乙醇发酵:除主产物乙醇外,还存在有其他有机物分子的发酵,如HMP途径的乙醇发酵
    • 同型乳酸发酵:在糖的发酵中,产物只有乳酸的发酵
    • 异型乳酸发酵:发酵产物除乳酸外,还有乙醇与$\mathrm{CO_2}$,如经HMP途径
  • 化能自养微生物的生物氧化和产能

    • 化能自养微生物能量代谢的特点:

      • 无机底物的氧化直接与呼吸链发生联系
      • 呼吸链的组分多样化,无机底物脱氢后,电子进入呼吸链的部位:电子可以从多处进入呼吸链,这是由于不同的氧化还原电位造成的
      • 产能效率低
    • 氢细菌:好氧,氧化$\mathrm{H_2}$同化$\mathrm{CO_2}$,用所产成的ATP还原$\mathrm{CO_2}$构成细胞物质$\mathrm{[CH_2O]}$和生长

    • 硝化细菌:能利用还原无机氮化合物进行自养生长。

    • 反硝化细菌:化能异养微生物,兼性厌氧,无氧条件下利用硝酸盐作氢受体,将其还原成$\mathrm{NO->N_2}$

  • 光能微生物的能量代谢

    • 对光能微生物而言,可通过光合磷酸化将光能转变为化学能储存于ATP中
    • 根据是否产生氧气,可将光合细菌分为产氧光合细菌和不产氧光合细菌
    • 除蓝细菌具有叶绿素a,能进行水的裂解进行产氧的光合作用外,其他细菌没有叶绿素,只有菌绿素或其他光合色素,只能裂解无机物或简单有机物,进行不产氧的光合作用

微生物特有的合成代谢途径

  • 肽聚糖的合成与青霉素抗菌机理
    • 肽聚糖:绝大多数原核微生物细胞壁所含有的独特成分,在细菌的生命活动中有重要功能,尤其是许多重要抗生素如青霉素、头孢霉素、万古霉素、环丝氨酸和杆菌肽等呈现其选择毒力的物质基础,在抗生素治疗上有特别意义的物质
      • 肽聚糖由三部分组成:
        • 聚糖链:由N-乙酰葡糖胺和N-乙酰胞壁酸两种糖衍生物通过$\beta$-1,4-糖苷键重复交替连接成
        • 短肽:由四个氨基酸分子连接而成,借肽键连接在聚糖骨架链的N-乙酰胞壁酸的乙酰基上
        • 肽桥:通过肽桥使相邻两条聚糖链上的短肽互相交联形成高强度的网状结构;氨基端与甲肽尾第4个氨基酸相连,羧基端与乙肽尾第3个氨基酸相连
      • 合成特点:
        • 合成机制复杂,步骤多,且合成部位几经转移
        • 合成过程中需要有能够转运于控制肽聚糖结构元件的载体(UDP和细菌萜醇)参与
      • 合成过程:
        • 细胞质阶段:合成派克核苷酸
        • 细胞膜阶段:合成肽聚糖单体
        • 细胞膜外阶段:交联作用形成肽聚糖
    • 抗生素对肽聚糖的抑制作用:
      • $\beta$内酰胺类抗生素(青霉素与头孢菌素):青霉素只对生长繁殖的细菌有抑制作用
      • 万古霉素

微生物的次级代谢

次级代谢的命名均是由对人的意义来命名,体现了次级代谢产物对人类的重要意义(疾病、经济发展。。)

  • 次级代谢:微生物在一定的生长时期,以初级代谢产物为前体,合成一些对微生物的生命活动无明确功能的物质的过程。
  • 次级代谢产物:大多是分子结构比较复杂的化合物,可分为抗生素、激素、生物碱、毒素及维生素等类型

第七章 微生物的生长及其控制

微生物的纯培养(课上重奖),两种培养方式看课本,四个生长时期重点掌握

  • 生长:微生物细胞吸收营养物质,进行新陈代谢,当同化作用>异化作用时,生命个体的重量和体积不断增大的过程
  • 繁殖:生命个体生长到一定阶段,通过特定方式产生新的生命个体,即引起生命个体数量增加的生物学过程
  • 个体生长:微生物细胞个体吸收营养物质,进行新陈代谢,原生质与细胞组分的增加为个体生长
  • 群体生长:群体中个体数目的增加,可以用重量、体积、密度或浓度来衡量
    提到微生物的生长,指的是群体生长( = 个体生长+个体繁殖)

微生物生长的研究方法

  • 微生物的培养方法:
    • 实验室培养法:
      • 固体培养法:
        • 好氧菌培养: 培养在培养平板表面置于有氧环境下
        • 厌氧菌培养:高层琼脂柱、厌氧培养皿、厌氧罐、厌氧手套箱
      • 液体培养法
        • 好氧菌培养:试管培养、三角瓶(摇瓶)、台式发酵罐
        • 厌氧菌培养:一般不需要额外措施
    • 生产实践中的培养微生物装置
      • 固体培养法:
        • 好氧菌培养:曲法培养(酒曲)
        • 厌氧菌培养:
      • 液体培养法:发酵罐

纯培养(重要)

从一个细胞或一群相同的细胞经过培养繁殖而得到的后代,产物为纯培养物,反之为混合培养物。(&菌落的概念)

  • 常用方法

    • 稀释倒平板法:
      • 底物纯净无菌
    • 平板涂布分离法
    • 平板划线分离法:用接种环沾取少许待分离的材料,在无菌平板表面进行划线,微生物细胞数量将随着划线次数增多而减少,并逐渐分散开来。若划线适宜,微生物能一一分散,经培养后可在平板表面得到单菌落。
      • 特点:快速、方便
      • 连续划线适用于浓度较小的样品,分区划线适用于浓度较大的样品
    • 液体稀释法:适合于细胞较大的微生物
    • 选择性培养分离法:为了从混杂的微生物群体中分离出某种微生物,可以根据该微生物的特点,包括营养、生理、生长条件等采用选择培养的方法进行分离
      • 一个大格0.1立方毫米
      • 无法区分活细胞,记录的是总细胞数
      • 适用于较大细胞(血球、酵母菌),不适用于细菌等小细胞
      • 不适于运动较为活跃的细胞计数
    • 比浊法:细胞浓度与浑浊度成正比,600nm波长下测定光密度
  • 纯培养生长的测定方法

    • 微生物细胞数目的检测法:
      • 总细胞计数法(血球计数板、比浊法)
        • 血球计数板法适用于个体较大细胞或颗粒,不适于细菌等较小个体的细胞。特点是快速准确
        • 比浊法:在600nm波长下测定菌悬液的光密度,可反映出菌液的浓度
      • 活细胞计数法(活菌计数法、薄膜过滤计数法)
        • 平板菌落计数法(最常用的活菌计数法):将适当稀释的菌液倾注或涂布在平板表面,经保温培养后,以平板上出现的菌落数乘以稀释度就可以计算出原菌液的含菌量
        • 薄膜过滤计数法:常用于测定含菌量较少的空气和水中的微生物数目。将定量样品通过薄膜过滤,菌体被阻留在滤膜上,取下滤膜进行培养,然后计算菌落数,可求出样品中所含菌数
    • 微生物生长量和生理指标测定法:湿重法,干重法,碳、氮含量法,其他生理指标
      • 干重法:将一定量的菌液中的菌体通过离心或过滤分离出来,然后烘干、称重。一般干重为湿重的10%-20%,而一个细菌细胞一般重约$10^{-12}-10^{-13}$g。该方法适合菌浓度较高的样品
      • 生理指标法:
        • 测含氮量:蛋白质是细胞的主要物质,含量稳定,而氮是蛋白质的主要成分,通过测含氮量就可推知微生物的浓度

微生物的生长规律

生长曲线

  • 微生物的群体生长
    • 无分支单细胞微生物的群体生长特征
      • 无分支单细胞微生物主要包括细菌和酵母菌,其群体生长是以群体中细胞数量的增加来表示的
      • 由一个细胞分裂成为两个细胞的时间间隔称为世代
      • 一个世代所需的时间就是代时
        • 代时也就是群体细胞数目扩大一倍所需的时间,也成为倍增时间
        • 代时能够反映细菌的生长速率,代时短速率快,代时长速率慢;
        • 是微生物菌种的一个重要特征
          • 同种微生物一定条件下代时恒定,且不同种之间变化大
          • 不同条件下代时长短不同
      • 每经过一个代时,细胞数目就增加一倍,呈指数增加,称为指数生长,这就是单细胞群体生长的特征
      • 指数生长可用下式表示:$$B_t=B_0\times 2^n$$,式中$$B_0为起始细胞数目$$ $$B_t为指数生长某个时刻$t$时的细胞数目$$ $$n为世代数$$
      • Img
        Img
    • 无分支单细胞微生物的群体生长曲线
      • 生长曲线代表了细菌在新的环境中从开始生长、分裂直至死亡的整个动态变化过程
      • image-20230422231300161
      • 时期的划分:按照生长速率常数的不同
      • 迟缓期:活菌数没增加,曲线平行于横轴
        • 特点:
          • 生长速率常数等于0
          • 细胞形态变大或增长
          • 细胞内RNA特别是rRNA含量增高
          • 合成代谢活跃(核糖体、酶类、ATP合成加快),易产生诱导酶
          • 对外界不良条件敏感,如氯化钠浓度、温度、抗生素等化学药物
        • 原因:适应新的环境条件,合成新的酶,积累必要的中间产物
        • 影响迟缓期长短的因素
          • 菌种:繁殖速度快时迟缓期短
          • 接种物菌龄:用对数生长期的菌种接种时,迟缓期短,可能检查不到迟缓期;
          • 接种量:姐重量大可缩短甚至消除迟缓期
          • 接种物受到损伤
          • 培养基成分:
            • 营养丰富的天然培养基 < 合成培养基
            • 接种后培养基成分变化较大时会延长迟缓期
        • 发酵工业上,尽量缩短迟缓期:增加接种量,采用对数生长期的健壮菌种,调整培养基的成分,选用繁殖快的菌种
        • 食品工业上,尽量在此期进行消毒或灭菌
      • 对数期:细胞数目以几何级数增加,其对数与时间呈直线关系
        • 特点:
          • 生长速率常数最大,代时最短
          • 细胞进行平衡生长,菌体大小、形态、生理特征等比较一致
          • 代谢最旺盛
          • 细胞对理化因素较敏感
        • 影响因素:菌种、营养成分、营养物浓度、培养温度
        • 应用意义:
          • 生产上用作接种的最佳菌龄(此时期菌种健壮,增殖噬菌体的最适菌龄)
          • 发酵工业上尽量延长该期,以达到较高的菌体密度
          • 食品工业上尽量使有害微生物不能进入此期
          • 是生理代谢及遗传研究或进行染色、形态观察等的良好材料
      • 稳定期
        • 特点:
          • 新增值的细胞数与老细胞的死亡数几乎相等,微生物的生长速率处于动态平衡,培养物中的细胞数目达到最高值
          • 细胞分裂速度下降,开始积累内含物,产芽苞的细菌开始产芽苞
          • 对于发酵生产来说,一般在稳定期的后期产物累积达到高峰,是最佳的收获时期
        • 产生原因:营养物尤其是生长限制因子的耗尽;营养物比例失调;有害代谢废物的积累;物化条件不合适
        • 应用意义:
          • 发酵生产形成的重要时期(抗生素、氨基酸等),生产上尽量延长此期(补充营养物质,调pH,调温度)
          • 稳定期细胞数目及其积累产物达到最高
      • 衰亡期
        • 特点:
          • 细胞死亡数增加,死亡数大大超过新增殖的细胞数,群体中的活菌数目急剧下降,出现负生长
          • 细胞内颗粒更明显,细胞出现多形态、畸形或衰退形,芽苞开始释放
          • 因菌体本身产生的酶及其代谢产物的作用,使菌体死亡、自溶等,发生自溶的菌生长曲线表现为向下跌落的趋势
        • 产生原因:生长条件的进一步恶化,使细胞内的分解代谢大大超过合成代谢,继而导致菌体的死亡

微生物生长的控制

  • 灭菌:采用强烈的理化因素使任何物体内外部的一切微生物永远丧失其生长繁殖能力的措施
  • 消毒:采用较温和的理化因素,仅仅杀死物体表面或内部的一部分对人体有害的病原菌,而对被处理物体基本无害的措施
  • 防腐:利用理化因素完全抑制霉腐微生物的生长繁殖,从而达到防止物品发生霉腐的措施
  • 化疗:即化学治疗,利用具有高度选择毒力的化学物质抑制宿主体内病原微生物的生长繁殖,从而达到治疗该病的一种措施
  • 物理方法控制微生物的生长:
    • 利用高温进行灭菌:最常用的物理方法,包括干热灭菌法与湿热灭菌法
      • 干热灭菌法:
        • 焚烧法:将被灭菌物品在火焰中燃烧,适合无经济价值的物品灭菌及不怕烧的实验器具
        • 干燥热空气灭菌法:将物品放入烘箱内,升温至150°C-170°C,维持1-2小时。适用于玻璃、陶瓷、金属物品的灭菌
      • 湿热灭菌法:温度低,时间短,灭菌效果高
        • 原因:
          • 菌体内含水量越高,蛋白质越容易凝固变性
          • 蒸汽冷凝会放出潜热,迅速提高菌体温度
          • 饱和水蒸汽穿透力强
      • 高压蒸汽灭菌法:利用水的沸点随水蒸汽压力的增加而上升,以达到100°C以上高温灭菌的方法。适用于耐高温物品,玻璃仪器、含水或不含水的物品
      • 煮沸消毒法
      • 巴斯德消毒法(巴氏消毒法):用较低的温度来杀死其中的病源微生物,这样既保持食品的营养风味,又进行了消毒
        • 该法一般将带消毒的液体食品置于62°C处理30min,然后迅速冷却,即可达到消毒目的
      • 间歇灭菌法:循环三次以上可保证彻底灭菌的目的
    • 过滤除菌法:采用滤孔比细菌还小的筛子或滤膜做成各种过滤器,当空气或液体流经筛子或滤膜时,微生物不能通过滤孔而被阻留在一侧,从而达到灭菌的目的。但不能去除病毒
      • 应用:对含酶、血清、维生素和氨基酸等热敏物质除菌
    • 其他:低温(只是抑制生长),辐射(紫外线)
  • 控制有害微生物的化学因素:
    • 消毒剂:可以抑制或杀灭微生物,但对人体也可能产生有害作用的化学试剂。主要用于物体表面、器械、排泄物和环境中
    • 防腐剂:可以抑制或阻止微生物生长,但对人体或动物体的毒性较低的化学试剂。主要用于肌体表面、食品、饮料药品
    • 但现在消毒剂和防腐剂间的界限已并不很严格
    • 消毒防腐剂的作用机理一般有三种方式:
      • 使微生物蛋白质凝固变性,发生沉淀,如酒精
      • 破坏菌体的酶系统,影响菌体代谢,如过氧化氢等
      • 降低微生物表面张力,增加细胞膜的通透性,使细胞发生破裂或溶解,如来苏儿等酚类物质
    • 化学治疗剂:能够特异性地作用于某些微生物并具有选择毒性的化学试剂,它们与非特异性的化学试剂相比对人体几乎没有毒性或毒性很小,可用作治疗微生物引起的疾病
      • 抗代谢药物(人工合成):有些化合物在结构上与生物体所必需的代谢物很相似,以至于可以和特定的酶结合,从而阻碍酶的功能,干扰代谢的正常进行;常考磺胺类药物
        • 机理:作为菌细胞基本生长因子的竞争性抑制剂而阻止微生物对生长因子的利用,因而可以抑制微生物的生长
          Img
      • 抗生素(微生物所产生):微生物在其生命过程中所产生的一类低分子量代谢产物,在很低浓度下就能抑制或杀死其他微生物的生长
        • 最小抑制浓度:表示抗生素的抗菌活性,单位是ug/mL
        • 抗菌谱:抗生素的作用对象有一定范围,这种作用范围称该抗生素的抗菌谱
        • 作用机制:
          • 抑制细胞壁的合成(青霉素)
          • 破坏细胞膜功能(多粘菌素)
          • 抑制蛋白质合成(氯霉素、四环素、链霉素)
          • 干扰核酸代谢(磺胺类、利福霉素、新生霉素、丝裂霉素、灰黄霉素)

Img

  • 微生物的耐药性:也称抗药性,微生物能够抵抗化学药物作用而正常生长的能力;会导致化疗效果下降
    • 原因:(配合书上例子背诵)
      • 菌体内产生了分解药物的酶;比如金黄色葡萄球菌产生β-内酰胺酶
      • 改变细胞膜的透性而导致抗药性
      • 与抗生素结合的有效部位发生变异
      • 泵出机制
      • 改变代谢途径
    • 阻止耐药性途径:
      • 少用抗生素
      • 第一次用药剂量要足,有些抗生素要首剂加倍
      • 避免在同一时期或长期多次使用同种抗生素
      • 不同抗生素(或其他药物)混合使用
      • 对现有抗生素改造
      • 筛选新抗生素
  • 由非染色体所编码的药物抗性是由于细菌整合了带有药物抗性基因的质粒所引起的,这类质粒被称为R质粒

第八章 微生物的遗传与变异

  • 遗传:子代与亲代相似
  • 变异:子代与亲代间的差异,是生命的最本质特性之一
  • 遗传型:生物的全部遗传因子所携带的遗传信息
  • 表型:具有一定遗传型的个体,在特定环境条件下通过生长发育所表现出来的外表特征和内在特征的总和
  • 遗传型+环境条件$\stackrel{代谢,发育}{\longrightarrow}$表型

微生物遗传物质的类型

  • 类型:核染色体和染色体外的遗传因子(质粒、线粒体DNA等)
  • 基因:生物中具有遗传效应核酸序列(DNA或RNA),是遗传的基本单位
  • 基因产物:编码多肽的mRNA和非编码RNA
    • 非编码RNA:tRNA、rRNA、microRNA、snRNA、gRNA等
  • 微生物的核染色体:
    • 原核生物的基因组:
      • 染色体为双链环状的DNA分子(单倍体
      • 基因组上遗传信息具有连续性:基因数基本接近由它的基因组大小所估计的基因数。编码蛋白的基因不含内含子,遗传信息是连续的。但细菌和古生菌的rRNA和tRNA中也发现有内含子序列
      • 功能相关的结构基因组成操纵子结构
      • 结构基因的单拷贝及rRNA基因的多拷贝
      • 基因组的重复序列少而短
    • 真核生物的基因组:
      • 典型的真核染色体结构
      • 大多数基因含内含子序列
      • 有大量的重复序列(许多不参与转录)
      • 没有明显的操纵子结构

image-20230423004040388

  • 微生物的染色体外遗传因子:
    • 细菌质粒:质粒是一种独立于微生物细胞染色体外,能进行自主复制的遗传因子
      • 质粒所含的基因对宿主细胞一般是非必须的,在某些特殊条件下,质粒有时能赋予宿主细胞以特殊的机能,从而使宿主得到生长优势
      • 结构特点:可双链也可单链,可环状也可线性,可DNA也可RNA,既存在于原核微生物也存在于真核微生物。对于细菌质粒,通常是一种共价闭环DNA分子且通常以超螺旋形式存在于细胞中
      • 类型:
        • 严谨型质粒:复制受细胞核控制,与染色体DNA复制相伴随,一般一个寄主细胞内只有少数几个(1-5)拷贝
        • 松弛型质粒:复制不受细胞核控制,在染色体DNA复制停止的情况下仍可以进行复制,在细胞内的数量可以达到10-200个或更多
      • 基因工程的应用:
        • 优点:体积小,易分离和操作;环状,稳定;独立复制;拷贝数多;存在标记位点,易筛选
      • 主要种类:F因子/质粒,R因子/质粒与Col因子等
        • F质粒:最早发现的一种质粒。F因子的特性为可促进供体菌向受体菌传递染色体DNA或质粒
        • R质粒:与抗药性相关

细菌的基因转移和重组

  • 转化:原核微生物通过转化、转导、接合等形式进行遗传物质转移和基因重组
    • 自然转化:受体细胞直接吸收了来自供体细胞的DNA片段,并把它整合到自己的基因组中,细胞部分遗传性状发生变化的现象叫作转化
    • 条件:建立了感受态的受体细胞(人工感受态可以通过$\mathrm{CaCl_2}$处理大肠杆菌),外源游离DNA分子(转化因子)
    • 过程:感受态细胞的制备——DNA的结合与摄取
    • 本质:细胞壁和细胞膜的结构发生改变,出现许多间隙,致使通透性增加,DNA分子便得以进入细胞内
    • 人工$\mathrm{CaCl_2}$诱导可用于大肠杆菌、葡萄球菌以及其他一些G-菌的转化。其转化进去的质粒可以整合到宿主染色体,也可呈游离状态

微生物的突变

  • 突变:指染色体数量、结构与组成等发生改变,分为基因突变和染色体畸变
  • image-20230423005916355
  • 遗传型变异(基因变异、基因突变):生物体在外因或内因的作用下,遗传物质的结构或数量发生改变
    • 特点:
      • 在群体中以极低的几率出现($10^{-5}\sim 10^{-10}$)
      • 变化后形成的新性状是稳定的,可遗传的
    • 遗传密码的破译:
      • 方向:5’端到3’端
      • 61个是编码氨基酸的密码子,UAA(赭石密码子)、UGA(乳石密码子)和UAG(琥珀密码子)是3个终止密码子,不代表任何氨基酸
  • 基因突变率:每一世代中发生某一性状突变的几率$10^{-6}\sim 10^{-9}$,病毒基因突变率更高($10^{-4}\sim 10^{-8}$)
  • 自发突变:无人为因素下的低频率突变,由于DNA复制错误或DNA损失
  • 诱发突变:
    • 物理诱变剂:射线如紫外线,X射线,$\gamma$射线,快中子
    • 化学诱变剂:碱基类似物(5—氟尿嘧啶、5-氨基尿嘧啶等);与碱基反应的物质(亚硝基胍、亚硝酸、烷化剂、氮芥等);在DNA分子中插入或缺失碱基(丫啶类物质、丫啶氮芥衍生物)
    • 生物诱变剂:噬菌体,转座子

菌种的退化、复壮和保藏

  • 影响微生物菌种稳定性的因素:变异、污染、死亡

  • 退化:菌种在培养或保藏过程中,由于自发突变的存在,出现某些原有优良生产性状的劣化、遗传标记的丢失等现象,称为菌种的衰退

    • 常见的退化现象:
      • 菌落和细胞形态的改变
      • 生长速度缓慢,产孢子越来越少
      • 抵抗力、抗不良环境能力减弱
      • 代谢产物生产能力或对宿主寄生能力下降
    • 防止衰退的措施:
      • 减少传代次数
      • 创造良好的培养条件
      • 经常进行纯种分离,并对相应的性状指标进行检查
      • 采用有效的菌种保藏方法
  • 复壮:使衰退的菌种恢复原来优良性状

    • 狭义的复壮:在菌种已发生退化的情况下,通过纯种分离和生产性能测定等方法,从退化的群体中找出未退化的个体,以达到恢复该菌原有典型性状的措施
    • 广义的复壮:在菌种的生产性能未退化前就有意识的经常进行纯种的分离和生产性能测定工作,以期菌种的生产性能逐步提高。实际上是利用自发突变(正变)不断地从生产中选种
    • 复壮措施:
      • 纯种分离
      • 淘汰已退化的个体
      • 采用有效的菌种保藏方法
  • 保藏:

    • 目的:在一定时间内使菌种不死、不变、不污染,以供研究、生产之用
    • 基本原则:
      • 挑选典型菌种的优良纯种
      • 尽量使用分生孢子、芽苞等休眠体
      • 创造有利于休眠的保藏环境(如干燥、低温和缺氧等)
      • 尽可能多的采用不同的方法保藏一些比较重要的微生物菌株
    • 基本原理:根据微生物的生理生化特性,人为的创造条件,使微生物处于代谢不活泼,生长繁殖受到抑制的休眠状态,以减少菌种的变异。一般可以通过降低培养基营养成分、低温、干燥和缺氧等方法,达到防止突变、保持纯种的目的
    • 常用方法:
      • 冷冻干燥保藏:需要低温保护剂如甘油,温度在-20°C以下
      • 液氮保藏法:需要低温保护剂如甘油,温度在-150°C以下
      • 斜面保藏法:在4°C冰箱保存,方法简单,存活率高,应用普遍
    • image-20230423011401943
  • 细菌或病毒适合做遗传学研究的实验材料的生物学特性原因:组成与结构简单,易于培养且繁殖快,研
    究周期短

    • 细菌或病毒的组成与结构简单
    • 细菌或病毒的核酸是裸露的,其核酸与蛋白容易拆分,提取纯化与标记等,这样就容易直接观察遗传物质的作用,从而使得实验结果受蛋白质的影响较小
    • 用于上述遗传实验的细菌或病毒都特别易于在成分简单明确的培养基上生长繁殖
    • 细菌或病毒繁殖速度快,研究周期短,有利于在短时间内得出实验结果

引言

误差

  1. 对于十字相乘法类的二次方程,如果两根相差过大,会发现求根公式算小根是错误的:或许结论推理也不能
  2. 如何运算精确度更高?

误差的来源

知道误差来源属于哪一类

  1. 模型误差:分析方法近似造成的误差eg.物理中的理想化模型
  2. 观测误差:测量过程中不可消除的误差,与设备、方式有问题
  3. 截断误差:数学计算方法中常见,主动的操作,可以保证计算最后的精度;数学中的“无穷”需要转化为计算机中的“有穷”;比如说无穷大化为一个极大数值,无穷小数转为多位的有限小数。表示为:
    $$

$$
* 泰勒展开,级数展开
4. 舍入误差:计算机中由于数据类型的长度有限,在实际位数超过该长度时,
在本课误差估计中,假定数学模型合理,测定值精确,主要讨论截断误差和舍入误差

绝对误差、相对误差与有效数字

绝对误差

$x^*$为准确值x的一个近似值,则称$x-x^*$为近似值$x^*$的绝对误差,简称误差,表示为$\epsilon$:
$$ \epsilon=x-x^*$$
$|\epsilon|$的大小显示出近似值的准确程度,同一量的不同近似中,$|\epsilon|$越小,近似值准确度越高

绝对误差限

实践中无法确定x,但是可以确定误差绝对值的上限,从而确定准确值的范围,定义满足如下不等式的正数称为近似值的误差限:
$$ x^*-\epsilon \le x \le x^*+\epsilon $$
也可以表示为$x=x^*\pm \epsilon$

相对误差$\epsilon^*$

绝对误差与真值之比,称为近似值的相对误差(为了增强可操作性)
$$ \epsilon_r(x)=\frac{\epsilon(x)}{x}=\frac{x-x^*}{x} $$
* 相对误差可以体现误差绝对大小与测量度相对大小关系,也就是说误差的绝对大小并不能决定精度
然而实际问题中x未知,因而常将近似值替换准确值来计算相对误差,衡量准确程度:
$$ \epsilon^*_r(x)=\frac{\epsilon(x)}{x^*}=\frac{x-x^*}{x^*} $$

相对误差限

类似于绝对误差限,满足下列不等式的正数$\epsilon_r$为近似值的相对误差限
$$ \epsilon^*_r(x)=|\frac{\epsilon(x)}{x^*}|=|\frac{x-x^*}{x^*}| \le \epsilon_r $$

有效数字

近似值的误差限是其某一位上的半个单位时,称其“准确”到这意味,且从该位其到前面第一位非零数字为止所有数字都称为有效数字。
一般说,设有一个数x,其近似值的规格化形式为:
$$ x^*=\pm0.\alpha_1\alpha_2···\alpha_n×10^m$$
其中$\alpha_n$是0~9的数字,$\alpha_1\ne0$,n是正整数,m是整数。

绝对误差限

若$x^*$的误差限为:
$$ |\epslion(x)=|x-x^*|\ne\frac{1}{2}×10^{m-n} $$
则称$x^*$具有n位有效数字,或称其精确到$10^{m-n}$

注意

  1. 绝对误差有单位,相对误差由于做了除法是没有单位的,常用百分号表示
  2. 四舍五入时,绝对误差限不超过末位数的半个单位
  3. 有效数字:
  • 203和0.203有效数字均为n=3,只是m不同
  • 为什么强调采用标准式写法:9000的有效数字位数不一定为4,我们无法确定这是测定准确结果还是仅将0用于占位
  1. 当计算有效数字位数和绝对误差限时,建议写作标准形式,写出m,n,套公式计算。

有效数字与误差的关系

相对误差回推有效数字;
$$ |\epsilon^*(x)|=|frac{\epsilon(x)}{x^*}\lefrac{feac{1}{2}×10^{m-n}}{\alpha_1×10^{m-1}}=frac{1}{2\alpha_1}×10^{-n+1} $$

相对误差限

从相对误差限的定义式可知,有效数字的位数反映了近似值的相对精确度:
$$ \alpha_r=frac{1}{2\alpha_1}×10^{-n+1} $$
当用相对误差表示时,如果相对误差能满足$$|\epsilon_r(x)| \le frac{1}{2(\alpha_1+1)}×10^{-n+1} $$
则$x^*$至少具有n位有效数字

数值运算中应注意的几个原则

  1. 选用数值稳定性好的算法
  • 什么是稳定性好
  • 如何判断一种算法具有良好的稳定性?
    假定数值具有初始误差$\epsilon_0$,中间不再产生新误差,考察由$\epsilon_0$引起的误差累计是否会增长,如果不增长则认为是稳定的,如果严重增长则认为不稳定
  • 如果改变为一种正确的算法,或许相同的计算类型稳定性可以增强(比如说改变递推方式,可以得到越来越精确的值)
  • 重要的是误差传递的方式
  • 可以通过误差传递方式由最后的误差倒退回误差初始值$\epsilon_0$
  1. 避免两个(有效位数)相近的数相减(会严重消损有效数字)
  • 在数值计算中两个相近的数相减会造成有效数字的严重损失,有一些好的解决方案:
    • 分母“无理化”
    • 降幂公式逆运算$1-cosx=s(sin(x/2))^2$
    • $arctan\theta_1-arctan\theta_2 = arctan(\frac{1}{\theta_1 \theta_2})$
    • x很小的时候泰勒展开计算$e^x$
  • 总结:无法改变算式时,可采用增加有效数字位数进行运算(计算机上采用双精度计算,但是会增大时空开销)

有效数字的运算规则

  1. 加减运算
    • 取舍以小数点后位数最少的数值为准
    • 按照小数点后位数最少的数据保留其他各数的位数,再进行加减计算,结果也应当使小数点后保留相同的位数
  2. 乘除运算
    • 有效数字最少的为准
    • 先按有效数字最少的数据保留其他各数,再进行乘除运算,计算结果仍保留相同有效数字
  3. 绝对值太小的不易做除数
    • 容易数据溢出
    • 小数点后高位略有误差会有较大影响
  4. 防止大数吃掉小数(Kahan算法,大数吃小数)
    • 字长有限,绝对值大小差距悬殊运算时容易出现
    • 小数进行一定累计之后再参与运算

范数

是一种映射,并且有相类似的规范

向量范数

三角不等式中是矢量相加
Img
Img
L2范数实际上是向量空间中的距离,无穷范数取最大值,p范数其实是其他特殊范数的一般形式;

矩阵范数

相对于向量范数,多了相容性;
求范数之后成为标量;
Img
根据向量的常用范数得到常用的矩阵范数:
Img

  • 1范数:每列和的绝对值取最大值
  • 无穷范数(行范数):每行和的绝对值取最大值
  • 2范数实际上是欧氏空间中对距离的测定,最常用;ATA的正负不需要考虑,一定为正;
    Img
    2范数实际上是ATA与谱半径积的平方根
    单位矩阵任何范数都是1

扰动分析

病态方程与良态方程

对于线性方程组Ax=b,若系数矩阵A或常数项b的元素

讨论:常数项与矩阵的扰动对方程组解的影响

进行数据存在扰动时的误差分析,这里主要使用了矩阵范数的相容性性质,对于任何范数进行证明中的运算均成立

  1. 常数项的扰动
    Img

A二范数的条件数是A最大谱半径与最小谱半径商的平方根
根据A矩阵的条件数,可以确定解扰动的范围,体现了方程数据扰动对解相对误差的影响,初步判断是否病态。
其中A是扰动误差产生的核心,也是计算软件进行运算与否的重要依据之一

线性方程直接求解

两类解法:直接法与迭代法

直接法

高斯消去法

先消元,即按一定的规律逐步消去未知量,将方程组化为等价的上三角形方程组;然后进行回代,即由上三角形方程组逐个求出每个未知数的解

顺序高斯消去法

消元过程按方程和未知量的自然顺序进行:方程排列顺序,未知量位置顺序,类似于上三角形矩阵的变换;

  • 顺序高斯消元法的规则:
    • 依从左到右、自上而下的次序将主对角元下方的元素化为零。
    • 不作行交换,也不用非零数乘某行。
    • 第k列消元(将主对角元下方化零)时,将下面各行分别减去第k行的适当倍数,不作其他变换。
  • 即便是非奇异矩阵,也有可能是一整行都是0,或者出现一个较其他行相对较小系数,会造成严重的精度问题(数值稳定性差)
  • 使用上角标$^($)表示迭代次数
  • 行变换不会改变矩阵的非奇异性,理论上不会有某一行为0
  • 消去过程的时间复杂度更高
    Img
  • 消元过程可以按顺序进行的充要条件?
    • $a_{kk}^{(k-1)}\ne0,k=1,2···$
  • 递推Img
    Img

定理要会用:对于方程组:

  • 顺序消元过程能进行到底的充要条件是系数矩阵A的顺序主子矩阵Ak (k=1,2,…,n-1)非奇异
  • 顺序高斯消去法求解的充要条件是系数矩阵的一切顺序主子矩阵均非奇异。
  • 一些小补充

    顺序高斯消去法求解和顺序消去可以进行到底有什么区别?
    顺序高斯消去法(Sequential Gaussian Elimination)和顺序消元法(Sequential Elimination)都是线性代数中用于解决线性方程组的方法,但它们有一些区别。

  1. 顺序高斯消去法(Sequential Gaussian Elimination)
    • 这是高斯消元法的一种变体,通过一系列的行变换将方程组化为上三角形式,然后通过回代求解方程组。在顺序高斯消去法中,通常会按顺序处理每一行,逐步进行消元操作。
    • 顺序高斯消去法通常用于解决稠密的线性方程组,因为它需要进行大量的矩阵操作。
    • 它的计算复杂度为 O(n^3),其中 n 是方程组的大小。
  2. 顺序消元法(Sequential Elimination)
    • 顺序消元法也是一种线性方程组求解方法,但不同于高斯消元法,它更侧重于直接消去变量而不是通过矩阵操作。
    • 在顺序消元法中,可以按照任意顺序依次消去方程组中的变量,并解出剩余的变量。通常采用的顺序是从第一个变量开始,逐步向后推进。
    • 顺序消元法通常适用于稀疏的线性方程组,因为它的操作更侧重于变量之间的消去,而不是整个矩阵的操作。
    • 它的计算复杂度取决于消元的顺序,通常为 O(n^2) 到 O(n^3)。

因此,两种方法的主要区别在于其操作的对象和计算复杂度。顺序高斯消去法更侧重于矩阵操作,适用于稠密的线性方程组,而顺序消元法更侧重于变量之间的消去,适用于稀疏的线性方程组。

选主元高斯消去法

Img

  • 基本思想:每次消元前按一定的范围选取绝对值最大的元素作为主元素。以便减少舍入误差的影响。

    • 主要有列主元高斯消去法和全主元高斯消去法.一般只使用行交换进行消去,可以降低复杂度
    • 只要detA≠0,就必能找到k行以下该列某不为0的元素
    • 若r>k 则交换第k行和第r行,然后进行消元。
      • 意思就是谁大把谁放入当前操作行作为保留元素
    • 不影响x,只是对排序调整
      Img
      最后得方程组,有-1,1,5
      Img
      Img
  • 一般使用列主元就已经足够

  • 进阶的选主元消去

    • 对算法的说明
    • 运算量:$\frac{n^3}{3}$(计算机中做乘除运算的时间远远超过做加减运算时间,故我们只估计 乘除运算 的次数)
  • Gauss-Jordan消去法
    Img
    Img

    用途
    高斯约当消去法(Gauss-Jordan elimination)是高斯消去法的一种改进形式,用于求解线性方程组并求解矩阵的逆。与高斯消去法不同,高斯约当消去法一次性将矩阵化为阶梯形式,并最终化为单位矩阵。因此,它能够同时解决线性方程组和求解逆矩阵的问题。
    高斯约当消去法的主要用途包括:

    1. 求解线性方程组:通过高斯约当消去法,可以将线性方程组的系数矩阵化为阶梯形式,并最终化为单位矩阵。这使得方程组的解可以直接从化简后的矩阵中读取。
    2. 求解逆矩阵:在高斯约当消去法中,将待求的矩阵与单位矩阵连接在一起,通过一系列的行变换将待求矩阵化为单位矩阵,同时单位矩阵也会变为原矩阵的逆。因此,高斯约当消去法也可用于求解矩阵的逆。
    3. 求解行列式:通过高斯约当消去法,可以化简原矩阵为上三角形式,从而可以直接计算矩阵的行列式。
      总之,高斯约当消去法是一种功能强大的方法,可以同时解决线性方程组、求解逆矩阵以及计算行列式等问题。

求方程解的例子

考虑以下线性方程组:
[
\begin{cases}
2x + 3y - z = 7 \
3x + y + 2z = 5 \
x - 2y + z = -1
\end{cases}
]
可以将这个线性方程组表示为增广矩阵形式:
[
\left[\begin{array}{ccc|c}
2 & 3 & -1 & 7 \
3 & 1 & 2 & 5 \
1 & -2 & 1 & -1
\end{array}\right]
]
现在,我们将通过高斯约当消元法将这个增广矩阵化简为阶梯形式。然后,从阶梯形式中读取方程组的解。
1. 第一步:将第一行第一个元素(主元素)变为 1,同时使用第一行的主元素消去其他行的对应元素。
[
\left[\begin{array}{ccc|c}
1 & \frac{3}{2} & -\frac{1}{2} & \frac{7}{2} \
3 & 1 & 2 & 5 \
1 & -2 & 1 & -1
\end{array}\right]
]
2. 第二步:使用第一行的第一个元素将第二行的第一个元素变为 0,并将第三行的第一个元素变为 0。
[
\left[\begin{array}{ccc|c}
1 & \frac{3}{2} & -\frac{1}{2} & \frac{7}{2} \
0 & -\frac{7}{2} & \frac{7}{2} & -\frac{11}{2} \
0 & -\frac{7}{2} & \frac{3}{2} & -\frac{9}{2}
\end{array}\right]
]
3. 第三步:将第二行第二个元素(主元素)变为 1,并使用第二行的主元素消去第一行和第三行的对应元素。
[
\left[\begin{array}{ccc|c}
1 & \frac{3}{2} & -\frac{1}{2} & \frac{7}{2} \
0 & 1 & -1 & 1 \
0 & -\frac{7}{2} & \frac{3}{2} & -\frac{9}{2}
\end{array}\right]
]
4. 第四步:使用第二行的第二个元素将第一行的第二个元素变为 0,并使用第二行的第二个元素将第三行的第二个元素变为 0。
[
\left[\begin{array}{ccc|c}
1 & 0 & 1 & 3 \
0 & 1 & -1 & 1 \
0 & 0 & 2 & 4
\end{array}\right]
]
5. 第五步:将第三行的第三个元素(主元素)变为 1,并使用第三行的主元素消去第一行和第二行的对应元素。
[
\left[\begin{array}{ccc|c}
1 & 0 & 0 & 1 \
0 & 1 & 0 & 2 \
0 & 0 & 1 & 2
\end{array}\right]
]
现在,我们得到了阶梯形式的增广矩阵。根据阶梯形式,我们可以直接读出方程组的解:
[
\begin{cases}
x = 1 \
y = 2 \
z = 2
\end{cases}
]
这就是线性方程组的解,通过高斯约当消元法得到。

重点&小结

Img

  1. 解线性方程组Gauss消去法的计算程序如何实现?可以进行Gauss消去法的条件是什么?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    def gauss_elimination(A, b):
    n = len(A)

    # 合并增广矩阵
    for i in range(n):
    A[i].append(b[i])

    # 消元过程
    for i in range(n):
    # 首先找到主元素所在行
    max_index = i
    for j in range(i + 1, n):
    if abs(A[j][i]) > abs(A[max_index][i]):
    max_index = j

    # 将主元素所在行交换至当前行
    A[i], A[max_index] = A[max_index], A[i]

    # 将当前主元素所在列的其他元素消为0
    for j in range(i + 1, n):
    factor = A[j][i] / A[i][i]
    for k in range(i, n + 1):
    A[j][k] -= factor * A[i][k]

    # 回代求解
    x = [0] * n
    for i in range(n - 1, -1, -1):
    x[i] = A[i][n] / A[i][i]
    for j in range(i):
    A[j][n] -= A[j][i] * x[i]

    return x

    # 例子
    A = [[2, 1, -1],
    [-3, -1, 2],
    [-2, 1, 2]]
    b = [8, -11, -3]

    solution = gauss_elimination(A, b)
    print("Solution:", solution)

    Gauss 消去法可以应用于求解线性方程组的条件包括:

  2. 方程组的系数矩阵是一个非奇异矩阵:这意味着方程组的系数矩阵的行列式不为零。非奇异矩阵保证了方程组有唯一解。

  3. 方程组的系数矩阵是一个方阵:Gauss 消去法通常应用于求解方阵形式的线性方程组。如果方程组的系数矩阵不是方阵,那么方程组可能有无穷解或者无解。

  4. 可以按顺序进行消去的充要条件:主对角线元素不为零:Gauss 消去法在进行消元的过程中会涉及到主对角线元素的除法操作,因此要求主对角线元素不为零,避免除以零的情况。

  5. 方程组的条件数较小:条件数反映了方程组的稳定性,较小的条件数意味着方程组求解的稳定性较高,更容易得到准确的解。高条件数可能导致数值不稳定性和舍入误差的累积。

  6. 解线性方程组列主元Gauss消去法的计算程序如何实现?可以进行列主元Gauss消去法的条件是什么?
    条件同上;顺序消元过程进行到底&高斯消去法求解<->系数矩阵一切顺序主子矩阵均非奇异

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    def swap_rows(A, i, j):
    """交换矩阵的两行"""
    A[i], A[j] = A[j], A[i]

    def gauss_elimination(A, b):
    n = len(A)

    # 合并增广矩阵
    for i in range(n):
    A[i].append(b[i])

    # 消元过程
    for i in range(n):
    # 在当前列中找到绝对值最大的元素所在的行
    max_index = i
    for j in range(i + 1, n):
    if abs(A[j][i]) > abs(A[max_index][i]):
    max_index = j

    # 将找到的主元素所在行交换至当前行
    swap_rows(A, i, max_index)

    # 将当前主元素所在列的其他元素消为0
    for j in range(i + 1, n):
    factor = A[j][i] / A[i][i]
    for k in range(i, n + 1):
    A[j][k] -= factor * A[i][k]

    # 回代求解
    x = [0] * n
    for i in range(n - 1, -1, -1):
    x[i] = A[i][n] / A[i][i]
    for j in range(i):
    A[j][n] -= A[j][i] * x[i]

    return x

    # 例子
    A = [[2, 1, -1],
    [-3, -1, 2],
    [-2, 1, 2]]
    b = [8, -11, -3]

    solution = gauss_elimination(A, b)
    print("Solution:", solution)
  7. Gauss消去法的计算复杂度是?
    $O(n^3)$,其中 n 是方程组的未知数个数。

直接三角分解法

对于方程组AX=b,只要对系数矩阵作了三角分解A=LU,就可以很容易地求出线性方程的解。
Img

  • A的行列式就是U的行列式:
    $$ A_k=L_kU_k,detA_k=detU_k=\prod^k_{i=1} a^{(i-1)}_{ii} $$

会计算Dolittle(4,5)

核心:使用尽可能少的计算量写出非零数:通过矩阵乘法规则可以推出来A在LU上的“映射”,每行依次进行,先行后列,可以直接把LU中的非0数写出来
步骤如下

  • L矩阵对角线元素全为1,U矩阵第一行元素与A第一行相同
  • 取k=1,2,…,n.依次计算k行U和k列L
    • $a_ij$ = Li行*Uj列,按这个来列方程解值
      Img
  • 求解方程组Ax=b 的Doolittle 三角分解方法,包括分解和回代两步。
    Img
    Img

相关代码与课后习题见我的GitHub

个体与集成

  1. 集成学习(ensemble learning)通过构建数个个体学习器来完成学习任务,每个个体学习器都是经过训练的算法;
  2. 集成的个体算法类型相同的(均为决策树或者均为神经网络等等)被称为“同质”(homogeneous),反之为“异质”(heterogenous)。
    • 同质中的个体学习器称为“基学习器”(base learner),相应的算法称为“基学习算法”(base learning algorithm)
    • 异质中的个体称为“组件学习器”(component learner),或者直接称之为个体学习器
  3. 集成学习对性能提高的研究主要针对“弱学习器”(weak learner),但是在实际应用中,为了个体学习器尽可能少,还是会使用学习能力更强的学习器。
    • 弱学习器是略优于随机猜测的学习器

研究核心

要获得好的集成,个体学习器应当“好而不同”:准确性+多样性(diversity);

  • 随着继承中个体分类器数目的增大,集成错误率指数级下降,最终趋于0;
  • 但是以上结论基于假设:学习器间的误差相互独立,但由于训练目标是解决同一个问题,所以不可能相互独立,因此可以看出,集成过程中准确性和多样性是类似于查准率和查全率的关系
    因此,如何产生并结合“好而不同”的学习器,是集成学习的核心。

集成学习方法

分为两类:

  1. 序列化:个体学习器间存在强依赖关系,必须串行生成;Boosting
  2. 并行化: 不存在强依赖关系,可以同时生成;Bagging & Random Forest

Boosting

可以将弱学习器提升为强学习器

WorkFlow

前提:base间强依赖 & 串行序列化

  1. 训练一个base
  2. 根据base的表现对训练样本分布进行调整,错误样本关注增加
  3. 基于调整后的样本训练一个base,知道base数为预定超参数n

Example:AdaBoost

加权模型,其实就是通过改变base的线性组合的系数来实现最小化损失函数$$ H(x)=\sum^T_{t=1}\alpha_th_t(x)$$

  1. 初始化样本权值分布,一般初始化每个样本权值相等
  2. 基于分布从数据集中训练出分类器$h_t$
  3. 估计分类器的误差$\epsilon_t$;
    • 这里设定如果误差大于0.5,也就是二分类问题的准确度低于随机猜测正确的概率,break舍去
    • 实际操作中可以自行设定对base精度的要求
  4. 确定分类器的权重$$\alpha_t=\frac{1}{2}ln(\frac{1-\epsilon_t}{\epsilon_t})$$
  5. 更新样本分布,其中$Z_t$是规范化因子,确保最终可以得到一个规范的分布$$ D_{t+1}=\frac{D_t(x)}{Z_t}×\begin{cases}
    exp(-\alpha_t), h_t(x)=f(x) \
    exp(\alpha_t), h_t(x)\ne f(x)
    \end{cases} =\frac{D_t(x)exp(-\alpha_t)f(x)h_t(x)}{Z_t}$$
  6. 最终输出:$$H(x)=sign(\sum^T_{t=1}\alpha_th_t(x))$$

小结

  1. 通过re-weighting对特定的数据分布进行学习,对无法接受带权样本的base,可以re-sampling处理(在训练过程中根据样本分布对训练集进行重新采样,用重采样后的样本对基学习器训练)
  2. 每一轮都会检查base被保留的条件,不符合的舍弃
  3. 从偏差-方差分解的角度来看,Boosting主要关注降低偏差,因此Boosting能基于泛化程度弱的学习器构建强集成

Bagging与随机森林

不存在强依赖关系&同时生成的并行式关系

Bagging

WorkFlow

直接原理:自助采样法bootstrap sampling

  1. 给定m个样本的数据集,有放回的随机抽取,m次随机采样后大概会有63.2%的原始数据出现在新样本集中,以此类推采样出T个类似采样集
    • 可以预留36.8%的数据作为验证集对泛化性能进行“包外估计”
      • 对于决策树base,可以辅助剪枝
      • 对于神经网络base,可以辅助早期停止,降低过拟合
  2. 对分类任务进行简单投票法,票数相同时随机选择一个

小结

从偏差-方差角度看,更关注降低方差,因此在不剪枝决策树、神经网络等易受样本扰动的学习器上效果更明显。

随机森林Random Forest

RF实质上是Bagging的扩展变体,以决策树为base构建Bagging集成,引入了随机属性选择。

WorkFlow

总体就是对最优属性的选择,所以属性取值不同时的分叉不同,像一棵树。

  1. 对决策树的每个结点,从该节点d个属性中随机选择一个包含k个属性的子集,然后从这个子集中选择一个最优属性用于划分。一般来说选择$k=log_2d$
  2. 离散性质通过取值进行分叉,连续性质通过拟合度分叉

小结

  1. 简单&计算开销小,训练效率高。
  2. base的多样性来自样本+属性的扰动,最终集成泛化性能可以通过base差异度的提升来提升。
  3. 起始性能不好(所以可以增加学习轮次和base)

note

RF是一个“随机型”的决策树,所以说当你的数据集比较少或者说训练轮次不够的时候,验证集精度会有比较大的差距,我用了一个RF+linear来拟合连续性质进行二分类的样例最大会有20%的精度误差,而数据集的属性又比较多,40选15的时候可以有最优达到90%,但是极其不稳定,笨人觉得或许可以直接存起来高精度的RF结果然后给对应的属性加权?不过还没有继续跑ing(痛苦的回忆)

结合策略

学习器结合三大优势:

  1. 统计:学习任务假设空间大时可能多假设同性能,此时结合之后会更稳定
  2. 计算:算法局部极小点降低泛化性能,多次运行结合后可以降低局部极小出现的概率
  3. 表示:可以更好地吻合真实假设,使假设空间扩大

平均法

根据性能加权,但是必须使用非负权重才能优于个体学习器;性能相近的时候简单平均就可以。

投票法

  1. 用于分类任务,可以超过半数也可以选最多;
  2. 类标记投标为硬投票hard voting,类概率标记投票为软投票soft voting。虽然分类概率不准确,但是往往类概率投票准确度会更高。
    • 如果base类型不同,概率不能直接比较,一般就是hard voting了。

学习法

训练数据很多时,用另一个学习器来结合,把base称为初级学习器,用于结合的学习器称为次级学习器或者元学习器meta-learner

Example:Stack算法

  1. 使用初级学习算法产生初级学习器(可以是异质base)
  2. 使用初级学习器的输出产生次级训练集,用于训练次级学习器,此处初级样本的标记仍被当作样例标记
    • 这一步有比较大的过拟合风险,一般使用留一法或者交叉验证,用训练初级学习器未使用的样本产生次级学习器的训练样本
  3. 训练次级学习器并输出T个一一对应T个初级学习器的值
    次级学习器的输入属性表示和该算法对stacking集成的泛化性能影响很大。研究表明初级学习器输出类概率作为次级学习器输入时,用多响应线性回归MLR作为次级学习算法效果更好,使用不同的属性集更佳

多样性

误差-分歧分解