diff --git a/cxx/find-blobs.cc b/cxx/find-blobs.cc index 6c975b1..6710507 100644 --- a/cxx/find-blobs.cc +++ b/cxx/find-blobs.cc @@ -344,7 +344,7 @@ vector find_clusters(const string& pdb_filename, const clipper::Xmap* xmap = density_map.xmap(); float cut_off = config.sigma_level * map_stddev; - printf("Density std.dev: %g, cut-off: %g (%g sigma)\n", + printf("Density std.dev: %.3f, cut-off: %.3f e/A^3 (%g sigma)\n", map_stddev, cut_off, config.sigma_level); vector all_clusters = find_clusters_by_flood_fill(*xmap, config.min_volume, cut_off); diff --git a/main.py b/main.py index e40c155..2daec26 100755 --- a/main.py +++ b/main.py @@ -17,10 +17,11 @@ from dimple import workflow from dimple import coots -__version__ = '2.4.2' +__version__ = '2.4.3' -# sometimes people have incomplete models in their pdb files +# sometimes provided models are incomplete, be suspicious above this solvent% HIGH_SOLVENT_PCT = 75 +# do not search blobs if the model is too bad BAD_FINAL_RFREE = 0.5 def dimple(wf, opt): @@ -280,6 +281,8 @@ def _refmac_rms_line(data): def _after_phaser_comments(phaser_job, wf, sg_in): phaser_data = phaser_job.data + if 'error' in phaser_data: + comment("\n" + phaser_data['error']) if (phaser_job.exit_status != 0 or phaser_data['info'] == 'Sorry - No solution'): comment("\nGiving up.") diff --git a/workflow.py b/workflow.py index 1f1c87b..54aecc3 100644 --- a/workflow.py +++ b/workflow.py @@ -350,16 +350,18 @@ def _phaser_parser(job): for line in job.out.read_line(): if line.startswith('*** Phaser Module:'): d['info'] = '[%s]' % line[19:70].strip().lower() - if line.startswith(' SOLU SET ') and 'LLG=' in line: + elif line.startswith(' SOLU SET ') and 'LLG=' in line: d['info'] = line[12:].strip() if len(d['info']) > 52: d['info'] = d['info'][:50].rsplit(' ', 1)[0] + '...' - if line.startswith(' Sorry - No solution'): + elif line.startswith(' Sorry - No solution'): d['info'] = line.strip() if 'No solution with all components' in line: d['partial_solution'] = 'yes' - if line.startswith(' SOLU SPAC '): + elif line.startswith(' SOLU SPAC '): d['SG'] = line[13:].strip() + elif ' ERROR:' in line: + d['error'] = line.strip() return "%-48s" % d.get('info', '') def _truncate_parser(job):