Perl语言数据类型

上传人:博****1 文档编号:567600675 上传时间:2024-07-21 格式:PPT 页数:30 大小:771.51KB
返回 下载 相关 举报
Perl语言数据类型_第1页
第1页 / 共30页
Perl语言数据类型_第2页
第2页 / 共30页
Perl语言数据类型_第3页
第3页 / 共30页
Perl语言数据类型_第4页
第4页 / 共30页
Perl语言数据类型_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《Perl语言数据类型》由会员分享,可在线阅读,更多相关《Perl语言数据类型(30页珍藏版)》请在金锄头文库上搜索。

1、第二章 Perl数据类型1. 生物数据生物数据2. 标量与标量变量标量与标量变量3. 列表与数组列表与数组4. 哈希(散列、关联数组)哈希(散列、关联数组)5. 课后作业课后作业2024/7/211电子科技大学 生物信息学中心了解:了解:常量(标量、列表、数组、哈希)。常量(标量、列表、数组、哈希)。掌握:掌握:标量(数字、字符串、引用)标量(数字、字符串、引用);列表与数组列表与数组;哈希哈希。难点与重点:难点与重点:重点:重点:标量、数组、哈希及其生物信息学妙用标量、数组、哈希及其生物信息学妙用;引用;引用;Perl的特殊变量的特殊变量。目标与要求2024/7/212电子科技大学 生物信息

2、学中心1. 生物数据序列数据序列数据(sequence data)结构数据结构数据(structure data)网络数据网络数据(network data)gi|224589802:c2182439-2181009 Homo sapiens chromosome 11, GRCh37.p10 Primary AssemblyAGCCCTCCAGGACAGGCTGCATCAGAAGAGGCCATCAAGCAGGTCTGTTCCAAGGGCCTTTGCGTCAGGTGGGCTCAGGATTCCAGGGTGGCTGGACCCCAGGCCCCAGCTCTGCAGCAGGGAGGACGTGGCTGGG

3、CTCGTGAAGCATGTGGGGGTGAGCCCAGGGGCCCCAAGGCAGGGCACCTGGCCTTCAGCCTGCCTCAGCCCTGCCTGTCTCCCAGATCACTGTCCTTCTGCCATGGCCCTGTGGATGCGCCTCCTGCCCCTGCTGGCGCTGCTGGCCCTCTGGGGACCTGACCCAGCCGCAGCCTTTGTGAACCAACACCTGTGCGGCTCACACCTGGTGGAAGmetuximab Light chainMDSHTQVFIFLLLCVSGAHGSIVMTQTPTFLVVSAGDRVTITCKASQSVINDVAWYQQKPGQSPK

4、LLIFYASNRNTGVPDRFTGSGYGTDFTFTISTVQAEDLAVYFCQQDYSPPFTFGSGTKLEIKRKSTAPTVS2024/7/213电子科技大学 生物信息学中心缩写含义缩写含义AAdenine(腺嘌呤)SC or G (strong)CCytosine(胞嘧啶)YC or T (pyrimidine)GGuanine(鸟嘌呤)KG or T (keto)TThymine(胸腺嘧啶)VA or C or GUUracil(尿嘧啶)HA or C or TMA or C (amino)DA or G or TRA or G (purine)BC or G or TWA

5、 or T (weak)NA or G or C or T (any)IUB/IUPAC核酸标准缩写及对应中文2024/7/214电子科技大学 生物信息学中心单字码三字码英文全称中文含义AAlaAlanine丙氨酸BAsxAspartic acid or Asparagine天冬氨酸或天冬酰胺CCysCysteine半胱氨酸DAspAspartic acid天冬氨酸EGluGlutamic acid谷氨酸FPhePhenylalanine苯丙氨酸GGlyGlycine甘氨酸HHisHistidine组氨酸IIleIsoleucine异亮氨酸KLysLysine赖氨酸LLeuLeucine亮氨酸

