生 物 信 息 学 Bioinformatics 巩晶 癌症研究中心 山东大学 医学院 2016.05.20
基本序列算法
8.1 后缀树 序列S:SDSDFSDFG 后缀=S1≤i≤n,Si+1,…,Sn n=length(S) 序列S:SDSDFSDFG => SDSDFSDFG$ 1: SDSDFSDFG$ 2: DSDFSDFG$ 3: SDFSDFG$ 4: DFSDFG$ 5: FSDFG$ 6: SDFG$ 7: DFG$ 8: FG$ 9: G$
8.1 后缀树 字符串S:SDSDFSDFG 功能:1. 查找字符串s是否在字符串S中: 从树根开始,与s的字符逐一比对。s1: DFSD(在); s2: SDFD (在不在?)
8.1 后缀树 字符串S:SDSDFSDFG 功能:2. 找指定字符串s在字符串S中的重复次数:从树根开始,按照功能1的办法找到s,然后看s之后有几片树叶。s1: SD(3次); s2: DF(?次,在哪里?) S D S D F S D F G 位置 1 2 3 4 5 6 7 8 9
8.1 后缀树 字符串S:SDSDFSDFG 功能:3. 找字符串S中的最长重复子串:找到从树根到所有节点(非叶片)的子字符串,从中找到最长的。SDF
8.1 后缀树 字符串S:SDSDFSDFG $的作用:如果某一个后缀是另一个后缀的前缀,那么需要用$标识出一个独立的叶片。 8: $
8.2 最高分子序列问题 Input: 一个序列(a1,…,an)∈Rn Output: 一个子序列(ai,…,aj),使得函数f(i, j)最大, f(i, j) = ∑ ah j h=i 最短原则:在几个子序列同时拥有最高分时,如果某一个完全包含在另一之内,则只返回被包含的那一个。
8.2 最高分子序列问题 生物学应用:(1)预测蛋白质序列跨膜区域。疏水氨基酸[0, 3],亲水氨基酸[-5,0]。
8.2 最高分子序列问题 生物学应用: (2)预测DNA序列中富含GC区域。G, C给正分;A,T给负分。
8.2 最高分子序列问题 Input: 一个序列(a1,…,an)∈Rn Output: 一个子序列(ai,…,aj),使得函数f(i, j)最大, f(i, j) = ∑ ah j h=i Naïve算法:对于所有i≤j ∈ [1, n],计算f(i, j) ,再找出最大值对应的(i, j)。 所有可能的(i, j)组合的数量,即计算f(i, j)的次数: n+(n-1)+(n-2)+…+1 = n*(n+1)/2 = O(n2) 计算一次f(i, j)所需的步骤:O(n) => Naïve算法的总运算步骤为O(n3) 最高分子序列问题的运算步骤: Naïve算法:O(n3) 动态算法:O(n2) 分而治之算法:O(n*log(n)) 聪明算法:O(n)
编程基础第一部分
1. Linux介绍 Linux 是什么? ----- Linux是一个操作系统! …… ……
可视化窗口操作 命令行操作
1. Linux介绍 远程连接 Linux 从Windows远程登录Linux: PuTTY:命令行操作 1 2 3 1. Host Name (or IP address) Eg. tollml.lrz.de Host name 1.51.215.28 IP address 2. User name 3. Password 1 2 3
远程连接 Linux 从Windows远程登录Linux: WinSCP:文件传递
1. Linux介绍 远程连接 Linux 从Linux远程登录另一个Linux: 终端(terminal)是向计算机发出命令的一个窗口。类似于Windows下的DOS命令窗口。 远程登录命令:ssh username@hostname 退出远程登录 将当前机器上的文件拷贝到另一机器上
1. Linux介绍 --- Linux基本命令 0. ls命令=Dos里的dir 几个基础的“热身”命令 1. 显示日期与时间的命令:date 2. 显示日历的命令:cal 3. 简单好用的计算器:bc +加,-减,*乘,/除,^指数,%余数 1/3为什么等于0?答:bc默认只输出整数部分 通过scale=number设定小数点后位数 输入quit退出 cal的语法:cal [[month] year ]
1. Linux介绍 --- Linux基本命令 [Tab]键具有“命令补全”与“文件补齐”的功能。 重要的热键 输入ca,在a后紧接着按两次[Tab]键,则所有以ca开头的命令都被显示出来了。 输入ls .bash后按两次[Tab]键,则所有以.bash开头的文件名都会被显示出来。 想不起来完整的文件名或命令名时,输入开头的几个字母再按下[Tab]键,会自动帮你补齐或者给你足够的提示。好好利用[Tab]键,可以让你避免 很多输入错误的机会。 重要的热键
1. Linux介绍 --- Linux基本命令 [Ctrl]-c 命令终止按键 (Ctrl和c一起按) 重要的热键 出现一堆东西在刷屏 输入find /后,系统会开始跑一些东西,此时按下[Ctrl]-c组合键,命令立刻被终止了。 如果你在Linux下输入了错误的命令或参数,有的时候这个命令或程序会不停的运行,这个时候按[Ctrl]-c组合键就可以让当前的程序“停下来”。 注意:如果你正在运行比较重要的命令或程序,还是等它自己跑完了停下来再说吧,别随便用这个组合键,不然你的工作就白做了。 [Ctrl]-d 输入结束按键 (Ctrl和d一起按) 可以代替exit的输入。
1. Linux介绍 --- Linux基本命令 查命令,找“男人” 某个命令不会用,比如date,输入“man date”就会出现详细的命令说明。这个man是manual的简写。 按PgUp,PgDn上下翻页,按q退出
1. Linux介绍 --- Linux基本命令 目录与路径 几个常见的处理目录的命令: cd:切换目录 pwd:显示当前目录 mkdir:创建一个新的目录 rmdir:删除一个空的目录 用符号代表的特殊目录: . 代表此层目录 .. 代表上一层目录 - 代表前一个工作目录 ~ 代表“目前用户”所在的主文件夹 / 代表根目录 绝对路径:由根目录“/”写起 相对路径:不是由根目录“/”写起 仅输入cd,代表的就是“cd ~”的意思,即,回到自己的主文件夹。
1. Linux介绍 --- Linux基本命令 目录与路径 几个常见的处理目录的命令: cd:切换目录 pwd:显示当前目录 mkdir:创建一个新的目录 rmdir:删除一个空的目录 mkdir 加了 –p 这个参数后,可以自行创建多层目录。 rmdir 加了 –p 这个参数后,可以连通上层“空的”目录一起删除。
1. Linux介绍 --- Linux基本命令 文件与目录管理 几个常见的命令: ls :查看文件与目录 参数: -a : 全部的文件,连同隐藏文件(开头为.的文件)一起列出来 -A :全部的文件,连同隐藏文件,但不包括.与..这两个目录 -l :列出文件的详细信息,包括属性、权限、文件大小、日期等 -hl :等同于-l,只是文件大小以人类较易读的方式(GB,KB等)列出来 -R :连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来 -S :以文件容量大小排序,ls默认以文件名排序 -t :以时间排序 ……
1. Linux介绍 --- Linux基本命令 文件与目录管理 几个常见的命令: cp :复制 -r :用于复制整个文件夹(包括文件夹里的内容) rm :删除 参数: -i :若目标文件已经存在,在删除时会先询问操作的进行 -r :用于删除整个文件夹(无论是否是空文件夹) (rmdir –p 只能删除空的文件夹)
1. Linux介绍 --- Linux基本命令 文件与目录管理 几个常见的命令: mv :移动文件或更名 把文件“test.txt”移动到文件夹“test1”里 将文件“test.txt”更名为“test1.txt” 复制文件“test1.txt”,新文件为“test2.txt” 把文件“test1.txt”和“test2.txt”同时移动到文件夹“test2”里 1 2 3 4
1. Linux介绍 --- Linux基本命令 文件内容查阅 几个常见的命令: cat :将文件的第一行到最后一行连续显示在屏幕上。加参数“-n”可以打印出行号,连同空白行也会有行号。 tac :与cat相反,将文件的最后一行到第一行反向在屏幕上显示出来。 more :一页一页翻动。空格:向下翻一页;回车:向下滚动一行;q:退出。 less :一页一页翻动。空格:向下翻一页;PgDn:向下翻一页;PgUp:向上翻一页;q:退出。 head :取出前面几行。默认情况显示前10行。加上参数“-n number”可以显示前number行。 tail :取出后面几行。默认情况显示后10行。加上参数“-n number”可以显示后number行。
1. Linux介绍 --- Linux基本命令 创建、修改一个纯文本文件 几个常见的命令: vi :程序编辑器 1. 2. 按“a”,进入“Insert”模式,即输入模式。 3. 输入文本内容 4. 输入结束后,按“Esc”,退出“Insert”模式。 5. 输入“:wq”回车,保存退出。若只输入“:q”,则退出,不保存对文件内容的更改。