예제 #1
0
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
예제 #2
0
파일: fields.py 프로젝트: raywangyr/scripts
#!/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:"):