6、MMetMethionine蛋氨酸(甲硫氨酸)NAsnAsparagine天冬酰胺PProProline脯氨酸QGlnGlutamine谷氨酰胺RArgArginine精氨酸SSerSerine丝氨酸TThrThreonine苏氨酸VValValine缬氨酸WTrpTryptophan色氨酸XXxxUnknown or any未知或任何一种氨基酸YTyrTyrosine酪氨酸ZGlxGlutamic acid or Glutamine谷氨酸或谷氨酰胺氨基酸标准缩写及对应中文2024/7/215电子科技大学 生物信息学中心ATOM 1 O5 DC D 1 69.842 -0.193 16.182

7、 1.00 50.10 O ATOM 2 C5 DC D 1 69.499 1.011 15.489 1.00 47.56 C ATOM 3 C4 DC D 1 70.397 2.177 15.830 1.00 45.77 C ATOM 4 O4 DC D 1 69.792 3.389 15.331 1.00 44.44 O ATOM 5 C3 DC D 1 70.599 2.411 17.324 1.00 44.27 C ATOM 6 O3 DC D 1 71.867 3.032 17.535 1.00 42.80 O ATOM 7 C2 DC D 1 69.482 3.373 17.680

8、 1.00 44.90 C ATOM 8 C1 DC D 1 69.270 4.171 16.400 1.00 43.11 C ATOM 9 N1 DC D 1 67.849 4.397 16.109 1.00 42.06 N ATOM 10 C2 DC D 1 67.357 5.691 16.106 1.00 41.72 C 结 构 数 据2024/7/216电子科技大学 生物信息学中心网络数据:人体代谢网络2024/7/217电子科技大学 生物信息学中心网络数据可视化示例 2024/7/218电子科技大学 生物信息学中心2. 标量与标量变量标量(Scalar)是是PerlPerl语言中最基

9、本的一种数据类型语言中最基本的一种数据类型;各种数字各种数字;各种字符串各种字符串。标量变量(Scalar Variable)是不可再分解的变量是不可再分解的变量; ;可动态存储可动态存储单个的标量的标量; ;指示符指示符“$ $”后接变量名后接变量名; ;变量名称由字母、数字及下划线组成变量名称由字母、数字及下划线组成; ;不要单独使用数字或特殊字符及其组合作为变量名不要单独使用数字或特殊字符及其组合作为变量名; ;变量名变量名区分大小写!2024/7/219电子科技大学 生物信息学中心#Numbers from different numeral systems can be used l

10、iterally in Perlmy $bin = 0b11111010;#250 in binary form, 一个很“二”的250!my $oct = 0372;#250 in octal form, 还是一个250!my $dec = -250;#negative 250 in decimal form,一个负的250!my $hex = 0xfa;#250 in hexadecimal form, 也是一个250!my $Hex = 0XfA;#Also 250 in hexadecimal form, 仍然是250!#Like the Magic of 1001 Nights!my

11、 $sum = $bin +$oct + $hex + $Hex + 1; print $sum = $sum #Adding four $hexs and 1, you get $sum!nn;#Automatic conversion numbers to strings.print $sum.$dec.nn;数字相关代码示例12024/7/2110电子科技大学 生物信息学中心数字相关代码示例2#Be careful when big numbers and small numbers are used together print ( 9e22 + 2013 - 9e22, n);#0p

12、rint ( 9e22 - 9e22 + 2013, n);#2013print ( 9e11 + 5.12 - 9e11, n);#5.1199951171875print ( 9e11 - 9e11 + 5.12, n);#5.12print ( 9e12 + 5.12 - 9e12, n);#5.119140625print ( 9e13 + 5.12 - 9e13, n);#5.125print ( 9e14 + 5.12 - 9e14, n);#5.125print ( 9e15 + 5.12 - 9e15, n);#5print ( 9e16 + 5.12 - 9e16, n);#

13、0print ( 9e16 - 9e16 + 5.12, n); #5.122024/7/2111电子科技大学 生物信息学中心常用转义字符序列及其功能描述转义序列功能描述aBell(beep,系统响铃)bBackspace(退格)c等同于Ctrl和相应字符键的组合,如G可写成cG,等同于ae等同于ESCEEnds the effect of L, U or Q(结束L、 U、Q的作用)fForm feed(换页符)lForces the next letter into lowercase(下一字符强制小写)LAll following letters are lowercase(随后字符强制

