def density_score_reader( silent_fn_list ): ''' read into density score ''' Dict = {} for silent_fn in silent_fn_list: stderr.write( "reading %s\n" % silent_fn ) fields_Dict = read_silent_header( silent_fn ) with open( silent_fn ) as file: l = file.readline() while l: if l.startswith("SCORE:"): ls = l.split() try: tag = ls[ fields_Dict["description"] ] domain_id = tag.split(".")[2][:4] + tag.split(".")[2][-1] placement = ls[ fields_Dict["description"] ] density_score = float( ls[ fields_Dict["elec_dens_whole_structure_allatom"] ] ) rmsd = float( ls[ fields_Dict["after_no_super_rmsd"] ] ) if domain_id not in Dict.keys(): Dict[ domain_id ] = { placement : ( density_score, rmsd ) } else: Dict[ domain_id ][ placement ] = ( density_score, rmsd ) except IndexError: stderr.write("WARNING: cannot split this line: %s" % l) l = file.readline() #stderr.write( "." ) stderr.write( "\ndone reading density table from %s\n" % silent_fn ) return Dict
#!/usr/bin/env python2.7 from rosetta_util import read_silent_header from sys import argv from os.path import exists assert exists( argv[1] ) Dict = read_silent_header( argv[1] ) for tuple in sorted( Dict.items(), key=lambda value: value[1] ): print "%2s %s" %( tuple[1]+1, tuple[0] )
from pprint import pprint import operator import math from rosetta_util import read_silent_header if __name__=="__main__": parser = ArgumentParser() parser.add_argument("-r", "--results_file", required=True, help="") parser.add_argument("-s", "--silent_file", required=True, help="this is for getting header to figure out column") parser.add_argument("-c", "--cluster_size_cut", type=int, default=2, help="") parser.add_argument("-b", "--bucket_size", type=int, default=25, help="") parser.add_argument("--random_fill", action="store_true", default=False, help="") args = parser.parse_args() score_Dict = {} fields_Dict = read_silent_header( args.silent_file ) for line in popen("grep ^SCORE: %s" % args.silent_file, "r" ).readlines(): if "description" in line: continue line_ed = line.split() score = float( line_ed[ fields_Dict["elec_dens_whole_structure_allatom"] ] ) super_rmsd = float( line_ed[ fields_Dict["after_super_rmsd"] ] ) nosuper_rmsd = float( line_ed[ fields_Dict["after_no_super_rmsd"] ] ) tag = line_ed[ fields_Dict["description"] ] score_Dict[ tag ] = ( score, nosuper_rmsd, super_rmsd ) #pprint( score_Dict ) Dict = {} for line in open( args.results_file, "r" ).readlines(): if line.startswith("test_cluster:"):