// ############################## START FUNC ############################################ function recognize_features(patterns,MW) { var multipath=patterns.split("%"); var collected_string=""; var group=""; var stringparts=new Array(0); var d=0; var xt=0; var yt=0; var zt=0; var count1; var count2; var count3; var count4; var NH=0; var NHstr=""; for(n=0;n69) group="electronegative_complex"; } } // =========== if else ============== else{ if(multipath[n]!="#" && stringparts[4]!="complex"){ d=parseInt(stringparts[3]); group="big_fat_group"; if(d<18) group="medium_fat_group"; if(d<12) group="small_fat_group"; if(stringparts[4]=="r" && d<18) group=""; // Ignore medium/small fat groups on fat rings above if(MW/d<3) group=""; // Ignore fat complex which involves big parts of the molecule. } if(stringparts[4]=="complex"){ NH=0; if(stringparts[5].indexOf("*1*")!=-1) NH=2; // 2 if NH present in ring, else 0 count1=(stringparts[5].split("*").length-1-NH*4)/8; count2=(stringparts[5].split("*7*").length-1-NH)/4; count3=(stringparts[5].split("*8*").length-1)/4; count4=(stringparts[5].split("*16*").length-1)/4; NHstr=""; if(NH==2) NHstr="_NH"; // So count1=size of ring, count2 numbers of N in ring, count3 numbers of O, count4 S // Remember - this is a aromatic ring group="Compl_"+count1+"_N"+count2+"_O"+count3+"_S"+count4+NHstr; } } // =========== if ends ============== d=stringparts[3]; xt=parseInt(1000*stringparts[0]/d)/1000; yt=parseInt(1000*stringparts[1]/d)/1000; zt=parseInt(1000*stringparts[2]/d)/1000; if(group!="") collected_string=collected_string+" "+group+" "+ xt+ " "+yt+" "+zt+"#"; } collected_string=collected_string.substring(0,collected_string.length-1); return collected_string; } // ############################### end func ############################################