void dumpCurrentContext(std::ostream &os) { JSONWriter json(os); #ifndef NDEBUG GLint old_bindings[NUM_BINDINGS]; for (unsigned i = 0; i < NUM_BINDINGS; ++i) { old_bindings[i] = 0; glGetIntegerv(bindings[i], &old_bindings[i]); } #endif dumpParameters(json); dumpShaders(json); dumpTextures(json); dumpFramebuffer(json); #ifndef NDEBUG for (unsigned i = 0; i < NUM_BINDINGS; ++i) { GLint new_binding = 0; glGetIntegerv(bindings[i], &new_binding); if (new_binding != old_bindings[i]) { std::cerr << "warning: " << enumToString(bindings[i]) << " was clobbered\n"; } } #endif }
void dumpDevice(std::ostream &os, ID3D11DeviceContext *pDeviceContext) { JSONWriter json(os); dumpParameters(json, pDeviceContext); dumpShaders(json, pDeviceContext); // TODO: dump constant buffers json.beginMember("uniforms"); json.beginObject(); json.endObject(); json.endMember(); // uniforms // TODO: dump stream-out buffer, vertex buffer json.beginMember("buffers"); json.beginObject(); json.endObject(); json.endMember(); // buffers dumpTextures(json, pDeviceContext); dumpFramebuffer(json, pDeviceContext); }
void dumpDevice(StateWriter &writer, ID3D10Device *pDevice) { dumpParameters(writer, pDevice); dumpShaders(writer, pDevice); dumpTextures(writer, pDevice); dumpFramebuffer(writer, pDevice); }
void dumpCurrentContext(std::ostream &os) { JSONWriter json(os); #ifndef NDEBUG GLint old_bindings[NUM_BINDINGS]; for (unsigned i = 0; i < NUM_BINDINGS; ++i) { old_bindings[i] = 0; glGetIntegerv(bindings[i], &old_bindings[i]); } #endif Context context; /* Temporarily disable messages, as dumpParameters blindlessly tries to * get state, regardless the respective extension is supported or not. */ GLDEBUGPROC prevDebugCallbackFunction = 0; void *prevDebugCallbackUserParam = 0; if (context.KHR_debug) { glGetPointerv(GL_DEBUG_CALLBACK_FUNCTION, (GLvoid **) &prevDebugCallbackFunction); glGetPointerv(GL_DEBUG_CALLBACK_USER_PARAM, &prevDebugCallbackUserParam); glDebugMessageCallback(NULL, NULL); } dumpParameters(json, context); // Use our own debug-message callback. if (context.KHR_debug) { glDebugMessageCallback(debugMessageCallback, NULL); } dumpShadersUniforms(json, context); dumpTextures(json, context); dumpFramebuffer(json, context); #ifndef NDEBUG for (unsigned i = 0; i < NUM_BINDINGS; ++i) { GLint new_binding = 0; glGetIntegerv(bindings[i], &new_binding); if (new_binding != old_bindings[i]) { std::cerr << "warning: " << enumToString(bindings[i]) << " was clobbered\n"; } } #endif // Restore debug message callback if (context.KHR_debug) { glDebugMessageCallback(prevDebugCallbackFunction, prevDebugCallbackUserParam); } }
int Docking::outputScores(const string& outputFile, const string& header, vector <pair<double, ScoreConfiguration> > scores) const { /*PdbFile ligandPDB; PdbFile receptorPDB;*/ FILE *fp = fopen(outputFile.c_str(), "wt"); //FILE *fpPDB = 0; if (fp == 0) { // can't open file return -1; } /*if (ligandPath_!="" && receptorPath_!="" && radiiPath_!="") { fpPDB = fopen((outputFile + ".pdb").c_str(), "w"); if (fpPDB == NULL) return -1; } if (ligandPath_!="" && receptorPath_!="" && radiiPath_!="") { ligandPDB.Init((char *) ligandPath_.c_str()); if (!ligandPDB.LoadAtmtypenumbers((char *) radiiPath_.c_str())) return -1; ligandPDB.UseUnitedRadius(); ligandPDB.Import(); receptorPDB.Init((char *) receptorPath_.c_str()); if (!receptorPDB.LoadAtmtypenumbers((char *) radiiPath_.c_str())) return -1; receptorPDB.UseUnitedRadius(); receptorPDB.Import(); }*/ fprintf(fp, "%s", header.c_str()); dumpParameters(fp); sort(scores.begin(), scores.end(), greater < pair<double, ScoreConfiguration> >()); //fprintf(fp, "# rank score R beta1 gamma1 alpha2 beta2 gamma2\n"); fprintf(fp, "# rank score R Rec_beta1 Rec_gamma1 Lig_alpha2 Lig_beta2 Lig_gamma2\n"); for (unsigned int i = 0; i < scores.size(); ++i) { //fprintf(fp, "%d %lf %lf %lf %lf %lf %lf %lf\n", i+1, scores[i].first, scores[i].second.R, scores[i].second.beta1, scores[i].second.gamma1, scores[i].second.alpha, scores[i].second.beta2, scores[i].second.gamma2); fprintf(fp, "%d %E %lf %lf %lf %lf %lf %lf\n", i+1, scores[i].first, scores[i].second.R, scores[i].second.beta1, scores[i].second.gamma1, scores[i].second.alpha, scores[i].second.beta2, scores[i].second.gamma2 ); /*if (ligandPath_!="" && receptorPath_!="" && radiiPath_!="") { fprintf (fpPDB, "MODEL %d\n", i); receptorPDB.WriteTransformedAtoms(fpPDB, 'R', scores[i].second.R, 0.0f, scores[i].second.beta1, scores[i].second.gamma1); fprintf (fpPDB, "TER\n"); ligandPDB.WriteTransformedAtoms(fpPDB, 'L', 0.0f, scores[i].second.alpha, scores[i].second.beta2, scores[i].second.gamma2); fprintf (fpPDB, "TER\n"); fprintf (fpPDB, "ENDMDL\n"); }*/ } fclose(fp); /*if (ligandPath_!="" && receptorPath_!="" && radiiPath_!="") fclose(fpPDB);*/ return 0; }
int main(int argc, char* argv[]) { // parses the command line arguments std::string filename=""; eClassifierType cType=RBF; std::string cParam=""; eKernelType kType=Linear; std::string kScalar=""; std::string vParam=""; int width=400; int height=400; lti::dpoint ur(-1,-1); lti::dpoint ll(1,1); bool ok; for (int i=1; i<argc; i++) { if (*argv[i] == '-') { switch (argv[i][1]) { // dump parametes? case 'd': dumpParameters(); exit(0); break; // print help case '-': if (strcasecmp(&argv[i][2],"help")==0) { printHelp(); exit(0); } else { std::cerr << "Unknown option "<<argv[i]<<std::endl; } break; // classifier case 'c': if (i < argc-1) { ++i; if (strcasecmp(argv[i],"rbf") == 0) { cType=RBF; } else if (strcasecmp(argv[i],"mlp") == 0) { cType=MLP; } else if (strcasecmp(argv[i],"svm") == 0) { cType=SVM; } else if (strcasecmp(argv[i],"knn") == 0) { cType=KNN; } else { std::cerr << "Warning: Classifier " << argv[i] << " is not supported, using RBF instead\n"; } } else { std::cerr << "Missing argument to -c\n"; } break; // classifier parameters case 'p': if (i < argc-1) { cParam=argv[++i]; } else { std::cerr << "Missing argument to -p\n"; } break; // kernel case 'k': if (i < argc-1) { ++i; if (strcasecmp(argv[i],"linear") == 0) { kType=Linear; } else if (strcasecmp(argv[i],"polynomial") == 0) { kType=Polynomial; } else if (strcasecmp(argv[i],"radial") == 0) { kType=Radial; } else if (strcasecmp(argv[i],"sigmoid") == 0) { kType=Sigmoid; } else { std::cerr << "Warning: Kernel " << argv[i] << " is not supported using Linear\n"; } } else { std::cerr << "Missing argument to -k\n"; } break; // kernel parameter case 's': if (i < argc-1) { kScalar=argv[++i]; } else { std::cerr << "Missing argument to -s\n"; } break; // visualizer parameters case 'v': if (i < argc-1) { vParam=argv[++i]; } else { std::cerr << "Missing argument to -v\n"; } break; // image width case 'w': if (i < argc-1) { width=atoi(argv[++i]); } else { std::cerr << "Missing argument to -w\n"; } break; // image height case 'h': if (i < argc-1) { height=atoi(argv[++i]); } else { std::cerr << "Missing argument to -h\n"; } break; // range case 'r': ok = i < argc-1; if (ok) { ll.x=atof(&argv[++i][1]); } ok = ok && i < argc-1; if (ok) { ll.y=atof(argv[++i]); } ok = ok && i < argc-1; if (ok) { ur.x=atof(argv[++i]); } ok = ok && i < argc-1; if (ok) { ++i; int itmp; itmp=strlen(argv[i]); char stmp[itmp-1]; strncpy(stmp,argv[i],itmp-2); ur.y=atof(stmp); } if (!ok) { std::cerr << "Missing argument to -r or argument incomplete\n"; } break; // unknown option default: std::cerr << "Warning: Unknown option -" << argv[i][1] << std::endl; break; } } else { filename=argv[i]; if (i<argc-1) { std::cerr << "filename must be last argument, ignoring the rest.\n"; break; } } } if (filename.length() == 0) { std::cerr << "You need to give a file name.\n"; printHelp(); exit(1); } lti::supervisedInstanceClassifier* classifier=0; if (!initClassifier(classifier, cType, cParam, kType, kScalar)) { std::cerr << "Could not initialize classifier\n"; exit(1); } if (classifier==0) { std::cerr << "Classifier not initialized\n"; exit(1); } lti::dmatrix data; lti::ivector ids; if (!getData(filename,data,ids)) { std::string msg="Could not read data from file " + filename; std::cerr << msg << std::endl; exit(1); } if (!classifier->train(data,ids)) { std::cerr << "Could not train classifier on given data\n"; std::cerr << classifier->getStatusString() << std::endl; exit(1); } lti::classifier2DVisualizer::parameters vizParam; if (!initVisualizerParam(vizParam, vParam, width, height, ll, ur)) { std::cerr << "Could not initialize visualizer\n"; exit(1); } _my_viz.setParameters(vizParam); lti::image img(width,height); if (!_my_viz.apply(*classifier,data,img,ids)) { std::cerr << "Error visualizing the classification result\n"; } _my_viewer.show(img); _my_viewer.waitButtonPressed(); _my_viewer.hide(); lti::passiveWait(10000); delete classifier; classifier=0; lti::gtkServer::shutdown(); }