def create_rama_output(routines, outfile, outputtype='rama'): routines.write("\nPrinting %s angles for each residue...\n" % (outputtype if outputtype != 'rama' else 'phi and psi')) verboseHeader = "Residue %s\n" % (outputtype.capitalize( ) if outputtype != 'rama' else 'Phi Psi') routines.write(verboseHeader) routines.write('-' * len(verboseHeader) + '\n') output = extensions.extOutputHelper(routines, outfile) # Initialize some variables protein = routines.protein for residue in protein.getResidues(): if residue.hasAtom("N"): ncoords = residue.getAtom("N").getCoords() else: continue if residue.hasAtom("CA"): cacoords = residue.getAtom("CA").getCoords() else: continue if residue.hasAtom("C"): ccoords = residue.getAtom("C").getCoords() else: continue try: if residue.peptideN != None: pepncoords = residue.peptideN.getCoords() else: continue if residue.peptideC != None: pepccoords = residue.peptideC.getCoords() else: continue except AttributeError: # Non amino acids continue output.write(str(residue)) if outputtype in ('rama', 'phi'): phi = getDihedral(pepccoords, ncoords, cacoords, ccoords) output.write("\t%.4f" % phi) if outputtype in ('rama', 'psi'): psi = getDihedral(ncoords, cacoords, ccoords, pepncoords) output.write("\t%.4f" % psi) output.write('\n') routines.write("\n")
def create_rama_output(routines, outfile, outputtype='rama'): routines.write("\nPrinting %s angles for each residue...\n" % (outputtype if outputtype != 'rama' else 'phi and psi')) verboseHeader = "Residue %s\n" % (outputtype.capitalize() if outputtype != 'rama' else 'Phi Psi') routines.write(verboseHeader) routines.write('-' * len(verboseHeader) + '\n') output = extensions.extOutputHelper(routines, outfile) # Initialize some variables protein = routines.protein for residue in protein.getResidues(): if residue.hasAtom("N"): ncoords = residue.getAtom("N").getCoords() else: continue if residue.hasAtom("CA"): cacoords = residue.getAtom("CA").getCoords() else: continue if residue.hasAtom("C"): ccoords = residue.getAtom("C").getCoords() else: continue try: if residue.peptideN != None: pepncoords = residue.peptideN.getCoords() else: continue if residue.peptideC != None: pepccoords = residue.peptideC.getCoords() else: continue except AttributeError: # Non amino acids continue output.write(str(residue)) if outputtype in ('rama', 'phi'): phi = getDihedral(pepccoords, ncoords, cacoords, ccoords) output.write("\t%.4f" % phi) if outputtype in ('rama', 'psi'): psi = getDihedral(ncoords, cacoords, ccoords, pepncoords) output.write("\t%.4f" % psi) output.write('\n') routines.write("\n")
def run_extension(routines, outroot, options): """ Print the list of psi angles Parameters routines: A link to the routines object outroot: The root of the output name options: options object """ outname = outroot + ".chi" outfile = open(outname, "w") routines.write("\nPrinting chi angles for each residue...\n") routines.write("Residue chi\n") routines.write("----------------\n") # Initialize some variables protein = routines.protein for residue in protein.getResidues(): if residue.hasAtom("N"): ncoords = residue.getAtom("N").getCoords() else: continue if residue.hasAtom("CA"): cacoords = residue.getAtom("CA").getCoords() else: continue if residue.hasAtom("CB"): cbcoords = residue.getAtom("CB").getCoords() else: continue if residue.hasAtom("CG"): gcoords = residue.getAtom("CG").getCoords() elif residue.hasAtom("OG"): gcoords = residue.getAtom("OG").getCoords() elif residue.hasAtom("SG"): gcoords = residue.getAtom("SG").getCoords() else: continue chi = getDihedral(ncoords, cacoords, cbcoords, gcoords) routines.write("%s\t%.4f\n" % (residue, chi)) outfile.write("%s\t%.4f\n" % (residue, chi)) routines.write("\n") outfile.close()