搜索
查看: 3230|回复: 4

[Perl] 小骆驼学习笔记第1章

[复制链接]

23

主题

62

帖子

484

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
484
发表于 2016-8-31 12:36:46 | 显示全部楼层 |阅读模式
以下来自于我的微信公众号:果子学生信。我就是想看看一年后自己会是上面样子

暑假参加了陈连福老师举办的生信十日课程,对生信分析、linux系统以及perl语言有了初步了解。
回家后发现实际上对于临床专业的科研人员来说,用好现有的数据库已经绰绰有余,而一般而言我们所说的生信也就是可视化数据库的使用,以及使用R语言作图。
对于稍微有点追求,导师宽容,经济富裕,时间充足,买得起服务器的课题组,系统地学习生信知识尤为重要。
所以我要系统地整理已经有的数据库,并且要做个记录,同时学习perl语言,linux系统,python,R语言。
教材准备
  • 准备的教程是《perl语言入门》俗称小骆驼,纸质版和电子版都有
  • 《鸟叔的linux私房菜》 暂时没有购买纸质版,网上有完整电子版
  • 《 精通正则表达式》猫头鹰那本
此外,补充一句
作笔记是因为记性差(尤其是到了30岁),发微信是为了交朋友。就是这样

今天学习了《perl语言入门》第一章,这本书又叫小骆驼,传说那几本著名的生信教程封面全是动物,正则表达式是猫头鹰,perl语言编程是大骆驼,学习python是个大老鼠。而我们这支小骆驼名称还有个来历:
骆驼长得有点丑陋,但它们努力工作,哪怕严酷环境下也一样不辞辛劳。骆驼能在种种不利的条件下帮你把事情搞定,尽管它长相丑陋,气味难闻,偶尔冷不丁还会对你吐上几口口水。怎么说呢,perl有时确实有点像他
上面是书中写的,翻到书的最后发现我理解错了:
《perl语言入门》第六版的封面动物是骆马(Lama glama)。是骆驼的同类。
介绍一下perl
perl不是缩写词,反倒是溯写字,也就是说当年他的创造者Larry wall首先想到了perl这个词,再想到如何展开解释的,其中一个解释是“Practical Extraction and Report Language(实用摘录与报表语言)”。反正不管他了,暂时的理解就是,这个语言是用于生信分析时处理脚本用的,简单说来,假设我们有一个10000行的文本,我想要把奇数行提取出来,或者把偶数列提取出来,或者把以>开头的行提取出来,这时候就需要脚本语言,而python也可以干这个事情,老一辈的生信学者喜欢用perl,据说用了会上瘾,新一代有些人喜欢用python。
今天的习题
!/usr/bin/perl
  @lines = perldoc -u -fatan2;
  foreach (@lines){
            s/\w<([^>]+)>/\U$1/g;
      print;
  }
第一次看这样的文字是在课上,大家都说是天书,其中perl一个被人嫌弃的原因就是他的可读性不高(跟语言本身和使用者有很大关系),经过一段时间的学习,现在竟然能够看懂了。
在这个里面看不懂的最主要原因应该是
s/\w<([^>]+)>/\U$1/g;
这里使用了正则表达式,什么是正则表达式呢,我使用李笑来的定义阐述一下
正则表达式是用来匹配、捕获特定字符串的工具;之后,我们还可以对匹配到、捕获到的对象进行处理,比如替换。
这么一说就很简单明了。
  • s///g 表示全局匹配后替换,也就是说三个斜杠中出现了两个空,第一个是我想匹配的内容,第二个空是要替换的内容
  • \w<([^>]+)> 这是第一个空的内容,他表示有一串字符,包含有一对<>符号,其中第一个<前面只能有一个字符,两个<>之间不能出现>符号,其中第一个
  • \U$1 这是第二个空的内容,¥1表示匹配到的<>里的字符,\U表示把后面的字符全部大写
整个语句表示,打开一个文本,对于每一符合条件的字符匹配,替换,
原始文本如下(截取片段)
X< atan2 > X< arctangent > X< tan > X< tangent >
运行后结果如下:
ATAN2 ARCTANGENT TAN TANGENT

好了今天的内容就是这样
没有图片是因为用的双系统,操作linux的时候无法保存,所以明天准备在mac上面练习。
[size=0em]​




上一篇:【Panda姐-perl练习题9】统计碱基个数及GC%
下一篇:试水贴-R语言画仪表盘
回复

使用道具 举报

634

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2016-9-1 10:58:21 | 显示全部楼层
O(∩_∩)O哈哈~发帖辛苦了,我也在适应这个网页编辑器
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复 支持 反对

使用道具 举报

2

主题

7

帖子

59

积分

注册会员

Rank: 2

积分
59
发表于 2016-9-13 15:32:43 | 显示全部楼层
学perl的时候最好带着问题学,不使用模块的情况下很快就能掌握了,遇到了问题自己先想办法解决,解决不了就问问大家,被人一点拨,比自己扣来的快,毕竟是工具服务人的。
回复 支持 反对

使用道具 举报

2

主题

6

帖子

48

积分

新手上路

Rank: 1

积分
48
发表于 2016-10-13 17:01:09 | 显示全部楼层
粗略看了小骆驼 然而还是看不懂你写的代码啥意思
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-8-22 03:12 , Processed in 0.031362 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.