Hi,

I have been using a script to refine a NMR structure using NOEs, RDCs, SAXS and 
other data without problems until recently. Now, the same script results in a 
Segmentation fault (core dumped) error. After doing some trouble shooting, I 
noticed that the program runs fine when I remove the RDC part in the script, 
but I don't know what the issue is. I use Xplor-NIH in NMRBOX. Here is the code 
and the last lines in the output. 

Thanks for the help,

Cristian

###########################################################################

import psfGen                    

outfilename = 'SCRIPT_STRUCTURE.pdb'


import protocol

protocol.initRandomSeed(3422)   # by specific seed number


# Load paramaters.

protocol.initParams(files=['nucleic'])

psfGen.pdbToPSF(pdb_filename)
protocol.initCoords(pdb_filename)
xplor.simulation.deleteAtoms("not known")


from potList import PotList
potList = PotList()
crossTerms = PotList()


from simulationTools import StaticRamp, MultRamp, InitialParams, AnnealIVM

highTempParams = []
rampedParams = []

#
# Set up distance restraint potential 
#
import noePotTools
noe = PotList('noe')
for (name, scale, table) in [('all', 1, noe_tbl),
                                                          ]:
    pot = noePotTools.create_NOEPot(name, table)
    
    pot.setScale(scale)
    noe.append(pot)
potList.append(noe)
rampedParams.append(MultRamp(2, 50, "noe.setScale( VALUE )"))


import xplorPot

# Set up dihedral angles
protocol.initDihedrals(dihedral_tbl,
                       #useDefaults=False  # by default, symmetric sidechain
                                           # restraints are included
                       )
potList.append( xplorPot.XplorPot('CDIH') )
highTempParams.append( StaticRamp("potList['CDIH'].setScale(10)") )
rampedParams.append( StaticRamp("potList['CDIH'].setScale(200)") )

#
# Set up potential for base-pair planarity restraints.
#
protocol.initPlanarity(plane_tbl)
potList.append(xplorPot.XplorPot('PLAN'))


# Set up statistical torsion angle potential (torsionDB).
#
import torsionDBPotTools
torsiondb = torsionDBPotTools.create_TorsionDBPot(name='torsiondb',system='rna')
potList.append(torsiondb)
rampedParams.append(MultRamp(0.5, 4, "torsiondb.setScale(VALUE)"))


# Setup parameters for atom-atom repulsive term (van der Waals-like term).
#
from repelPotTools import create_RepelPot,initRepel
repel = create_RepelPot('repel')
potList.append(repel)
rampedParams.append( StaticRamp("initRepel(repel,use14=False)") )
rampedParams.append( MultRamp(.004, 4, "repel.setScale( VALUE)") )
# nonbonded interaction only between C1' atoms
highTempParams.append( StaticRamp("""initRepel(repel,
                                               use14=True,
                                               scale=0.004,
                                               repel=1.2,
                                               moveTol=45,
                                               interactingAtoms="name C1'"
                                               )""") )


# Selected 1-4 interactions.

import torsionDBPotTools
repel14 = torsionDBPotTools.create_Terminal14Pot('repel14')
potList.append(repel14)
highTempParams.append(StaticRamp("repel14.setScale(0)"))
rampedParams.append(MultRamp(0.004, 4, "repel14.setScale(VALUE)"))

# Set up bond length potential.

potList.append(xplorPot.XplorPot('BOND'))
# (The setup of this term remains unchanged throughout; no need to involve
# highTempParams and/or rampedParams.)


#
# Set up bond angle potential.

potList.append(xplorPot.XplorPot('ANGL'))
rampedParams.append(MultRamp(0.4, 1.0, "potList['ANGL'].setScale(VALUE)"))

#
# Set up improper dihedral angle potential.

potList.append(xplorPot.XplorPot('IMPR'))
rampedParams.append(MultRamp(0.1, 1.0, "potList['IMPR'].setScale(VALUE)"))

###RDC

from varTensorTools import create_VarTensor
from rdcPotTools import create_RDCPot, scale_toNH
from varTensorTools import calcTensorOrientation, calcTensor

media={}

for medium, Da, Rh in tensor_list:
        #print(medium,Da, Rh, tensor_list)
        oTensor = create_VarTensor(medium)
        oTensor.setDa(Da)
        oTensor.setRh(Rh)
        oTensor.setFreedom ("varyDa, varyRh" )
        #oTensor.setFreedom ("fixDa, fixRh" )
        media[medium] = oTensor

highTempParams.append(StaticRamp("""
for medium in media.values():
    calcTensorOrientation(medium)
""") )

    
rdcs = PotList('rdc') 
    
for medium, expt, rdc_file, scale in rdc_exp_list:
    #print(experiments_list, medium, expt, rdc_file, scale, media_dictionary)
    rdc = create_RDCPot("%s_%s"%(medium,expt), file=rdc_file, 
oTensor=media[medium])
        
    #rdc.setScale(scale)
    scale_toNH(rdc)
    rdc.setShowAllRestraints(1) #all restraints are printed during analysis
    rdc.setThreshold(1.5)       # in Hz
    rdcs.append(rdc)
        
    
potList.append(rdcs)
rampedParams.append( MultRamp(0.01,1, "rdcs.setScale( VALUE )") )
    
### SAXS term ###########

