筛选染色体连续区域的策略
要求:篩選染色體上符合要求的連續(xù)的純合突變區(qū)域。perl ?(/(ㄒoㄒ)/~~現(xiàn)在只會用perl)
笨辦法,正則匹配:
舉例子1:
my $info=(HOMA,871334,HET,874950,HOMA,876499,HOMA,887643);
while($info =~ /((HOMA,(\d+),){2,})/g){
? ? ? ? print "$1\n"; ##$1是輸出大括號內(nèi)的內(nèi)容,所有符合要求的具有連續(xù)連續(xù)至少兩次純合突變的區(qū)域被篩選出來啦
}
舉例子2:
因為是按照染色體的位置順序依次判斷,預先設置一個變量來判斷“區(qū)域中斷點”,先設置為空,將讀進去的區(qū)域第一個符合要求的變量賦給他,不同即為斷點,判斷之前存儲的區(qū)域是否符合要求即可,然后從斷點后繼續(xù)篩選,將符合要求的純合突變賦值給“斷點”。。。
my @getpos=();##存儲連續(xù)的homa位置信息
my $lasttype="";
foreach my $pos(@sortpos){##排好順序的位置
? ? ? ? ? my $geno=$$hash{$chr}{$pos}{'geno'};
? ? ? ? ? if($geno ne $lasttype){
? ? ? ? ? ? ? if($lasttype eq ""){
? ? ? ? ? ? ? ? ?if($geno eq 'HOMA'){
? ? ? ? ? ? ? ? ? push @getpos,$pos;
? ? ? ? ? ? ? ? ? $lasttype='HOMA';
? ? ? ? ? ? ? ? ? next;
? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ?}else{
? ? ? ? ? ? ? ? ?check();##子函數(shù)檢查模塊
? ? ? ? ? ? ? ? ?$lasttype="";
? ? ? ? ? ? ? ? ?@getpos=();
? ? ? ? ? ? ?}
? ? ? ? }else{
? ? ? ? ? ? push @getpos,$pos;
? ? ? ? ? ? }
?}
?
?
bingo!!!
轉載于:https://www.cnblogs.com/gui-/p/6873906.html
總結
以上是生活随笔為你收集整理的筛选染色体连续区域的策略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue中的computed属性
- 下一篇: 数理统计期末复习知识点总结(一)