14、小写,到E为止)nNew line(换行)rCarriage return(回车)Q给Q后非文非数的字符(如空格、制表符、#等)加上,到E为止tTab(水平制表符)uForce next letter into uppercase(下一字符强制大写)UAll following letters are uppercase(随后字符强制大写)vVertical tab(垂直制表符)007后接八进制数字表示ASCII字符,如007等同于ax07后接十六进制数字表示ASCII字符,如x07等同于a2024/7/2112电子科技大学 生物信息学中心嵌入文档示例# Examples of here-do

15、cmy $poem = POEM;The coming of wisdom with time- by William Butler YeatsThough leaves are many, the root is one;Through all the lying days of my youth,I swayed my leaves and flowers in the sun;Now I may wither into the truth!POEM2024/7/2113电子科技大学 生物信息学中心引用(reference)引用是指向标量、数组、哈希、函数、对引用是指向标量、数组、哈希、函

16、数、对象的一类特殊的标量,类似于象的一类特殊的标量,类似于C语言的指针语言的指针$foo$barvalue2024/7/2114电子科技大学 生物信息学中心3. 列表与数组列表(列表(List)是包含在括号里的一系列有序标量或标量变量。是包含在括号里的一系列有序标量或标量变量。数组(数组(array)是存储列表的变量,用是存储列表的变量,用标识。标识。操作列表与数组操作列表与数组创建列表与数组;创建列表与数组;列表与数组的赋值;列表与数组的赋值;访问列表与数组的元素;访问列表与数组的元素;常用函数与控制结构。常用函数与控制结构。2024/7/2115电子科技大学 生物信息学中心创建列表与数组创

17、建列表创建列表把标量、标量变量、表达式、函数放到圆括号中,用逗号隔开即可;把标量、标量变量、表达式、函数放到圆括号中,用逗号隔开即可;(2, 0, 1, 3, 1, 4)、)、(1.100)、(A.Z)。建立单词列表要有引号建立单词列表要有引号(Bioinformatics, Programming, Using, Perl);对于很大的单词列表,对于很大的单词列表,Perl提供了提供了qw引用形式;引用形式;quoted word;quoted by whitespace;qw形式的列表中单词不仅可用空格分开,换行也可;形式的列表中单词不仅可用空格分开,换行也可;qw形式的列表,不一定非得使

18、用圆括号,任何标点符号均可作为定界符;形式的列表,不一定非得使用圆括号,任何标点符号均可作为定界符;左右成对的除了圆括号外还有左右成对的除了圆括号外还有、方括号、花括号等。、方括号、花括号等。!、#等定界符一样自身配对使用。等定界符一样自身配对使用。创建数组创建数组在在符号后加上数组符号后加上数组;新建数组没有显式赋值时,就默认含了一个空列表新建数组没有显式赋值时,就默认含了一个空列表()。2024/7/2116电子科技大学 生物信息学中心列表与数组代码示例1# create, assign and print lists and arraysmy dna = ($a, $t, $g, $c)

19、 = qw (A T G C);print (dna, n);# making base pairing by swap($a, $t, $g, $c) = ($t, $a, $c, $g); print ($a, $t, $g, $c,n);# assign the list in dna to basesmy bases = dna; my $type = bases; # when evaluate an array in scalar context, it returns print There are $type types of bases in DNA.n; # the len

20、gth of the array# please avoid coding like the next line in futuremy $u = qw (A G C U); # when evaluate a list in scalar context, it returnsprint $uracil rather than thymine is used in RNA.nn; # the last value2024/7/2117电子科技大学 生物信息学中心列表与数组代码示例2# accessing an element or elements of an array or listpr

21、int (qw (A G C U)1, 2, n); # A list value may also be subscripted# pay attention bases15 is wrong in scalar context $bases15 =N; print basesn; # $bases4, $bases5, and so on are undef#swap elements of an array via subscript dna0,1,2,3 = dna1,0,3,2; print dnan;# assign a subarray to dna using subscrip

22、t dna = bases0.3; print dna Ill be back! (_)n; # as Mr. Wolf always says# both $#dna and -1 get the last elements index of dnaprint The last base in dna is $dna$#dnaytosine ($dna-1).nn;2024/7/2118电子科技大学 生物信息学中心列表与数组代码示例3# do not use the same name for an array and a scalarmy student = qw(He Nie Ru Wa

23、ng);my $student = He;# I wanna say It is found by He1.print It is found by $student1.n; # Nie o(_ value pairs for basesn;foreach my $index (0.$#bases)print $index = $bases$indexn if $bases$index ;2024/7/2120电子科技大学 生物信息学中心操作列表与数组的常用函数与控制结构2024/7/2121电子科技大学 生物信息学中心另外几个常用的列表与数组相关函数函数名使用方式基本解释chompchomp

24、 LISTchomp VARIABLE 用于去掉数组每个元素或标量变量末尾的换行符,返回值是删除换行符的个数,仅针对变量!chopchop LISTchop VARIABLE 用于去掉数组每个元素或标量变量末尾字符,返回值所删除的字符,仅能用于处理变量!reversereverse LIST 列表语境,返回逆序列表;标量语境,返回逆序字符串。不会改变传入参数,需接收返回值! scalarscalar EXPR 伪函数,在列表语境中强制标量语境解读sortsort LIST 根据代码点排序并返回排序后列表,当心数字!splitsplit /PATTERN/, EXPR, LIMIT 扫描表达式E

25、XPR生成的字符串,并按/PATTERN/所定义的特征将其分解成子串到列表LIMIT+1个变量里。列表语境,返回子串列表;标量语境,返回子串数目。如特征无匹配,返回原字符串。2024/7/2122电子科技大学 生物信息学中心列表与数组代码示例5# built in functions frequently used for lists and arrayssplice bases, 4, 11, qw(U M R W S Y K V H D B);print nbases = qw(bases),n;#first, reverse; then assign! bases = reverse b

26、ases; print reversed qw(bases),n;#first, sort; then assign!bases = sort bases; print sorted = qw(bases),n;splice bases; # bases =();print Now bases has , scalar bases, element.n;2024/7/2123电子科技大学 生物信息学中心列表与数组代码示例6my $peptide = SVSVGMKPSPRP;print reverse (n,scalar reverse $peptide);my aminos = split

27、/, $peptide; #the null pattern /print aminos,n; #simply splits into separate charactersforeach my $index (0.$#aminos) #add position number$aminos$index = $aminos$index.($index+1).n;print aminos;chomp aminos; # foreach (aminos)chomp; print aminosn; #show the trailing newline cut offchop aminos; # for

28、each (aminos)chop; print aminosn; #show the last character chopped offforeach (1.3)pop aminos; # using $_ by defaultpush aminos, qw (P R P);print aminos, nIll be back! (_)n;2024/7/2124电子科技大学 生物信息学中心4. 哈希(hash)如果我们将如果我们将Perl中的常量与变量看作是中的常量与变量看作是“名词名词”的话,标量的话,标量就是名词的单数形式;列表与数组及哈希(就是名词的单数形式;列表与数组及哈希(has

29、h)就是名)就是名词的复数形式。列表与数组是有序的复数名词,其顺序由词的复数形式。列表与数组是有序的复数名词,其顺序由从从0开始的依次递增的整数索引确定;哈希是无序的复数开始的依次递增的整数索引确定;哈希是无序的复数名词,由一系列关联的键(名词,由一系列关联的键(key)值()值(value)对组成。哈)对组成。哈希与数组的不同之处就在于索引方式(希与数组的不同之处就在于索引方式(index style)。数)。数组是以从组是以从0开始的有序整数来索引的,哈希则是用键(任开始的有序整数来索引的,哈希则是用键(任意唯一的字符串)来索引。意唯一的字符串)来索引。哈希除了直接音译得名之外,还有两个常