#from solnXRayPotTools import create_solnXRayPot
import solnXRayPotTools


xray=solnXRayPotTools.create_solnXRayPot('xray',
                        experiment=saxs_data, #data file with columns q, I, err
                        numPoints=100, #specifies the number of datapoints to 
sample
                        normalizeIndex=-3, #specifies which grid point to use 
to normalize data. -3 specifies normalization which minimizes the Chi^2 value.
                        preweighted=False)

xrayCorrect=solnXRayPotTools.create_solnXRayPot('xray-c',
                               experiment=saxs_data,
                               numPoints=100,  #should be the same as 'xray'
                               normalizeIndex=-3,
                               preweighted=False)


solnXRayPotTools.useGlobs(xray)  #uses atom globbing aproximation

xray.setNumAngles(100)           #number of angles in solid angle averaging

xrayCorrect.setNumAngles(500)   # use a large number for correction term

xray.setScale(50)               #restrint weight value

xray.setCmpType("plain") #'plain'

potList.append(xray)            #add to potlist energy terms

crossTerms.append(xrayCorrect)


from solnScatPotTools import fitParams

rampedParams.append(
    StaticRamp(
    "fitParams(xrayCorrect);xray.calcGlobCorrect(xrayCorrect.calcd())",
    stride=100))


# Give atoms uniform weights, except for anisotropy axes (if any).
#
protocol.massSetup()

#
# Set up IVM object(s).
#
# IVM object for torsion-angle dynamics/minimization.
import ivm
dyn = ivm.IVM()

protocol.torsionTopology(dyn, flexRiboseRing='resid 1:24')

### Optional IVM object for final Cartesian minimization.
minc = ivm.IVM()
protocol.cartesianTopology(minc)

#
# Temperature set up.
#
temp_ini = 3000.0   # initial temperature
temp_fin = 25.0     # final temperature


def calcOneStructure(loopInfo):
    """Calculate a structure.

    """

    # Fix up covalent geometry.
    # (The torsion restraints may include ring torsions and distort geometry.)
    while True:
        try:
            protocol.fixupCovalentGeom(maxIters=100, useVDW=1)
            break
        except protocol.CovalentViolation:
            pass
    
    #
    # High Temperature Dynamics Stage.
    #

    # Initialize parameters for high temperature dynamics.
    InitialParams(rampedParams)
    InitialParams(highTempParams) # purposedly overides some
                                                  # setups in rampedParams

    # Set up IVM object and run.
    protocol.initDynamics(dyn,
                          potList=potList,
                          bathTemp=temp_ini,
                          initVelocities=1,
                          finalTime=15,   # run for finalTime or 
                          numSteps=15001, # numSteps * 0.001, whichever is less
                          printInterval=100)

    dyn.setETolerance(temp_ini/100) # used to find stepsize (default: temp/1000)

    dyn.run()
                          
    #
    # Simulated Annealing Stage.
    #
    
    # Initialize parameters for annealing.
    InitialParams(rampedParams)

    # Set up IVM object for annealing.
    protocol.initDynamics(dyn,
                          potList=potList,
                          finalTime=0.63,  # run for finalTime or 
                          numSteps=631,   # numSteps * 0.001, whichever is less
                          printInterval=100)    

    # Set up cooling loop and run.
    AnnealIVM(initTemp=temp_ini,
              finalTemp=temp_fin,
              tempStep=12.5,
              ivm=dyn,
              rampedParams=rampedParams).run()

    #
    # Torsion angle minimization.
    #
    protocol.initMinimize(dyn,
                          potList=potList,
                          printInterval=50)
    dyn.run()

    #
    # Cartesian minimization (optional).
    #
    protocol.initMinimize(minc,
                          potList=potList,
                          dEPred=10)
    minc.run()


from simulationTools import StructureLoop
StructureLoop(numStructures=nstructures,
              #pdbFilesIn=infilename,
              pdbTemplate=outfilename,
              doWriteStructures=True,
              structLoopAction=calcOneStructure,
              # Arguments for generating structure statistics:
              genViolationStats=True,
              averageSortPots=[potList['noe'], # terms for structure sorting
                               potList['PLAN'],
                               potList['xray'],
                               potList['CDIH'],
                               potList['rdc']],  
              averageTopFraction=FRACTION,  # top fraction of structs. to 
report on
              averageFilename="SCRIPT_ave.pdb",
              averagePotList=potList,  # terms analyzed
              averageFitSel='not (name H* or resname ANI)', # selection to fit
              ).run()                                       # to average struct.
                                                        # and report precision


#################################################################

Log:

GU12_ref_RDC_SAXS.py(373): StructureLoop(numStructures=nstructures,
StructureLoop: calculating structure 0
GU12_ref_RDC_SAXS.py(306):         try:
GU12_ref_RDC_SAXS.py(307):             protocol.fixupCovalentGeom(maxIters=100, 
useVDW=1)
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
GU12_ref_RDC_SAXS.py(308):             break
GU12_ref_RDC_SAXS.py(317):     InitialParams(rampedParams)
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
[stdin](1): xplor.execfile('GU12_ref_RDC_SAXS.py')
Segmentation fault (core dumped)

########################################################################

To unsubscribe from the XPLOR-NIH list, click the following link:
http://list.nih.gov/cgi-bin/wa.exe?SUBED1=XPLOR-NIH&A=1

Reply via email to