Ejemplo n.º 1
0
    def __init__(self, checkID, level, modelCount ):
        NTdict.__init__( self, __CLASS__ = 'CingResult',
                         checkID = checkID,
                         alternate = None,
                         level   = level,
#                         comment = Whatif.explain(checkID),
                       )
#        # Initialize the lists
#        if Whatif.cingNameDict.has_key(checkID):
#            self.alternate = Whatif.cingNameDict[checkID]
#        for c  in  [ VALUE_LIST_STR, QUAL_LIST_STR]:
        for c  in  [ constants.VALUE_LIST_STR ]:
            self[c] = nTfill( None, modelCount)
Ejemplo n.º 2
0
    def _calculateAverage(self, dr):
        """
        Calculate relative R-6 averaged distance contributions of dr
        Adapted from DistanceRestraint.calculateAverage

        returns None on error or list with relative contributions for each pair on success.
        """
#        nTdebug('Queeny._calculateAverage: %s')
#        error = False    # Indicates if an error was encountered when analyzing restraint @UnusedVariable

        modelCount = dr.getModelCount()
        if not modelCount:
#            nTdebug('DistanceRestraint.calculateAverage: No structure models (%s)', self)
            return None
        #end if

        if len(dr.atomPairs) == 0:
            return None
        #end if

        models = range(modelCount)
        pair = 0
        rm6distances = nTfill(0.0, len(dr.atomPairs))

        for atm1, atm2 in dr.atomPairs:

            # GV says: Check are done to prevent crashes upon rereading
            # datasets with floating/adhoc residues/atoms

            # skip trivial cases
            if atm1 == atm2:
                continue
            if atm1 is None or atm2 is None:
                continue
            #expand pseudoatoms
            atms1 = atm1.realAtoms()
            if atms1 is None:
                #nTdebug('DistanceRestraint.calculateAverage: %s.realAtoms() None (%s)', atm1, self)
                continue
            atms2 = atm2.realAtoms()
            if atms2 is None:
                #nTdebug('DistanceRestraint.calculateAverage: %s.realAtoms() None (%s)', atm2, self)
                continue
            for a1 in atms1:
                #print '>>>', a1.format()

                if len(a1.coordinates) != modelCount:
                    return None
                #end if

                for a2 in atms2:
                    #print '>>', atm1, a1, atm2, a2
                    if len(a2.coordinates) != modelCount:
                        return None
                    #end if

                    for i in models:
                        rm6distances[pair] += superpose.Rm6dist(a1.coordinates[i].e, a2.coordinates[i].e)
                    #end for models
                #end for a2
            #end for a1
            pair += 1
        #end for

#        if self.distances[i] > 0.0:
#                self.distances[i] = math.pow(self.distances[i], -0.166666666666666667)
#        #end if

        psum = sum(rm6distances)
        for i,value in enumerate(rm6distances):
            rm6distances[i] = value/psum
        #end for

        return rm6distances
Ejemplo n.º 3
0
 def __init__( self, rowSize, colSize, default=None ):
     NTlist.__init__( self )
     for _i in range(rowSize):
         self.append(nTfill(default, colSize))
     self.rowSize = rowSize
     self.colSize = colSize
Ejemplo n.º 4
0
 def __init__(self, rowSize, colSize, default=None):
     NTlist.__init__(self)
     for _i in range(rowSize):
         self.append(nTfill(default, colSize))
     self.rowSize = rowSize
     self.colSize = colSize