Exemple #1
0
def prepareSource(inFile,
                  outFile,
                  wat=1,
                  sort=1,
                  foldx=1,
                  surf=1,
                  dens=1,
                  cons=1,
                  dssp=1,
                  delphi=0):
    """
    Strip waters, add profiles and save as doped source model.
    """

    source = PDBModel(inFile)

    if wat:
        source.remove(lambda a: a['residue_name'] in ['HOH', 'WAT', 'TIP3'])

    if sort:
        source = source.sort()

    doper = PDBDope(source)

    if surf:
        ##         doper.addASA()
        ##         doper.addSurfaceMask()
        doper.addSurfaceRacer(probe=1.4)

    if foldx:
        doper.addFoldX()

    if dens:
        doper.addDensity()

    if dssp:
        doper.addSecondaryStructure()

    if delphi:
        doper.addDelphi()

    try:
        if cons:
            doper.addConservation()
    except:
        errWriteln('\n ERROR: Conservation profile could not be added to '\
                   + str(sourceOut) + '\n' )

    source.saveAs(outFile)

    return source
Exemple #2
0
def changeModel(inFile, prefix, sourceModel):

    print '\nget ' + os.path.basename(inFile) + '..',

    model = PDBModel(inFile)

    model.update()

    model = model.sort()

    eq = model.equals(sourceModel)
    if not eq[0] and eq[1]:
        raise ConvertError('source and other models are not equal: ' + str(eq))


#    model.validSource()
    model.setSource(sourceModel.validSource())

    #model.atomsChanged = 0
    for k in model.atoms:
        model.atoms[k, 'changed'] = N0.all(model[k] == sourceModel[k])

    model.xyzChanged = (0 != N0.sum(N0.ravel(model.xyz - sourceModel.xyz)))

    model.update(updateMissing=1)

    if model.xyzChanged:

        doper = PDBDope(model)

        if 'MS' in sourceModel.atoms.keys():
            doper.addSurfaceRacer(probe=1.4)

        if 'density' in sourceModel.atoms.keys():
            doper.addDensity()

        if 'foldX' in sourceModel.info.keys():
            doper.addFoldX()

        if 'delphi' in sourceModel.info.keys():
            doper.addDelphi()

    outFile = os.path.dirname( inFile ) + '/' + prefix +\
            T.stripFilename( inFile ) + '.model'

    T.dump(model, outFile)

    print '-> ' + os.path.basename(outFile)
Exemple #3
0
def changeModel( inFile, prefix, sourceModel ):

    print '\nget ' + os.path.basename( inFile ) + '..',

    model = PDBModel( inFile )

    model.update()

    model = model.sort()

    eq = model.equals( sourceModel )
    if not eq[0] and eq[1]:
        raise ConvertError('source and other models are not equal: ' + str(eq))

#    model.validSource()
    model.setSource( sourceModel.validSource() )

    #model.atomsChanged = 0
    for k in model.atoms:
        model.atoms[k,'changed'] = N0.all( model[k] == sourceModel[k] )

    model.xyzChanged = ( 0 != N0.sum( N0.ravel( model.xyz - sourceModel.xyz)) )

    model.update( updateMissing=1 )

    if model.xyzChanged:

        doper = PDBDope( model )

        if 'MS' in sourceModel.atoms.keys():
            doper.addSurfaceRacer( probe=1.4 )

        if 'density' in sourceModel.atoms.keys():
            doper.addDensity()

##        if 'foldX' in sourceModel.info.keys():
##            doper.addFoldX()
            
        if 'delphi' in sourceModel.info.keys():
            doper.addDelphi()

    outFile = os.path.dirname( inFile ) + '/' + prefix +\
            T.stripFilename( inFile ) + '.model' 

    T.dump( model, outFile )

    print '-> ' + os.path.basename( outFile )
Exemple #4
0
def prepareSource( inFile, outFile, wat=1, sort=1,
                   surf=1, dens=1, cons=1, dssp=1, delphi=0 ):
    """
    Strip waters, add profiles and save as doped source model.
    """

    source = PDBModel( inFile )

    if wat:
        source.remove( lambda a: a['residue_name'] in ['HOH','WAT','TIP3'] )

    if sort:
        source = source.sort()

    doper = PDBDope( source )

    if surf:
##         doper.addASA()
##         doper.addSurfaceMask()
        doper.addSurfaceRacer( probe=1.4 )

##    if foldx:
##        doper.addFoldX()

    if dens:
        doper.addDensity()

    if dssp:
        doper.addSecondaryStructure()
        
    if delphi:
        doper.addDelphi()

    try:
        if cons:
            doper.addConservation( )
    except:
        errWriteln('\n ERROR: Conservation profile could not be added to '\
                   + str(sourceOut) + '\n' )

    source.saveAs( outFile )

    return source