问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁能帮我注释一小段perl程序,尤其是if语句判断的是什么啊,while (<IN>) 是自动读一个字符串吗,存在哪里

发布网友 发布时间:2022-05-01 03:23

我来回答

4个回答

热心网友 时间:2023-10-03 04:49

1、open IN, $seq_file || die $!; 这句读文件的,IN是文件句柄的名字,$seq_file指明文件来源, 后面的 || die $!表示 如果前面的open失败 则用 die报告错误,并结束程序, $!在报错的时候内容为实际的出错原因。提示,最好使用3个参数的open函数,比如:
open ( IN, '<', $file_name) or die "Can't open $file_name : $!";
第二个参数 <表示读入, >表示写出, >> 表示追加。
2、while (<IN>) { 这一句, 相当于2句, 首先是 $_ = <IN>;默认读入的内容存在系统默认变量 $_中, 然后while循环 测试 $_的值是否非空,如果读入成功则进入循环;
3、if (/^>(\S+)/) { 这一句用于检查 $_ 的内容和正则表达式 /^>(\S+)/ 是否匹配, ^表示文件头, 用()括起来的内容可以在后面引用匹配的实际的值,如果不需要该值就不需要括号了。比如,文件读入内容为: >nm_415621 rna ; 那么后面紧接着的变量赋值 my $tagId=$1; 结果就是nm_415621 , $1 引用了前面匹配的括号里的内容。
4、原来这样啊,那要是同时读2个变量
(/>(\S)+\s+(\d+)/)
my $tagId=$1;
my $count=$2;
是这样吗?要是没有if,怎么读<IN>里的变量啊,比如my $seq=<IN>; 怎么从 $seq抽取$tagId和$count?
答: 这个不用if来判断是不行的, 因为 $seq=<IN>;理论上是读入文件,但是失败了呢,比如读完了或者文件为空,则 $seq 是没有值的后面也酒不能用了,所以要先确保 $seq 有值,就是要加一句 if ($seq){..} , 还不如 if ($seq=<IN> ){..} 方便;正则匹配的时候也是, 你不知道能不能匹配成功。代码如下:
/>(\S)+\s+(\d+)/;my $tagId=$1;my $count=$2;
有时候对有时候会出错!为什么? 因为可能匹配失败啊,比如这一行内容是 :acgtacgt,肯定没有匹配的内容,my $tagId=$1;my $count=$2;这里的$1和$2是没有值的,所以就会报错了,但是;
if(/>(\S)+\s+(\d+)/){ my $tagId=$1;my $count=$2;} 这个肯定对,成功匹配的时候 $1匹配前面的, $2匹配后面的数字,刚好是想要的内容。

热心网友 时间:2023-10-03 04:49

你这应该是读取一个FASTA格式的序列文件,每个序列的名字以“>”开头,下面是序列,但是如果序列是多行的,那么这个程序就有问题了。。。

热心网友 时间:2023-10-03 04:49

整个程序的大致意思是打开$seq_file这个路径的文件,
然后逐行读取while(<IN>)当然是放到$_里面
如果找到满足条件的行,例如
>tagfirst 100
kkkkkkkk
判断读到的行是上面的格式>非空格n个为tag 空格n个 数字n个为个数
读取下一行seq,下一行长度满足要求,以tag为键存储seq和个数。。。。

热心网友 时间:2023-10-03 04:50

--正则
if (/^>(\S+)/) { #如果一行的行首是这种形式:>非空格

if (/>\S+\s+(\d+)/) { # >非空格 123(数字)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
香港电影有一部是两个女人能变蟒蛇的电影 期房需先交哪些钱 期房交定金之后多久交首付可以延期吗 期房定金后多久交首付可延期? 为什么考驾照就是紧张过不去,为什么 考驾照的考场是什么样的 moll是什么单位 法定单位规定物质的量用“mol”表示的优点是什么 物质的量的单位 摩尔 淘宝新手推广网店的十大方法,怎么做好推广? 淘宝网店怎么做推广? 2019抖音更新了把好友拉在黑名单了给对方点赞的作品还会出现在自己喜欢的列表里吗?_百度问一问 您对于跆拳道段位的理解是什么 perl的unless -d是什么意思? 我女朋友私处有异味、吃什么药好、 淘宝修改物流信息,已发货的宝贝可以修改运单编号么,如果可以怎么修改,是立即买家就可以看到我修改过的 你对于跆拳道段位的理解是什么 这篇英文小短文的大意,我也查过百度翻译,不用再给我翻一遍,我只是觉得有点莫名其妙啊,什么意思, perl 中 $/ 代表了什么意思? 淘宝已发货填好物流信息的单子可以修改物流信息吗 女人有异味怎么办应该吃什么药 perl 里面的$/=&quot;:&quot;; 什么意思呢? 跆拳道的级位与段位!!腰带颜色代表什么? 我找了一个PPT模版,这个模版的所有幻灯片我都用了,最后我自己添加了一张,可是到了放映的时候,每次放到 调整门合页应该怎么做? 请问这段perl代码是什么意思,请详细点,谢谢! 我是perl新手,请问perl 中的~是什么意思,有没有关于所有perl的符号解释的全集 Perl中的默认变量@_和$_什么意思? 求生之路2成就&quot;于嘉年华战役中拯救gnome chompsk&quot;是什么意思 算法竞赛入门经典的Chomp!游戏该怎么证明? 勤奋,刻苦读书的故事,如:凿壁偷光,悬梁刺股 白带多,异味重.请问可以吃什么药最好 perl 正则表达式/^\s*(.*?)\s*\=\s*\&quot;(.*)\&quot;/是什么意思? 宝宝血小板底吃什么 钉钉怎么一个老师管理五个班级群? 【急】找一篇VOA常速的翻译,就算只有讲解也可以啊。%&gt;_&lt;% 我是个未婚女性,不知为什么下身老有异味?请问吃什么药可以治疗? 代码中$c.= $_;表示什么意思?我觉得 . 应该是联结字符吧,在这里面表示什么意思?感谢回答 英语怎样辨别句子成分是否完整,特别是强调句中的,还原之后也挺对啊,挺完整的,但实际上不完整,怎么办 女人白带多还有异味吃什么药好或用什么药好 南京2022年度初级会计职称准考证打印时间是何时 脸是黑色,身体是淡黄色,短毛,是什么猫? 暹罗猫为什么一到冬天就脸黑? 用钉钉怎样加入学校班级群农安县三岗镇中心校一年一班? 请问南京初级会计证多久考一次?什么时候报名? 脸黑 爪黑 尾巴黑 全身泛灰的猫是什么品种? IT桌面支持是干吗的,需要学些什么知识? 淘宝购物时,当卖家已发货的情况下,还能更改快递么 百岁翻译家许渊冲逝世了,他为什么被誉为“诗译英法唯一人”? 淘宝交易时已发货还可以改运单号吗? 诗译英法第一人:一生热爱翻译,晚年患癌被认定只剩七年,后来呢?