//' map a molecule to a maccs fingerprints //' //' @param xp a molecule //' @return a vector // [[Rcpp::export]] IntegerVector mol2maccs( SEXP xp){ int i; RWMol *mol = p_getMol(xp); if( mol ){ ExplicitBitVect *bv = MACCSFingerprints::getFingerprintAsBitVect ( *mol ); if(bv){ IntegerVector v = IntegerVector( bv->getNumBits ()); for( i = 0; i< bv->getNumBits ();i++ ){ v(i) = bv->getBit(i)?1:0; } return v; } } return IntegerVector(0); }
//' map a molecule to a morgan fingerprints (atom environement) //' //' @param xp a molecule //' @param radius radius of scaffold //' @param nBits final length //' @param useFeatures useFeatures //' @return a vector // [[Rcpp::export]] IntegerVector mol2morgan( SEXP xp , unsigned int radius=2,unsigned int nBits=2048, bool useFeatures=false){ // radius = 2 => ecfp4 2^2 // radius = 2 & useFeatures=True => fcfp4 int i; RWMol *mol = p_getMol(xp); if( mol ){ ExplicitBitVect *bv = MorganFingerprints::getFingerprintAsBitVect ( *mol , radius,nBits, 0,0,false,useFeatures,false,0); if(bv){ IntegerVector v = IntegerVector( bv->getNumBits ()); for( i = 0; i< bv->getNumBits ();i++ ){ v(i) = bv->getBit(i)?1:0; } delete bv; return v; } } return IntegerVector(0); }