30、用译名。一是关哈希除了直接音译得名之外,还有两个常用译名。一是关联数组(联数组(Associative Array),反映了键与值的对映关系;),反映了键与值的对映关系;二是散列,有无序列表之意,反映了哈希的无序性。二是散列,有无序列表之意,反映了哈希的无序性。2024/7/2125电子科技大学 生物信息学中心哈希代码示例1my %bases = (0, A, 1, T, 2, G, 3, C, 15, N,);print %bases,n;my bases = %bases; #unwindingprint basesn;#built in functions frequently used

31、 for hashes#hash for amino acid code convertingmy %AA123 = (A = Ala, V = Val, L = Leu, I = Ile,P = Pro, W = Trp, F = Phe, M = Met,G = Gly, S = Ser, T = Thr, Y = Tyr,C = Cys, N = Asn, Q = Gln, K = Lys,R = Arg, H = His, D = Asp, E = Glu,);$AA123B = Asx; $AA123X = Xxx; $AA123Z = Glx;2024/7/2126电子科技大学 生

32、物信息学中心哈希代码示例2print keys %AA123,n;my tricodes = values %AA123;print tricodesn;foreach my $key ( sort keys %AA123)print $key = $AA123$keyn;my %AA321 = reverse %AA123;# swap key and valuedelete $AA321Xxx; #delete the key and the value$AA321Asx=; # now the value eq (empty string)undef $AA321Glx;# now th

