/** * \file em3d_single_score.cpp \brief A program to score a single * docking model in PDB file * * Copyright 2007-2013 IMP Inventors. All rights reserved. * */ #include "EMFit.h" #include #include #include #include #include namespace po = boost::program_options; int main(int argc, char **argv) { // print program call for(int i=0; i pdb_file_names; std::string map_file_name; std::string out_file_name = "em_fit.res"; po::options_description desc("Usage: ... "); desc.add_options() ("help", "Program for filtering of docking solutions with EM density maps") ("input-files", po::value< std::vector >(), "input PDB, feature points and density map files") ("resolution,r", po::value(&resolution)->default_value(20.0), "map resolution (default = 20.0)") ("distance_threshold,d", po::value(&dist_thr)->default_value(10.0), "distance threshold for map penetration, default value 10A") ("volume_scale,v", po::value(&volume_scale)->default_value(1.5), "volume scale parameter to determine envelope thr, default value 1.5A") ("output_file,o", po::value(&out_file_name)->default_value("em_fit.res"), "output file name, default name em_fit.res") ; po::positional_options_description p; p.add("input-files", -1); po::variables_map vm; po::store( po::command_line_parser(argc,argv).options(desc).positional(p).run(), vm); po::notify(vm); // read options std::vector files; if(vm.count("input-files")) files = vm["input-files"].as< std::vector >(); if(vm.count("help") || files.size() < 2) { std::cout << desc << "\n"; return 0; } for(unsigned int i=0; i 1) { out_file_namei = out_file_name + std::string(boost::lexical_cast(i)) + ".res"; pdb_file_namei += std::string(boost::lexical_cast(i)); } pdb_file_namei += ".pdb"; em_fit.output(out_file_namei, pdb_file_namei); } return 0; }