生 物 信 息 学 Bioinformatics 巩晶 癌症研究中心 山东大学 医学院 2016.5.23.

Slides:



Advertisements
Similar presentations
Web 开发基础 第二章 表格与页面布局. 回顾 Internet 和 万维网 网页的工作原理 网页的基本结构 标记及其属性 段落标记,图片标记,超级链接标记 相对路径,绝对路径,物理路径.
Advertisements

HyperText Markup Language
《计算机网络技术》 动态网页制作技术 常用HTML控件课程积件 杨 姝.
第六章 网页设计与制作基础.
ASP.NET 網頁製作教本 -- 從基本語法學起
第5章 HTML 標籤介紹.
佛山科学技术学院 第7章 HTML Internet及多媒体应用.
第8讲 HTML与PHP基础 静态网页 vs. 动态网页.
动态网页制作 第1章 HTML语言1.
HTML概念 HTML(Hyper Text Markup Language 超文本标识语言) 是一种用来制作超文本文档的简单标记语言。
Web Programming 網際網路程式設計
网页 设计与制作.
2 HTML5與CSS3 2-1 HTML5的頁面結構 2-2 HTML5的文字編排標籤 2-3 HTML5的圖片與超連結標籤
第五单元课1-3 层叠样式表.
模块1 网页设计基础 实训1 体验HTML文档 1.1 网页基础知识 1.2 网站配色方案 1.3 网站设计常用软件
Chapter 4 流程控制.
使用HTML製作個人網頁 柴惠敏 台灣大學 物理治療學系.
第二部分 HTML语言控制 本次课的主要内容: 1、认识网页文件的结构 2、HEAD、TITLE、BODY等基本标记符的使用
HTML 語法教學 授課:彭穎聰 老師.
Operators and Expressions
HTML簡介、文字的變化、超連結的使用 主講:朱漢琳.
CT212 (02/03)-Network Programming and design
第二章 網際網路網頁的設計.
HTML.
Ch07 PHP程式基礎 網頁程式設計.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第3章 超文本标记语言(HTML) 3.1 基本结构标记 3.2 文本格式标记 3.3 超链接标记<A></A>
建國技術學院資訊管理學系 饒瑞佶 2004/7/5 彰化縣政府補助辦理網頁設計資料庫應用班 建國技術學院資訊管理學系 饒瑞佶 2004/7/5.
Google 自訂搜尋 淡江大學資訊中心 專案發展組 朱家璁 2009/10/6.
生 物 信 息 学 Bioinformatics 巩晶 癌症研究中心 山东大学 医学院
PHP程式設計 二、HTML & PHP基本語法 建國科技大學 資訊管理學系 饒瑞佶.
标准规范 2.自己偏好习惯 3.讨论/建议 永远遵循同一套编码规范 -- 不管多少人同时参与编码,所有代码都应该看上去像是一个人编写的一样。
第四章 網頁表單與資料傳遞.
留言版 1.先Create一個留言板的table
Introduction to PHP part3
2018/11/11 CGI程式設計進階 (for UNIX Perl) 國立中央大學電算中心 陳慶彥.
HTML網頁設計 Chapter 建置網站的流程 16-2 從事網頁設計相關的程式語言 16-3 認識HTML語法
HTML 钟晖云 QQ:
JSP自定义标签技术的分析与应用 ----Custom Tag 的分析与应用
Ch.13 HTML網頁實作.
第2章 超文本标记语言HTML.
Lecture 2 Lecture An Introduction To The HTML Language
Transact-SQL 語言設計教學.
Matlab M檔案 方煒 台大生機系.
8 网页制作基础知识 赵国庆 博士 北京师范大学教育技术学院
JavaScript 语言3 学习网站:心蕊设计
進階 WWW 程式設計 -- PHP Regular Expression 靜宜大學資訊管理學系 蔡奇偉副教授 2004
C 語言簡介 - 2.
JavaScript 靜宜大學 資管系 楊子青.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
HTML & CSS.
主讲:陶建平 华中科技大学网络与计算中心
String Matching Michael Tsai 2012/06/04.
网 站 设 计 与 建 设 Website design and developments
PHP 變數、常數與運算子 變數 常數 運算子
网页设计与制作教程第5版 机械工业出版社同名教材 配套电子教案.
HTML 103 互動式網頁.
Ch09 在網頁之間傳遞資訊 網頁程式設計.
HTML 103 互動式網頁 助教:黃毓瑩.
String Matching Michael Tsai 2013/05/28.
计算机问题求解 – 论题1-5 - 数据与数据结构 2018年10月16日.
第6章 PHP的数据采集.
進階 WWW 程式設計 -- PHP Array 靜宜大學資訊管理學系 蔡奇偉副教授
Arguments to the main Function and Final Project
第6章 层次原理图设计和多通道技术: 重点内容: 掌握自上而下的层次原理图设计方法 掌握自下而上的层次原理图设计方法
第2章 块级标签 经济管理学院.
第4章 JSP动态网页设计基础 教学目标 教学重点 教学过程 2019年10月21日.
表单页面 表单是用户利用浏览器对Web站点网络数据库进行查询的一种界面,用户利用表单可以输入信息或选择选项等,然后将这些信息提交给服务器进行处理。通过表单,既可以将浏览器的信息发送到Internet服务器上,同时表单也可以使用户与站点的浏览者交互或从浏览者那里收集信息。它是网页的设计者和使用者相互交流的工具。表单对象包括文本域(单行、多行、密码)、列表、菜单、复选框、单选框、按钮等。
教师:李金双 网页制作 教师:李金双
Section 1 Basic concepts of web page
Presentation transcript:

