用Perl语言写一个脚本实现滑动窗口(比如窗口100格每次滑动1格)统计一段DNA序列中的CG含量

一、用Perl语言写一个脚本实现滑动窗口(比如窗口100格每次滑动1格)统计一段DNA序列中的CG含量

use strict;# \(win_width: 窗口的宽度# \)pos: 当前窗口的位置,从1开始,\(DNA_len-\)win_width+1结束# \(DNA: DNA序列my \)DNA=“agtgatgatagtagatagatagtataatagatagatagatatatgatagatagataaggaatagaagta”;my \(win_width=10;for(my \)i=0;\(i<length(\)DNA)-\(win_width+1;\)i++){ print calc(\(DNA,\)win_width,\(i+1)."\n";}sub calc{ my (\)DNA,\(win_width,\)pos)=@_; \(DNA=~s/\s+//g; \)DNA=uc(\(DNA); if(\)DNA=~/[^ATGC]/){ print “非法字符”; return; } my \(sub_DNA=substr(\)DNA,\(pos-1,\)win_width); my @atgc=split(“”,\(sub_DNA); my %atgc; #atgc含量 map{\)atgc{\(_}++}@atgc; return sprintf("%.2f",(\)atgc{“G”}+\(atgc{"C"})/\)win_width);}

用Perl语言写一个脚本实现滑动窗口(比如窗口100格每次滑动1格)统计一段DNA序列中的CG含量

二、用Perl语言写一个脚本实现滑动窗口(比如窗口100格每次滑动1格)统计一段DNA序列中的CG含量

use strict;# \(win_width: 窗口的宽度# \)pos: 当前窗口的位置,从1开始,\(DNA_len-\)win_# \(DNA: Dmy \)DNA=“agtgatgatagtagatagatagtataatagatagatagatatatgatagaaagta”;my \(win_width=10;for(my \)i=0;\(i<length(\)DNA)-\(win_width+1;\)i++){ print calc(\(DNA,\)win_width,\(i+1)."\n";}sub calc{ my (\)DNA,\(win_wi \)DNA=s/\s+//g; \(DNA=uc(\)DNA); if($DNA=/[^ATGC]/){ prin return; } my \(sub_DNA=substr(\)win_width); my @atgc=DNA); my %atgc; #atgc含量 map{\(atgc{\)}++}@atgc; r(“%.2f”,(\(atgc{"G"}+\)atgc{“C”})/$win_width);}

三、用Perl语言写一个脚本实现滑动窗口(比如窗口100格每次滑…

use strict;# \(win_width: 窗口的宽度# \)pos: 当前窗口的位置,从1开始,\(DNA_len-\)win_width+1结束# \(DNA: DNA序列my \)DNA=“agtgatgatagtagatagatagtataatagatagatagatatatgatagatagataaggaatagaagta”;my \(win_width=10;for(my \)i=0;\(i<length(\)DNA)-\(win_width+1;\)i++){ print calc(\(DNA,\)win_width,\(i+1)."\n";}sub calc{ my (\)DNA,\(win_width,\)pos)=@_; \(DNA=~s/\s+//g; \)DNA=uc(\(DNA); if(\)DNA=~/[^ATGC]/){ print “非法字符”; return; } my \(sub_DNA=substr(\)DNA,\(pos-1,\)win_width); my @atgc=split(“”,\(sub_DNA); my %atgc; #atgc含量 map{\)atgc{\(_}++}@atgc; return sprintf("%.2f",(\)atgc{“G”}+\(atgc{"C"})/\)win_width);}

本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。