Ligand Extraction¶
This example shows how to align structures of the same protein and extract bound ligands from these structures.
matchAlign()
function can be used for aligning protein structures.
This example shows how to use it to extract ligands from multiple PDB
structures after superposing the structures onto a reference.
Output will be PDB files that contain ligands superposed onto the reference
structure.
Parse reference and blast search¶
We start by importing everything from the ProDy package:
In [1]: from prody import *
In [2]: from pylab import *
In [3]: ion()
First, we parse the reference structure and blast search PDB for similar structure:
In [4]: p38 = parsePDB('1p38')
In [5]: seq = p38['A'].getSequence()
In [6]: blast_record = blastPDB(seq)
It is a good practice to save this record on disk, as NCBI may not respond to
repeated searches for the same sequence. We can do this using Python standard
library pickle
as follows:
In [7]: import pickle
Record is save using dump()
function into an open file:
In [8]: pickle.dump(blast_record, open('p38_blast_record.pkl', 'wb'))
Then, it can be loaded using load()
function:
In [9]: blast_record = pickle.load(open('p38_blast_record.pkl', 'rb'))
Align structures and extract ligands¶
Then, we parse the hits one-by-one, superpose them onto the reference structure, and extract ligands:
In [10]: for pdb_id in blast_record.getHits(90, 70):
....: try:
....: pdb = parsePDB(pdb_id)
....: pdb = matchAlign(pdb, p38)[0]
....: except:
....: continue
....: else:
....: ligand = pdb.select('not protein and not water')
....: repr(ligand)
....: if ligand:
....: writePDB(pdb_id + '_ligand.pdb', ligand)
....:
In [11]: !ls *_ligand.pdb
1a9u_ligand.pdb 2yix_ligand.pdb 3hv3_ligand.pdb 3p78_ligand.pdb
1bl6_ligand.pdb 2zaz_ligand.pdb 3hv4_ligand.pdb 3p79_ligand.pdb
1bl7_ligand.pdb 2zb0_ligand.pdb 3hv5_ligand.pdb 3p7a_ligand.pdb
1bmk_ligand.pdb 2zb1_ligand.pdb 3hv6_ligand.pdb 3p7b_ligand.pdb
1di9_ligand.pdb 3bv2_ligand.pdb 3hv7_ligand.pdb 3p7c_ligand.pdb
1ian_ligand.pdb 3bv3_ligand.pdb 3hvc_ligand.pdb 3pg3_ligand.pdb
1kv1_ligand.pdb 3bx5_ligand.pdb 3iph_ligand.pdb 3py3_ligand.pdb
1kv2_ligand.pdb 3c5u_ligand.pdb 3itz_ligand.pdb 3qud_ligand.pdb
1m7q_ligand.pdb 3ctq_ligand.pdb 3iw5_ligand.pdb 3que_ligand.pdb
1ouk_ligand.pdb 3d7z_ligand.pdb 3iw6_ligand.pdb 3rin_ligand.pdb
1ouy_ligand.pdb 3d83_ligand.pdb 3iw7_ligand.pdb 3roc_ligand.pdb
1ove_ligand.pdb 3ds6_ligand.pdb 3iw8_ligand.pdb 3s3i_ligand.pdb
1oz1_ligand.pdb 3dt1_ligand.pdb 3k3i_ligand.pdb 3s4q_ligand.pdb
1r39_ligand.pdb 3e92_ligand.pdb 3k3j_ligand.pdb 3u8w_ligand.pdb
1r3c_ligand.pdb 3e93_ligand.pdb 3kf7_ligand.pdb 3uvp_ligand.pdb
1w7h_ligand.pdb 3fc1_ligand.pdb 3kq7_ligand.pdb 3uvq_ligand.pdb
1w82_ligand.pdb 3fi4_ligand.pdb 3l8s_ligand.pdb 3uvr_ligand.pdb
1w83_ligand.pdb 3fkl_ligand.pdb 3l8x_ligand.pdb 3zs5_ligand.pdb
1w84_ligand.pdb 3fkn_ligand.pdb 3lfa_ligand.pdb 3zsg_ligand.pdb
1wbn_ligand.pdb 3fko_ligand.pdb 3lfb_ligand.pdb 3zsh_ligand.pdb
1wbo_ligand.pdb 3fl4_ligand.pdb 3lfc_ligand.pdb 3zsi_ligand.pdb
1wbs_ligand.pdb 3fln_ligand.pdb 3lfd_ligand.pdb 3zya_ligand.pdb
1wbt_ligand.pdb 3flq_ligand.pdb 3lfe_ligand.pdb 4a9y_ligand.pdb
1wbv_ligand.pdb 3fls_ligand.pdb 3lff_ligand.pdb 4aa0_ligand.pdb
1wbw_ligand.pdb 3flw_ligand.pdb 3lhj_ligand.pdb 4aa4_ligand.pdb
1yqj_ligand.pdb 3fly_ligand.pdb 3mgy_ligand.pdb 4aa5_ligand.pdb
1yw2_ligand.pdb 3flz_ligand.pdb 3mh0_ligand.pdb 4aac_ligand.pdb
1ywr_ligand.pdb 3fmh_ligand.pdb 3mh1_ligand.pdb 4dli_ligand.pdb
1zyj_ligand.pdb 3fmj_ligand.pdb 3mh2_ligand.pdb 4dlj_ligand.pdb
1zz2_ligand.pdb 3fmk_ligand.pdb 3mh3_ligand.pdb 4e6a_ligand.pdb
1zzl_ligand.pdb 3fml_ligand.pdb 3mpa_ligand.pdb 4e6c_ligand.pdb
2baj_ligand.pdb 3fmm_ligand.pdb 3mpt_ligand.pdb 4e8a_ligand.pdb
2bak_ligand.pdb 3fmn_ligand.pdb 3mvl_ligand.pdb 4eh2_ligand.pdb
2bal_ligand.pdb 3fsf_ligand.pdb 3mvm_ligand.pdb 4eh3_ligand.pdb
2baq_ligand.pdb 3fsk_ligand.pdb 3mw1_ligand.pdb 4eh4_ligand.pdb
2ewa_ligand.pdb 3gc7_ligand.pdb 3new_ligand.pdb 4eh5_ligand.pdb
2fsl_ligand.pdb 3gcp_ligand.pdb 3nnu_ligand.pdb 4eh6_ligand.pdb
2fsm_ligand.pdb 3gcq_ligand.pdb 3nnv_ligand.pdb 4eh7_ligand.pdb
2fso_ligand.pdb 3gcs_ligand.pdb 3nnw_ligand.pdb 4eh8_ligand.pdb
2fst_ligand.pdb 3gcu_ligand.pdb 3nnx_ligand.pdb 4eh9_ligand.pdb
2gfs_ligand.pdb 3gcv_ligand.pdb 3nww_ligand.pdb 4ehv_ligand.pdb
2ghl_ligand.pdb 3gfe_ligand.pdb 3o8p_ligand.pdb 4ewq_ligand.pdb
2ghm_ligand.pdb 3gi3_ligand.pdb 3o8t_ligand.pdb 4f9w_ligand.pdb
2gtm_ligand.pdb 3ha8_ligand.pdb 3o8u_ligand.pdb 4f9y_ligand.pdb
2gtn_ligand.pdb 3hec_ligand.pdb 3obg_ligand.pdb 4fa2_ligand.pdb
2i0h_ligand.pdb 3heg_ligand.pdb 3obj_ligand.pdb 4geo_ligand.pdb
2npq_ligand.pdb 3hl7_ligand.pdb 3oc1_ligand.pdb 4kin_ligand.pdb
2puu_ligand.pdb 3hll_ligand.pdb 3ocg_ligand.pdb 4kip_ligand.pdb
2qd9_ligand.pdb 3hp2_ligand.pdb 3od6_ligand.pdb 4kiq_ligand.pdb
2rg5_ligand.pdb 3hp5_ligand.pdb 3ody_ligand.pdb 4l8m_ligand.pdb
2rg6_ligand.pdb 3hrb_ligand.pdb 3odz_ligand.pdb 4loo_ligand.pdb
2yis_ligand.pdb 3hub_ligand.pdb 3oef_ligand.pdb 4lop_ligand.pdb
2yiw_ligand.pdb 3huc_ligand.pdb 3p5k_ligand.pdb 4loq_ligand.pdb
Ligands bound to p38 are outputted. Note that output PDB files may contain multiple ligands.
The output can be loaded into a molecular visualization tool for analysis.