生 物 信 息 学 Bioinformatics 巩晶 癌症研究中心 山东大学 医学院 2016.5.23

编程基础第二部分

2. Perl – What is Perl ? http://www.perl.org Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation and File I/O Full support for Regular Expressions

2. Perl – Running Perl Scripts Download ActivePerl from ActiveState Just run the script from a 'Command Prompt' window or a ‘Terminal' Put the following in the first line of your script #!/usr/bin/perl or #!C:/Strawberry/perl/bin/perl.exe Run the script perl script_name.pl

2. Perl – Basic Syntax Statements end with semicolon ‘;’ Comments start with ‘#’ Only single line comments Variables You don’t have to declare a variable before you access it You don't have to declare a variable's type

2. Perl – Scalars and Identifiers A variable name Case sensitive Scalar A single value (string or numerical) Accessed by prefixing an identifier with '$' Assignment with '=' $scalar = expression

2. Perl – Strings Quoting Strings With ' (apostrophe) Everything is interpreted literally With " (double quotes) Variables get expanded With ` (backtick) The text is executed as a separate process, and the output of the command is returned as the value of the string $output='Hello\nWorld!'; print $output; $output="Hello\nWorld!"; print $output; print `java -version`;

2. Perl – Comparison Operators String Operation Arithmetic lt less than < gt greater than > eq equal to == le less than or equal to <= ge greater than or equal to >= ne not equal to != cmp compare, return 1, 0, -1 <=> 0 1 2 3 4 5 6 7 8 9 符号 A B C … X Y Z a b c … x y z 由 小 到 大

