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
Type the words or phrases on which you would like to search, or click here to view a list of all
Knowledge Base articles

