$string1 = "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMMMMMMIIIIMMMMMMMMMMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMMMMMMIIIMMMMMMMMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMMMMMMMMMMIIIIIMMMMMMMMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMMMMMMIIIMMMMMMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMMMMMMMMIIIMMMMMMMMMOOOOOOOOOOOOOOOOOOOMMMMMMMMMIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMOMMMMMMMMMMMMM"; $string2 = "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMOOOOOOOOOOOOOOOOOMMMMMMMMMMMMMMMMIIIIIMMMMMMMMMMMMMOOOOOOOOOOOOOOOOOOOOOOOOMMMMMMMMMMMMMMMIIIMMMMMMMMMMMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMMMMMMMMMMMMIIIMMMMMMMMMMMMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMMMMMMMMMMMIIIMMMMMMMMMMMMMMMOOOOOOOOOOOOOOOOOOOOOOOOOMMMMMMMMMMMMMMIIIMMMMMMMMMMMMOOOOOOOOOOOOOOOMMMMMMMMMMIIIIIIMMMMMMMMMMMMOOOOOOOOOOOOOOOOOMMMMMMMMMMMMII"; #### #N-terminal $Nterm_topo=substr($string2,0,1); $Nterm_pred=substr($string1,0,1); #TM number and orientation for $string2 $TM_topo=0; $all_tms=''; while($string2=~/M+/g) { $TM_topo++; $start_tm=$-[0]; $end_tm=$+[0]-1; $all_tms.=$start_tm."-".$end_tm."#"; } chop $all_tms; #TM number and orientation for $string1 $TM_pred=0; while($string1=~/(M+)/g) { $TM_pred++; } ################ Orientation ############################ $correct_TM_location=0; @split_tms_real=split(/#/, $all_tms); for ($i=0;$i<=$#split_tms_real;$i++) { $corresp_TM_real=$split_tms_real[$i]; if($corresp_TM_real=~/(\d+)\-(\d+)/) { $start_real=$1; $end_real=$2; $real_length=$end_real-$start_real+1; $substr_pred=substr($string1,$start_real, $real_length); $count_M=$substr_pred=~tr/M//; if($count_M>=5) {$correct_TM_location++;} } } if( $Nterm_topo eq $Nterm_pred $TM_topo==$TM_pred && $TM_pred==$correct_TM_location) { $correct_topo++; }