Knowledge Base

Article ID: 1774 - Last Modified: March 15, 2013

Why does QPLD fail in the PULL stage with a message "IndexError: list index out of range"?

When QPLD fails in the PULL stage with an error like this, it indicates that the output structures from the QSite stage are not being matched up properly with the input ligand structures, and the copying of partial charges is failing because of different numbers of atoms in the matched structures.

The most likely source of this problem is that there are compounds in the input that have the same titles. The best way to avoid these problems is to ensure that all compounds have unique titles in your input.

If you are using an existing pose-viewer file as input to the Initial Docking stage of QPLD, this error generally indicates that there are distinct compounds with the same titles in the pose-viewer file and the input ligand set (from file, Workspace, or Project Table). When running QPLD with an existing initial-docking PV file, the titles must uniquely identify compounds so the partial charges can be copied between ligand conformers.

This error also can occur in Suite 2012 when QPLD itself performs the initial docking and there are multiple input ligand structures with the same title. The workaround is to modify the jobname.inp file for your QPLD job, by adding a UNIQUEFIELD
line to the input file, as follows:

[STAGE:PULL]
    STAGECLASS   pull.PullStage
    INPUTS   QSITE_OUT, LIGANDS
    OUTPUTS   PULL_OUT,
    KEEP_CHARGES   YES
    CHARGE_PROPERTY   r_m_charge1
    UNIQUEFIELD   s_pipeline_compound_code

This ensures that the matching of the QSite results and the original ligand file is done with the correct compound identifier instead of the non-unique structure titles. Then you can run the job again from the command line with the following command:

$SCHRODINGER/qpld -OVERWRITE [ options ] jobname.inp

For reference, the full error text is:

Traceback (most recent call last):
  File "qpld-PULL.py", line 36, in <module>
    outputs = stage.run(restart_file=restart_file)
  File "/opt/schrodinger/suite2012/mmshare-v21515/lib/Darwin-x86_64/lib/python2.7/site-packages/schrodinger/pipeline/stage.py", line 1188, in run
    self.operate() # Run the stage
  File "/opt/schrodinger/suite2012/mmshare-v21515/lib/Darwin-x86_64/lib/python2.7/site-packages/schrodinger/pipeline/stages/pull.py", line 215, in operate
    self.pullCompounds()
  File "/opt/schrodinger/suite2012/mmshare-v21515/lib/Darwin-x86_64/lib/python2.7/site-packages/schrodinger/pipeline/stages/pull.py", line 253, in pullCompounds
    charge = charges_list[i]
IndexError: list index out of range

Back to Search Results

Was this information helpful?

What can we do to improve this information?


If you need additional help, please email us at help@schrodinger.com.
Knowledge Base Search

Type the words or phrases on which you would like to search, or click here to view a list of all
Knowledge Base articles