// aligwl - WL display. Included // #ifdef _ALIG_WL_ORDERED //++int iSy; //double dWL = ((double)(iW - dX1 - dX2 ) + 1.) / (double)(iSeqLen - 1); // *** -1 double dWL = ((double)(iW - dX1 - dX2 ) ) / (double)iSeqLen; //cout << " ** sWL len = " << sWL.length() << " dWL = " << dWL << endl; //cout << " - last pos iW - dX2 = " << iW - dX2 << ", dX1 + i*dWL = " << dX1 + 80*dWL << endl; int iWLceil = ceil( (oAli.WeightLineMax) ) * 10 ; bool bColOrdered = false; #ifdef _ALIG_WL_ORDERED if( image_cfg.type == 12 ) bColOrdered = true; multiset< double, greater< double >, alloc > orSums; multiset< double, greater< double >, alloc >::iterator iiSU; multiset< int, greater< int >, alloc > orSL, orGL; multiset< int, greater< int >, alloc >::iterator iiSL, iiGL; multiset< int, less< int >, alloc > orNG; multiset< int, less< int >, alloc >::iterator iiNG; if( image_cfg.type == 12 ) { /** sprintf( buf20, "best %.1f\0", oAli.WeightLineMax ); gdImageString(im_out, gdFontTiny, dX1+5, iYwei + image_cfg.WLwidth , (unsigned char*)buf20, brown ); //(unsigned char*)"best", brown ); gdImageString(im_out, gdFontTiny, iW - dX2 - 6*5, iYwei + image_cfg.WLwidth , (unsigned char*)"worst", brown ); **/ //+for( i = 0; i < sWL.length(); ++i ) { for( i = 0; i < iSeqLen; ++i ) { //+if( i >= iSeqLen ) break; // ---------> orSums.insert( oAli.WeightLineSums[i] ); } int iQ, iG; for( i = 0; i < iSeqLen; ++i ) { //Num of same letters map< char, int, less< char >, alloc > mLet, mGLet; map< int , int, less< int >, alloc > mGr; map< char, int, less< char >, alloc >::iterator iiL; // set ? int iGL = 0; for( j = 0; j < nSeq; ++j ) { string sAli = vAli[j]; //mLet[vAli[j][i]] if( sAli[i] != '-' ) { iQ = mLet[ sAli[i] ]; mLet[ sAli[i] ] = iQ + 1; // same letters iG = f_findGroup( sAli[i], aG ); if( iG > -1 ) { if( iG == vColGroup[i] ) // Same group ++iGL; mGr[iG] = iG; // num of groups } } } // Max same letters iQ = -1; for( iiL = mLet.begin(); iiL != mLet.end(); ++iiL ) { if( (*iiL).second > iQ ) { iQ = (*iiL).second; } } // Inserts: orSL.insert( iQ ); orGL.insert( iGL ); orNG.insert( mGr.size() ); } // Start pos of iterator: iiSU = orSums.begin(); } #endif #ifdef _ALIG_WL_ORDERED f_outFragmentWL( im_out, oAli, image_cfg, dX1, iW - dX2, iYwei, dWL, iWLceil, iiSU, 0, 0 ); // 0, 0 = splitOffset & blocksize #else f_outFragmentWL( im_out, oAli, image_cfg, dX1, iW - dX2, iYwei, dWL, iWLceil ); #endif /** //+for( i = 0; i < sWL.length(); ++i ) { for( i = 0; i < iSeqLen; ++i ) { //+if( i >= iSeqLen ) break; // ---------> #ifdef _ALIG_WL_ORDERED if( image_cfg.type == 12 ) { iWk = (*iiSU) * 10.; ++iiSU; } else { iWk = oAli.WeightLineSums[i] * 10.; } #else iWk = oAli.WeightLineSums[i] * 10.; #endif iC = f_clr( im_out, iWLceil - iWk, 0, iWLceil ); gdImageFilledRectangle(im_out, dX1 + (double)i * dWL + 1, iYwei, dX1 + (double)(i+1.) * dWL, iYwei + image_cfg.WLwidth - 1, iC ); //dX1 + (double)(i+1.) * dWL, iH - dY2 - 1, iC ); } **/ f_outFrameWL( im_out, image_cfg, dX1, iW - dX2, iYwei, bColOrdered, oAli.WeightLineMax, 1, 1, iW - dX2, white, black, brown, dorange ); // iFrag, iLast /** // Black/white frame if( image_cfg.WLtype == 0 ) { // bottom //gdImageLine(im_out, dX1 - 2, iYwei - 2, iW - dX2, iYwei -2, white ); // -dgray gdImageLine(im_out, dX1 - 1, iYwei - 1, iW - dX2, iYwei -1, white ); gdImageLine(im_out, dX1 - 1, iYwei + image_cfg.WLwidth - 1, iW - dX2, iYwei + image_cfg.WLwidth - 1 , black ); gdImageLine(im_out, iW - dX2, iYwei , iW - dX2, iYwei + image_cfg.WLwidth - 1 , black ); gdImageLine(im_out, dX1 - 1, iYwei - 1, dX1 - 1, iYwei + image_cfg.WLwidth - 1 , white ); //gdImageLine(im_out, dX1 - 2, iYwei - 2, dX1 - 2, iYwei + image_cfg.WLwidth - 1 , // white); } // 'column weight' //gdImageString(im_out, gdFontTiny, dX1 - 5*11 - 4, iYwei - 2, // (unsigned char*)"weight line", dorange ); //brown ); if( image_cfg.WLwidth < 12 ) { gdImageString(im_out, gdFontTiny, dX1 - 5*6 - 4, iYwei - 2, (unsigned char*)"weight", dorange ); //brown ); } else { gdImageString(im_out, gdFontTiny, dX1 - 5*6 - 4, iYwei - 2, (unsigned char*)"column", dorange ); //brown ); gdImageString(im_out, gdFontTiny, dX1 - 5*6 - 4, iYwei - 2+10, (unsigned char*)"weight", dorange ); //brown ); } // 'best/worst' if( image_cfg.type == 12 ) { sprintf( buf20, "best %.1f\0", oAli.WeightLineMax ); gdImageString(im_out, gdFontTiny, dX1+5, iYwei + image_cfg.WLwidth , (unsigned char*)buf20, brown ); //(unsigned char*)"best", brown ); gdImageString(im_out, gdFontTiny, iW - dX2 - 6*5, iYwei + image_cfg.WLwidth , (unsigned char*)"worst", brown ); } **/ // EOF