33、e value is undefif (exists $AA321Glx)print nThe key Glx exists and corresponds undef value.nn;while( my ($key, $value) = each %AA321)print $key = $valuen;2024/7/2127电子科技大学 生物信息学中心5. 常量变量(变量(variables)在在$、%等标识符后紧跟名称;等标识符后紧跟名称;包括单数的标量变量,复数的数组及哈希;包括单数的标量变量,复数的数组及哈希;直接量(直接量(literals)、常量(常量(constants)如打印

34、语句中直接给出的没有名称的字符串或列表;如打印语句中直接给出的没有名称的字符串或列表;use constant PI = 4 * atan2(1, 1);use Readonly;$pi = 4 * atan2(1, 1);weekdays = qw (Sunday Monday Tuesday Wednesday Thursday Friday Saturday);2024/7/2128电子科技大学 生物信息学中心5. 课后作业在在Chapter02文件夹中,有一个文件夹中,有一个all_mimodb_peptides文件,里面是文件,里面是MimoDB数据库数据库3.1版本中收录的来自噬菌

35、体展示实验结果的版本中收录的来自噬菌体展示实验结果的17427条条多肽。请你运用已学的知识,从多肽。请你运用已学的知识,从all_mimodb_peptides.gz文件中找出文件中找出所有出现且仅出现过一次的多肽,所有出现过多次(即两次或两次所有出现且仅出现过一次的多肽,所有出现过多次(即两次或两次以上)的多肽,并据此建立一个非冗余的数据集。以上)的多肽,并据此建立一个非冗余的数据集。请用请用Perl写一个小脚本,运行后在屏幕上输出人类胰岛素基因序列写一个小脚本,运行后在屏幕上输出人类胰岛素基因序列FASTA格式的互补序列(按格式的互补序列(按5到到3方向)。方向)。美妥昔单抗(美妥昔单抗(

36、metuximab)是我国自主研发上市的第一个单克隆抗体)是我国自主研发上市的第一个单克隆抗体药物。其重链与轻链的氨基酸序列已公布于美国专利(药物。其重链与轻链的氨基酸序列已公布于美国专利(US7638619)。)。我们已将其公布的氨基酸序列提取如下。请用我们已将其公布的氨基酸序列提取如下。请用Perl写一个小脚本,运写一个小脚本,运行后在屏幕上输出更为常见的美妥昔单抗重链和轻链的单字母缩写行后在屏幕上输出更为常见的美妥昔单抗重链和轻链的单字母缩写的氨基酸序列。的氨基酸序列。2024/7/2129电子科技大学 生物信息学中心谢谢倾听,欢迎解码!德光上贤COBI中心介绍HLAB2024/7/2130电子科技大学 生物信息学中心

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 文学/艺术/历史 > 人文/社科

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号