Preserving Input SDF Metadata During Virtual Ligand Screening

11 views
Skip to first unread message

Andrew Orry

unread,
May 9, 2025, 5:21:03 PMMay 9
to MolSoft ICM Knowledge Base

Q1. How do I keep all metadata from my input SDF (e.g., Catalog ID, PlateID, Well) in the docked hitlist?

Use direct SDF input and direct SDF output. All columns in the input SDF will be preserved in the output.

icm64 _dockScan input=input.sdf output=output.sdf

Q2. What if I dock using an index file (.inx) instead of an SDF file?

When docking is done using an .inx file (e.g. for large parallel scans), only the compound index is preserved:

icm64 _dockScan input=input.inx output=output.sdf

The output will contain a column called IX, which is just the index of the compound in the .inx file. None of the original fields (e.g., Catalog ID, PlateID, etc.) are included.

Q3. Can I restore the original metadata after docking with .inx?

Yes. MolSoft provides a script to re-import the original metadata using the .inx file. Run this command:

icm64 hitlist_import_orig_data.icm <docking_hitlist.sdf> <input_index.inx> output=<result.sdf>

Replace <docking_hitlist.sdf> with the SDF output from docking and <input_index.inx> with the same .inx file that was used during docking. The script will match the IX values and join back the metadata columns.

Below is the full ICM script. Save it as hitlist_import_orig_data.icm.

l_commands = l_info = no
HELP = """
Usage> $P <hitlist.sdf> <index.inx> output=<result.sdf>
"""
S_files = Getarg(list delete)
if (Nof(S_files) != 2) quit HELP;
s_output = Getarg("output", Name(S_files[1]) + "_origcols.sdf" )
maxFileSizeMb = 6000
read table mol S_files[1] name="t"
read index S_files[2] name="T_ix"
if Type(t.IX) == "unknown" quit "Error> hitlist does not contain IX column"
read table index T_ix [ t.IX ] name="T_tmp"
S_colsToImport = Name(T_tmp)
S_colsToImport = S_colsToImport !~ "T_tmp.mol"
S_colsToImport = S_colsToImport !~ "T_tmp.IX"
join t.IX T_tmp.IX left name="t" column="t.*," + Sum(S_colsToImport,",")
write table mol delete t s_output l_info = yes
quit



Reply all
Reply to author
Forward
0 new messages