예제 #1
0
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")
예제 #2
0
파일: rama.py 프로젝트: ASCM/apbs-pdb2pqr
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")
예제 #3
0
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()
예제 #4
0
파일: chi.py 프로젝트: ASCM/apbs-pdb2pqr
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()