Hi all,
I want to do ensemble simulation to search an ensemble to fit the SAXS data 
with Xplor-NIH. The relative scripts are as follows:


xplor.requireVersion("2.19")

import protocol
protocol.initRandomSeed()
protocol.topology['nucleic']="nucleic-2.0.top"
protocol.parameters['nucleic']="nucleic-2.0.par"
protocol.initParams("nucleic")

xray_scale = 500

numberOfStructures=10

fn_pdb = "3u_mr.pdb"
fn_saxsData='SAXS_30_121815.dat'

ensembleSize = 3
#by default, all ensemble members have equal weights, but you can change this:
#
#ensWeights=[1.0/ensembleSize for i in range(ensembleSize)]
ensWeights=[0.6,0.2,0.2]

startStructure=0
outFilename = "SCRIPT_%d_STRUCTURE_MEMBER.pdb" % numberOfStructures

rigidRegions=[
'resid 1:142',
'resid 153:321',
'resid 331:423',
]
breakResids=[143,152,322,330]


#
# read in the PSF and initial PDB files
#

import psfGen
####psfGen.pdbToPSF("fix_HAB.pdb")
#
# starting coords
#
#protocol.initCoords("tectoRNA.pdb")
#protocol.loadPDB("fsr0_s0_102.pdb")



#start from a good structure...
protocol.loadPDB(fn_pdb)
#protocol.loadPDB("ref-11-2-2011b_100_0-relocated-d783.pdb")
#protocol.writePDB("/usr/home/schwitrs/t0.pdb")
xplor.simulation.deleteAtoms("not known")


#import regularize
#regularize.fixupCovalentGeomIVM(translateRegions=rigidRegions)
#protocol.covalentMinimize("""not (resid 1:76 or resid 117:156 or resid 173:283 
or resid 319:388 or resid 410:617 or resid 769:834 or resid 634:684 or resid 
699:750)""")
#protocol.writePDB("/usr/home/schwitrs/t1.pdb")

from ensembleSimulation import EnsembleSimulation
esim=EnsembleSimulation('ens',ensembleSize)
esim.setAveType('sum')

# list of potential terms used in refinement
from potList import PotList
potList = PotList()
crossTerms=PotList('cross terms')


# parameters to ramp up during the simulated annealing protocol
#
from simulationTools import MultRamp, StaticRamp, InitialParams
rampedParams=[]


from xplorPot import XplorPot
from avePot import AvePot
#protocol.initCollapse("resid 1:835",
#             Rtarget=38.2)
#potList.append( XplorPot('COLL') )


#SAXS term
from solnXRayPotTools import create_solnXRayPot
import solnXRayPotTools


xray=create_solnXRayPot('xray',experiment=fn_saxsData,
                        normalizeIndex=-3,preweighted=False)

xrayCorrect=create_solnXRayPot('xray-c',experiment=fn_saxsData,
                               normalizeIndex=-3,preweighted=False)

solnXRayPotTools.useGlobs(xray)

xray.setNumAngles(50)
xrayCorrect.setNumAngles(500)
#xray.setScale(50)
xray.setScale(xray_scale)
xray.setCmpType("plain")
xray.setEnsWeights( ensWeights )
xrayCorrect.setEnsWeights( ensWeights )

potList.append(xray)
crossTerms.append(xrayCorrect)

print xray.calcEnergy()
from solnScatPotTools import fitParams

But when I run this scripts I find that my ensemble weights are still 0.6, 0.2, 
0.2 in the result. I know Xplor-NIH can optimize the ensemble weights in the 
running; But how?

Thank you!

Yikan
Ph. D 
TsingHua University
School of life Sciences 
Beijing, China
tel:010-62773783



_______________________________________________
Xplor-nih mailing list
[email protected]
https://dcb.cit.nih.gov/mailman/listinfo/xplor-nih

Reply via email to