2. Perl – Logical Operators Operation ||, or logical or &&, and logical and !, not logical not xor logical xor a xor b = (a' and b) or (a and b')(a'为非a)

2. Perl – String Operators Operation . string concatenation x string repetition .= concatenation and assignment $string1 = "potato"; $string2 = "head"; $newstring = $string1 . $string2; #"potatohead" $newerstring = $string1 x 2; #"potatopotato" $string1 .= $string2; #"potatohead"

2. Perl – Perl Functions Perl functions are identified by their unique names (print, chop, close, etc) Function arguments are supplied as a comma separated list in parenthesis. The commas are necessary The parentheses are often not Be careful! You can write some nasty and unreadable code this way!

指令:length 语法:length($string) 说明:求出字符串$string的字节(bytes)值。 示例:$string="Perl5"; $size=length($string); #这时$size=5; 指令:substr 语法:substr($string,offset,length) offset代表起始字符的位置,length代表引用的字符串长度,如果省略length则代表从起始值到字符串的最后一个字符长度。而offset如果是负值的话,就会从字符串右边开始指定字符。(字符串中第一个字符的位置为0,不是1) 示例: $s=substr("perl5",2,2); #这时$s="rl"; $s=substr("perl5",2); #这时$s="rl5"; $s=substr("perl5",-2,2); #这时$s="er"; 指令:index 语法:index($string,$substring,position) $substring是要寻找的字符;position代表从哪一个位置开始寻找,假如省略position就从头开始找起。 说明:返回所要找寻的字符在一字符串$string中的位置,如果在字符串中找不到字符的话,则会返回-1这个值。 示例: $s=index("perl5","p"); #这时$s=0 $s=index("perl5","l",2); #这时$s=3 $s=index("perl5","pell"); #这时$s=-1

2. Perl - Arrays Array Operators A named list Dynamically allocated, can be saved Zero-indexed Shares list operations, and adds to them Array Operators @: reference to the array (or a portion of it, with []) $: reference to an element (used with []) Eg. @arr = ("A", "T", "C", "G"); print $arr[2]; print @arr[1,3]; print @arr; print "@arr"; $x = @arr; 返回@arr中元素的个数

指令:scalar 语法:scalar(@array) 说明:返回数组@array中的元素的个数。 示例:@back =("A","B","C"); $num=scalar(@back); #这时$num=3; 指令:reverse 语法:reverse(@array) 说明:将数组@array中的元素由后到前重新排列。 示例:@back=("A","B","C","D","E"); @back=reverse(@back); #这时@back=("E","D","C","B","A"); 指令:sort 语法:sort(@array) 说明:将数组中的元素由小到大排序,如果要由大到小排序的话,要加上reverse这个函数。 示例: @abc=("d","b","c","a"); @abc=sort(@abc); #这时@abc=("a","b","c","d"); @abc=reverse(sort@abc); #这时@abc=("d","c","b","a"); 指令:pop 语法:pop(@array) 说明:将数组(@array)的最后一个元素删除,并将删除的元素返回。 示例:@array=("one","two"); $rm=pop(@array); #这时@array=("one");而$rm="two";

指令:shift 语法:shift(@array) 说明:将数组@array的第一个元素删除,并将删除的元素返回。 示例:@array=("one","two"); $rm=shift(@array); #这时@array=("two");而$rm="one"; 指令:push 语法:push(@array,$newelement/@newarray) 说明:在数组@array的最后加新的元素到数组@array中。 示例:@array=("one","two"); push(@array,"three"); #这时@array=("one","two","three") 指令:unshift 语法:unshift(@array,$newelement/@newarray) 说明:在数组@array的第一个元素前附加新的元素到数组@array中。 示例:@array=("one","two"); unshift(@array,"three"); #这时@array=("three","one","two") 指令:join 语法:join($string,@array) 说明:在一数组@array的元素之间加上一指定的字符$string,并将结果返回。 示例:@array=("one","two","three"); $total=join(":",@array); 这时$total="one:two:three";

Array Example #!/usr/bin/perl # Simple List operations # Address an element in the list @stringInstruments = ("violin","viola","cello","bass"); @brass = ("trumpet","horn","trombone","euphonium","tuba"); $biggestInstrument = $stringInstruments[2]; print("The biggest instrument: ", $biggestInstrument, "\n"); # Join elements at positions 0, 1, 2 and 4 into a white-space delimited string print("orchestral brass: ", join(" ",@brass[0,1,2,4]), "\n"); ################################ @unsorted_num = ('3','5','2','1','4'); @sorted_num = sort( @unsorted_num ); # Sort the list print("Numbers (Sorted, 1-5): ", @sorted_num, Array Example #Add a few more numbers @numbers_10 = @sorted_num; push(@numbers_10, ('6','7','8','9','10')); print("Numbers (1-10): ", @numbers_10, "\n"); # Remove the last pop(@numbers_10); print("Numbers (1-9): ", # Remove the first shift(@numbers_10); print("Numbers (2-9): ", # Combine two ops print("Count elements (2-9): ", scalar( @numbers_10 ),

2. Perl – if 语句 #!/usr/bin/perl $a=10; $b=15; if ($a > $b) { print "a=$a is bigger!"; } else { print "b=$b is bigger!"; } ########### if ($a == 5) { print '$a is 5'; } elsif ($a == 10) { print '$a is 10'; } elsif ($a == 15) { print '$a is 15'; } { print '$a is not (5 or 10 or 15)'; } if 和 else 可以不成对出现,即,可以只有if没有else elsif可以有许多个

2. Perl – for 语句 #!/usr/bin/perl @a=(1,12,33,25,98,34,55,76,18,10); $n=scalar(@a); for ($i=0; $i<$n; $i++) { print "No.$i = $a[$i]\n";} ############ foreach (@a) { if ($_ % 2 == 0) { print "$_ is even. \n";} else { print "$_ is odd. \n";} } foreach语句中,用$_代表抓到的每一个当前变量。

2. Perl – Pattern Matching A pattern is a sequence of characters to be searched for in a character string /pattern/ Match operators =~: tests whether a pattern is matched !~: tests whether patterns is not matched Match & Substitute Match: m/pattern/ or /pattern/ Substitute: s/pattern1/pattern2/

2. Perl – Pattern Matching 升级的 BLAST: PHI-BLAST PHI-BLAST (Pattern-Hit Initiated BLAST, 模式识别BLAST) : 能找到与查 询序列相似的并符合某种模式(pattern)的蛋白质序列。 符合模式: [LIVMF]-G-E-x-[GAS]-[LIVM]-x(3,7) Yes: VGEAAMPRI No: VGEAAYPRI 模式序列可能代表是一个酶的活性位点, 一个蛋白质家族的结构或者功能域的 氨基酸序列 。

2. Perl – Regular Expression [] 字符集中的任意一个 Eg. /[0123456789]/ 表示0-9是个数字中的任意一个 \d 0-9是个数字中的任意一个 Eg. /\d/ = /[0123456789]/ = /[0-9]/ \D 不是0-9是个数字中的任意一个 Eg. /\D/ = /[^0-9]/ \w 任何字母、数字和下划线中的任何一个 Eg. /\w/ = /[_0-9a-zA-Z]/ \W 不是字母、数字和下划线中的任何一个 Eg. /\W/ = /[^_0-9a-zA-Z]/ \s “空格”,“\r”,“\n”,“\t”,“\f”中的任何一个 Eg. /\s/ = /[ \r\t\n\f]/ \S 不是“空格”,“\r”,“\n”,“\t”,“\f”中的任何一个 Eg. /\S/ = /[^ \r\t\n\f]/

^ 在字符集中 ^ 表示补集,在一般的模式中表示以什么开头 Eg. /[^123]/ 表示“不是1或2或3”;/^123/ 表示以“123”开头 $ 表示以什么结尾 Eg. /123$/ 表示以“123”结尾 . 匹配任何一个字符 Eg. /a.c/ 表示匹配1个a,接任何一个字符,再接1个c; * 匹配0或更多次, Eg. /ab*c/ 表示匹配1个a,接0或更多个b,再接1个c; + 匹配1或更多次 Eg. /ab+c/ 表示匹配1个a,接1或更多个b,再接1个c; ? 匹配1或0次 Eg. /ab?c/ 表示匹配1个a,接0或1个b,再接1个c; {count}匹配count次 Eg. /ab{3}c/ 表示匹配1个a,接3个b,再接1个c; {min,} 匹配至少min次 Eg. /ab{3,}c/ 表示匹配1个a,接至少3个b,再接1个c; {min,max} 匹配至少 min次,但不超过max次 Eg. /ab{3,5}c/ 表示匹配1个a,接3到5个b,再接1个c;

2. Perl – Regular Expression 模式修饰词: i 忽略大小写 Eg. $s =~ /abc/i, 匹配“abc”,无论大小写 g 匹配所有可能的模式 Eg. $s =~ s/a/A/g, 把$s中所有“a”都替换成“A”; Eg. $s =~ s/a/A/, 把$s中匹配的第一个“a”替换成“A”; x 忽略模式中的换行 Eg. $s =~ /ab 和 $s =~ /abc/ 是一样的 c/x /[a-z]+.\d{2,4}\s+[^XY]\s2013$/ $seq1 = "asd-345 A 2013" $seq2 = "sd-sss ws2013"

2. Perl – Regular Expression 模式的匹配: 可以用()捕获特定的模式 并依次存入 $1 $2 $3 中 $output="robert 27 m\n 2013"; if ($output =~ m/([a-z]+)\s+(\d{1,3})\s+[mf]\s+2013$/) { print "name: $1\nage: $2"; }

2. Perl – File I/O #续写文件 “>>” #读入文件 open(FH, ">>test2.pdb"); print FH $get[1]; close FH; #覆盖写文件 “>” open(FH, ">test2.pdb"); #读入文件 open(FH,"test.pdb"); @get=<FH>; close FH; print $get[0]; #写入文件 open(FH, ">test2.pdb"); print FH $get[0];

2. Perl – File I/O #屏幕输入 print "What's your name?\n"; $name = <STDIN>; chomp($name); print "Hello $name!"; #$name由屏幕输入赋值 #去掉$name末尾的\n, 如果有

2. Perl – Web Connection #!/usr/bin/perl use LWP::Simple; $url='http://www.uniprot.org/uniprot/Q6GV17.fasta'; $content = get $url; die "Couldn't get $url" unless defined $content; print $content; ###### open (FH, ">seq.fasta"); @ids=("Q6GV17","Q9BXR5","B3Y669","C0LSK8"); foreach (@ids) { $url="http://www.uniprot.org/uniprot/$_.fasta"; print FH "$content"; } close FH;

2. Perl –Example #!/usr/bin/perl use LWP::Simple; print "Please enter the Uniprot ID:\n"; $id = <STDIN>; chomp $id; $url="http://www.uniprot.org/uniprot/$id.fasta"; $content = get $url; die "Couldn't get $url" unless defined $content; @get1 = split(/\n/,$content); shift @get1; $sequence = join("",@get1); print "Which amino acid?\n"; $aa = <STDIN>; chomp $aa; $count_aa=0; while ($sequence =~ m/$aa/ig) { $count_aa++;} $len = length($sequence); $aa_percent=$count_aa/$len; print "$aa in $id: $aa_percent";

3. HTML HTML语言(Hyper Text Markup Language,超文本标记语言):描述信息所有的规范标签,这些标签告诉浏览器怎样显示这个页面。 源文件 网页

3. HTML 标签的基本结构: <Tag> </Tag> Eg: <h1>Hello World!</h1> <br></br> 等同于 <br/> 标签之间可以嵌套(一对标签里包含另一对标签): <Tag1> <Tag2> </Tag2> </Tag1>  <Tag1> <Tag2> </Tag1> </Tag2>  这样是不对的 Eg: <h1><i>Hello World!</i></h1> 标签的属性: <Tag attribute1=“” attribute2=“”> </Tag> Eg: <font color=“blue” size=“3”>Hello World!</font> <h1 align=“center”>Hello Word</h1> 注释标签: <!--Comments--> Eg: <!--这里是注释,注释可以分 很多行业-->

3. HTML HTML文档的结构: <HTML> <HEAD> <!--头部信息--> <title>My Site</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/> </HEAD> <BODY> <!--文档主体,正文部分--> </BODY> </HTML>

3. HTML 常用的标签: 标题标签:六个等级,H后数越小,标题字号就越大。 <H1></H1>, <H2></H2>, … , <H6></H6> 段落及换行标签: 换行标签:<BR/> 段落标签:<p></p>, <p align=“center”></p> align=“center” or ”left” (默认) or ”right” 水平线标签:<HR/> size:水平线宽度 width:水平线的长 align:水平线对齐方式 color: 水平线颜色

3. HTML 常用的标签: 文字格式标签:<FONT></FONT> size:文字大小,1-7,缺省是3 face:文字字体,Eg:Arial,Verdana, … color: 文字颜色 文字效果标签: <b></b> 加粗 <i></i> 斜体 <u></u> 下划线 <tt></tt> 打印机字体 <blink></blink> 闪烁

3. HTML 常用的标签: 项目符号标签: <ul> <dl> <li>第一项</li> <dt>第一项</dt> <li>第二项</li> <dd>第一项是关于老鼠</dd> …… <dt>第二项</dt> <li>第n项</li> <dd>第二项是关于大象</dd> </ul> </dl> <ul></ul>以图形为项目符号,默认“圆点”。 <ol></ol>以数字为项目符号。 <dl></dl>可以给每一个列表项再加上一段说明性文字。

3. HTML 常用的标签: 表格标签: <table border=“1” width=“300” height=“300”> <th>姓名</th> <th>性别</th> <tr> <td>张三</td><td>女</td> </tr> <td>李四</td><td>男</td> </table> <table>定义了一个表格。<th>定义了标题格。<tr>定义一行。<td>定义了一行中的一列。<td>可以用align设定左右对齐(left, center, right),用valign设定上下对齐(top, middle, bottom)。

表格标签: <table border="1" width="300" height="300"> <th>姓名</th> <th>性别</th> <tr> <td align=“center”><b>张三</b></td> <td>女</td> </tr> <td align="center" colspan="2">李四</td> </table> <td align=“center” rowspan=“2”><b>张三</b></td> <td>男</td>

3. HTML 常用的标签: 超链接标签: 链接到外部地址:<a href="http://www.sdu.edu.cn">山东大学</a> 链接到内部地址:<a href=“index02.html”>本网站的另一个网页</a> 链接到上一级目录的网页:<a href=“../index03.html”>上一个</a> 链接到当前网页的某一个位置: <a name="top"/> <a href="#top">返回页首</a> 可利用target=“_blank”属性另网页在新的窗口中打开: <a href="http://www.sdu.edu.cn" target="_blank">山东大学</a> 若不加此项,则网页在当前窗口打开。

3. HTML 常用的标签: 表单标签: <html> <body> <FORM action="../cgi-bin/test.cgi" method="post" encType="multipart/form-data"> <input name="name" size="40"/> <input type="submit" name="submit" value="submit"/> </FORM> </body> </html> 源文件 test.html 文件 网页

3. HTML 常用的标签: 表单标签: #!/usr/bin/perl use CGI qw(:standard); $cgi = new CGI; $name = $cgi->param("name"); print $cgi->header( -type=> "text/html"); print "<p>Hallo $name!</p>"; 源文件 test.cgi 文件

3. HTML 常用的标签: 表单标签: name: <input name="name" size=“40"/> <input type="radio" name="sex" value="male" /> Male <br/> <input type="radio" name="sex" value="female" /> Female <input type="checkbox" name="fruit" value="apple">apple<br/> <input type="checkbox" name="fruit" value="mango">mango<br/> <textarea name="comment" rows="3" cols="20"> xxx </textarea> <input type="submit" name="submit" value="submit"/>

http://www.w3school.com.cn/tags/index.asp