PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PEMODELAN DAN SIMULASI DINAMIKA MOLEKUL HUMAN MATRIX METALLOPROTEINASE 9 (hMMP9) UTUH SEBAGAI TARGET VIRTUAL PENEMUAN LIGAN PADA CATALYTIC SITE MAUPUN HEMOPEXIN-LIKE DOMAIN

TESIS

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Magister Farmasi (M.Farm.) Program Studi Magister Farmasi

Diajukan oleh: Roy Gunawan Wicaksono, S.Farm.

Nomor Induk Mahasiswa: 188122101

FAKULTAS FARMASI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2020 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PEMODELAN DAN SIMULASI DINAMIKA MOLEKUL HUMAN MATRIX METALLOPROTEINASE 9 (hMMP9) UTUH SEBAGAI TARGET VIRTUAL PENEMUAN LIGAN PADA CATALYTIC SITE MAUPUN HEMOPEXIN-LIKE DOMAIN

TESIS

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Magister Farmasi (M.Farm.) Program Studi Magister Farmasi

Diajukan oleh: Roy Gunawan Wicaksono, S.Farm.

Nomor Induk Mahasiswa: 188122101

FAKULTAS FARMASI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2020 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

}ERSETUJUAN PEMBIMBING PEMODELAN DAN SIMULASI DINAMIKA MIOLF]KTJL HUMAN MATRD( METALLOPROTEINASE 9 (hMNTPg) IITUH SEBAGAT TARGET VTRTUAL PENEMUAN LIGAN PADA CATALYTIC SITEiMAI|PIITN HEMOPEXIN DOfuLAIN

Tesis yang diajukan oleh: Roy Crunawan Wicaksono, S.Farm. (f 88122101)

T€lah disetujui tar.ggdZr 19 ot"t, Dosen ing Utarna

Enade Ph.D., Apt.

o,lPP/NrD 1969/050608790 I ) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PENGESAIIAN TESIS BERJUDT]L

PEMODELAIT DAN SIMULASI DINAMIKA MOLEKIJL HUMAN MATRD( METALLOPROTEINASE 9 (htvfrvfp9) UTUH SEBAGAI TARGET VIRTUAL PENEMUAN LIGA}I PADA CITALYTIC SITE MAUI{JN HEMOPHfiN-LIEE DOMAIN

oleh: Roy Gunawan Wicaksono, S.Farm. (188122101)

Dipertahankan di hadapan panitia penguji tesis Fakultas Farmasi

Universitas Sanata Dharma Pada tanggal 23 lanuai 2020

Mengetahui

Fakultas Farmasi

Universitas Sanata Dharma

tr!? ,: utl >-_ | {'2-_ Hartini, Apt.

Panitia Penguji: l. Enade Perdana Istyastono, Ph.D., Apt 2. Dr. Rini Dwiastuti, Apt. 3. Maywan Hariono, Ph.D., Apt. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

HALAMAN PERSEMBAHAN

Tesis ini dipersembahkan untuk Tuhan Yesus Kristus, Ibu, Bapak, Kakak , Adik, Novia Yosin dan teman-teman sehingga dapat menyelesaikan tesis ini denga n baik.

iii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PERNYATAAN KEASLLA.N KARYA

Saya merryatakan dengan sesungguhnya bahrva tesis yang saya tulis iui tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimaru layaknya karya ilmiah. Apabila di kemudian hari ditemukan indikasi plagiarisme dalam naskah ini, maka saya bersedia menanggung segala sanksi sesuai peraturan perundang-undangan yang berlaku.

s/.10 Y ogyal(arta, ..../1. .

Roy Gunawan Wicaksono, S.Faul.

iv PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI IGRYA ILML{H UNTUK KEPENTINGAN AKADEIUIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma: Nama : Roy Gunawan Wicaksono. S.Farm. Nomor Mahasiswa : 188122101 Demi pengembangan ilmu pengekhuan, saya memberikan kepada perpustakaan Universitas Sanata Dharma karya ilmiah saya yang be{udul "PEMODELAN DAN .SIMULASI DINAMIKA MOLEKUL ITUMAN MATRIX 'METALLOhROTEINASE 9 (hMMpg) UTUH SEBAGAI TARGET I'IRTUAL PENEMUAN LIG,{N PADA CATALYTIC SITE MAUPUN HEMOPEXIN

DOMAIN" beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk lain, mengelolanya dalam bentuk pangkalan data, mendish'ibusikan secara terbatas, dan mempubli kasikannya di intemet atau media lain untuk kepentingan akademis tanpa perlu meminta izin saya atau memberi royal4t kepada saya selama tetap mencantumkan nama saya sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenar-benamya.

Dibuat di Yogyakarta

Pada tang!;al ,/t, .19 Yang menyatakan,

)tt €elftM-t Roy Gunawan Wicaksono, S.Farm. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PRAKATA

Puji dan syukur penulis haturkan ke hadirat Tuhan Yang Maha Esa karena atas berkat dan rahmat kasih-Nya penulis dapat menyelesaikan tesis yang berjudul “PEMODELAN DAN SIMULASI DINAMIKA MOLEKUL HUMAN MATRIX METALLOPROTEINASE 9 (hMMP9) UTUH SEBAGAI TARGET VIRTUAL PENEMUAN LIGAN PADA CATALYTIC SITE MAUPUN HEMOPEXIN-LIKE DOMAIN” dengan baik dan lancar. Tesis ini disusun sebagai salah satu syarat memperoleh gelar Magister Farmasi (M.Farm.) Program Studi Magister Farmasi. Penulis berharap agar tesis ini dapat berguna bagi para pembaca, menjadi sumber pengetahuan tentang dinamika molekul pada MMP-9 dan menjadi inspirasi untuk melakukan penelitian yang lebih berkembang nantinya. Penulis tesis ini tidak lepas dari banyak bantuan, dukungan, semangat, dan saran dari berbagai pihak. Oleh karena itu, penulis ingin mengucapkan terima kasih kepada: 1. Ibu Dr. Yustina Sri Hartini, Apt. selaku Dekan Fakultas Farmasi Universitas Santa Dharma. 2. Ibu Aris Widayati, M.Si., Ph.D., Apt. selaku Kaprodi Magister Farmasi Fakultas Farmasi Universitas Sanata Dharma. 3. Bapak Enade Perdana Istyastono, Ph.D., Apt. selaku dosen pembimbing yang telah memberikan ilmu, saran dan bimbingan dengan sabar dalam penelitian ini. 4. Ibu Dr. Rini Dwiastuti, Apt. selaku dosen penguji yang telah bersedia memberikan saran bagi penelitian ini. 5. Bapak Maywan Hariono, Ph.D., Apt. selaku dosen penguji yang telah bersedia memberikan saran bagi penelitian ini. 6. Keluarga penulis yang telah memberikan doa, semangat dan dukungan. 7. Mas F.A Ottok yang telah membantu kelancaran dalam penelitian tesis. 8. Teman-teman Magister Farmasi yang telah memberika ilmu dan saran. 9. Novia Yosin Parura yang selalu memberi dukungan dan semangat kepada penulis selama kuliah dan selalu mendampingin saat penulis membutuhkan bantuan.

vi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

membangun dari para pembaca. Akhir kata, semoga tesis ini dapat bermanfaat dan selamat membaca. . 9/ .o YogJlakarta, /r . . 4+Penulis, Roy Gunawan Wicaksono. S.Farm.

v PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

DAFTAR ISI

PERSETUJUAN PEMBIMBING...... i HALAMAN PENGESAHAN...... ii HALAMAN PERSEMBAHAN...... iii PERNYATAAN KEASLIAN KARYA...... iv LEMBAR PERNYATAAN PUBLIKASI...... v PRAKATA...... vi DAFTAR ISI...... viii DAFTAR GAMBAR...... x DAFTAR LAMPIRAN...... xi INTISARI...... xii ABSTRACT...... xiii 1. PENDAHULUAN...... 1 2. TINJAUAN PUSTAKA...... 2 2.1 Matrix Metalloproteinase 9...... 2 2.2 Catalytic Site dan Hemopexin Domain...... 3 2.3 MMP-9 Sebagai Target Molekul Dalam Penyembuh Luka...... 4 2.4 MMP-9 Sebagai Target Molekul Dalam Terapi Kanker...... 5 3. METODE PENELITIAN...... 7 3.1 Bahan dan Instrumen...... 7 3.1.1 Bahan...... 7 3.1.2 Instrumen...... 7 3.2 Tahapan Simulasi...... 7 3.2.1 Preparasi...... 7 3.3.2 Analisis Hasil...... 8 4. HASIL DAN PEMBAHASAN...... 8 4.1 Kualitas Hasil Pemodelan Homologi...... 9 4.2 Stabilitas MMP-9 Terhadapat Ligan...... 10 4.3 The Free Energy of Binding (ΔG bind)...... 11 4.4 Penambatan Ulang Ligan ...... 11

viii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

5. KESIMPULAN DAN SARAN...... 12 6. DAFTAR PUSTAKA...... 13 7. BIOGRAFI PENULIS...... 18 8. LAMPIRAN...... 19

ix PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

DAFTAR GAMBAR

Gambar 1. Struktur Matrix Metalloproteinase 9...... 2 Gambar 2. Sruktur Hemopexin-like domain...... 3 Gambar 3. Visualisasi Catalytic site interaksi sistein dengan Zn yang menjaga enzim dalam keadaan tidak aktif...... 4 Gambar 4. Struktur N-2-(biphenyl-4-ylsulfonyl)-N-2(isopropyloxy)-acetohydroxamic (CC27)...... 5 Gambar 5. Visualisasi Catalytic site dengan ligan CC27 (cyan), HIS401, HIS405, HIS411 (biru), GLU402 (merah) dan Zn (ungu)...... 5 Gambar 6. Dimer hemopexin-like domain...... 6 Gambar 7. Struktur senyawa Duf-02 sebagai inhibitor PEX...... 6

666 Gambar 8. Visualisasi Hemopexin-like domain dengan SO4 (kuning), GLN (hijau), ARG618 (biru), GLU572 dan GLU526 (merah)...... 7 Gambar 9. Nilai RMSD backbone MMP-9 (kiri) dan RMSD tiap 5ns (kanan); (A) MMP-9 CC27, (B) MMP-9 Duf-02 dan (C) MMP-9 tanpa ligan secara berurutan...... 10 Gambar 10. The free energy of binding CC27 dengan MMP-9 selama 5,05 ns hingga 10.05 ns dengan nilai terendah -12,75 kcal/mol pada 6,40 ns...... 11 Gambar 11. Visualisasi 1000 pose ligan hasil penambatan molekul...... 12

x PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

DAFTAR LAMPIRAN

Lampiran 8.1. Status makalah ilmiah dan makalah ilmiah...... 18 Lampiran 8.2. md_run_20ns_20ss.mcr...... 28 Lampiran 8.3. becalculation.mcr...... 36 Lampiran 8.4. dock_run_1000.mcr...... 71

xi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

INTISARI Enzim Matrix Metalloproteinase 9 (MMP-9) berpotensi sebagai target ligan untuk penemuan obat kanker ataupun penyembuh luka pada Diabetic Foot Ulcer (DFU). Saat ini, belum terdapat kristal struktur dari MMP-9 secara utuh, sehingga simulasi pemodelan MMP-9 dalam penemuan ligan hanya menggunakan fragmen dari MMP-9 baik catalytic site maupun hemopexin-like domain (PEX). Struktur MMP-9 secara utuh dapat dibuat model 3 dimensi menggunakan pemodelan homologi. Model MMP-9 secara utuh dapat digunakan dalam penemuan ligan baik pada catalytic site maupun PEX. Tujuan dari penelitian ini untuk membuat target virtual MMP-9 secara utuh dalam penemuan ligan baik pada catalytic site maupun PEX. Simulasi pemodelan molekul model MMP-9 dilakukan menggunakan YASARA-structure dengan AMBER14 force field. Simulasi pemodelan molekul dilakukan hingga 20 ns dengan snapshot 10 ps. Hasil simulasi dianalisis secara semi kuantitatif dengan melihat: (1) Kualitas model homologi (i) kebenaran dari enantiomer; (ii) tidak adanya ikatan cis- peptida; (iii) kesesuaian penamaan; (iv) panjang ikatan; (v) sudut ikatan; (vi) sudut dihedral; (vii) gugus planar. (2) Stabilitas MMP-9 berdasarkan nilai RMSD backbone tiap 5 ns, apabila RMSD backbone selama 5 ns dibawah 1Å maka MMP-9 dengan ligan dikatakan stabil. (3) The free energy of binding (ΔG bind) masing-masing simulasi dihitung menggunakan macro YASARA-structure. (4) Nilai RMSD hasil penambatan ulang dihitung untuk melihat hasil penambatan yang reprodusibel dengan nilai ≤ 2Å. Hasil pemodelan molekul MMP-9 dengan ligan Duf-02 dan tanpa ligan tidak stabil. Hanya MMP-9 dengan ligan CC27 yang stabil dengan mencapai equilibrium pada 5,05 ns, MMP-9 telah mencapai equilibrium apabila RMSD backbone tiap 5ns dibawah 1Å. The free energy of binding terendah pada pose waktu 6,40 ns dengan nilai - 12,75 kcal/mol. Hasil penambatan ulang ligan pada pose waktu 6,40 ns memiliki hasil yang reprodusibel dengan RMSD penambatan ulang 1000 kali berada di bawah 2Å. Kesimpulan dari hasil penelitian yang dilakukan bahwa model yang dibuat dapat digunakan sebagai target penapisan virtual pada catalytic site. Kata kunci: MMP-9, catalytic site, hemopexin-like domain, pemodelan molekul, YASARA-structure

xii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

ABSTRACT

Matrix Metalloproteinase 9 (MMP-9) enzyme has the potential as a ligand- target for the drug discovery of cancer or wounds healing in Diabetic Foot Ulcer (DFU). At present, there is no complete crystal structure of MMP-9, so the MMP-9 modeling simulation in the ligand drug discovery only uses fragment from MMP-9 both the catalytic site and hemopexin-like domain (PEX). The whole MMP-9 structure can be made in the 3-dimensional model using homology modeling. The whole MMP-9 model can be used in ligand drug discovery at the catalytic site and PEX. This study aims to create a full model MMP-9 as a virtual target in ligand drug discovery at the catalytic site and PEX. Molecular dynamics simulation of MMP-9 models using YASARA-structure with an AMBER14 force field. Molecular dynamics simulations running to 20 ns with a 10 ps snapshot. The results of simulations are analyzed semi-quantitatively by looking at: (1) The quality of the homology model (i) the truth of the enantiomer; (ii) absence of cis-peptide bonds; (iii) appropriateness of naming; (iv) bond length; (v) bond angles; (vi) dihedral angle; (vii) planar groups. (2) The stability of MMP-9 based on the RMSD backbone value every 5 ns, if the RMSD backbone in 5 ns is below 1Å then MMP-9 with ligands is stable. (3) The free energy of binding (ΔG bind) of each simulation is calculated using the YASARA-structure macro. (4) The RMSD result from redocking is calculated to see the reproducible of docking, reproducible if the RMSD redocking below ≤ 2Å. The results of molecular modeling of MMP-9 with Duf-02 ligand and without ligand are unstable. Only MMP-9 with CC27 ligand was stable by reaching equilibrium at 5.05 ns, MMP-9 has reached equilibrium if the RMSD backbone every 5ns is below 1Å. The lowest free energy of binding at time 6.40 ns with a value of -12.75 kcal/mol. Ligand redocking at 6.40 ns is reproducible, with 1000 times of RMSD redocking being under 2Å. The conclusion from the results of this research that the model can be used as a target virtual screening on a catalytic site.

Keywords: MMP-9, catalytic site, hemopexin-like domain, molecular modeling, YASARA-structure

xiii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

1.PENDAHULUAN 1.1 Latar Belakang Human matrix metalloproteinases (hMMPs) merupakan enzim yang berperan dalam proses remodeling extracellular matrix (ECM) dan membran dasar1. Enzim MMPs tersusun dari regulatory, catalytic site dan hemoxpexin-like domain2. Berdasarkan substrat enzim MMPs dikategorikan menjadi collagenase, gelatinase, stromelysis, matrilysins dan membrane-types3. Enzim MMP-9 yang termasuk gelatinase merupakan suatu protein yang berfungsi mendegradasi extracellular matrix dan ikut berperan dalam proses penyembuhan luka. Aktivitas MMP-9 yang tidak terkontrol akan menyebabkan proses penyembuhan luka menjadi lambat pada komplikasi penyakit kronis seperti Diabetic Foot Ulcer (DFU)4. Enzim MMP-9 berpotensi sebagai target protein dalam penemuan obat penyembuh luka pada DFU5. Penyembuhan luka ditargetkan pada catalytic site dengan menghambat sisi catalytic site untuk mendegradasi ECM, sehingga membantu proses penyembuhan luka pada penderita diabetes. Selain sebagai target penyembuh luka MMP-9 juga digunakan sebagai target dalam anti kanker2. Diketahui bahwa ekspresi berlebih dari MMP-9 memiliki korelasi terhadap proliferasi dan peningkatan ukuran sel kanker6. Hemopexin-like domain (PEX) pada MMP-9 akan berinteraksi dengan reseptor clusters of differentiation 44 (CD44) dan memicu proliferasi sel7. Suatu ligan inhibitor PEX akan menghambat pembentukan dimer, sehingga tidak dapat berinteraksi dengan reseptor CD44 dan proliferasi sel tidak terjadi8. Selama ini penghambatan MMP-9 secara umum ditargetkan pada catalytic site. Namun, adanya homologi yang tinggi pada catalytic site pada semua MMP menyebabkan target menjadi tidak selektif35. Semua kerja MMP menjadi dihambat, padahal MMP juga dibutuhkan dalam memetabolisme senyawa di dalam tubuh seperti inflamasi11. Ketidak selektifan ini berdampak pada gagalnya hampir semua MMP inhibitor pada fase klinik. Ke gagalan pada fase klinik dikarenakan munculnya efek samping yaitu nyeri otot. Karena itu, dikembangkan target lain dari MMP9 yang mempunyai homologi cukup rendah. Hemopexin-like domain pada MMP-9 hanya memiliki 25% kemiripan dengan MMP yang lain. Sehingga hemopexin-like domain menjadi target yang berpotensi sebagai inhibitor MMP-917.

1 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Pemodelan molekul dalam penemuan ligan dengan target MMP-9 tidak menggunakan struktur MMP-9 secara utuh, dikarenakan hingga saat ini belum terdapat kristal struktur MMP-9 secara utuh9. Sehingga pemodelan molekul hanya menggunakan fragmen dari MMP-9 baik catalytic site maupun PEX. Simulasi pemodelan molekul yang dilakukan secara terpisah tersebut menyebabkan tidak dapat diketahui afinitas ligan tersebut berada pada catalytic site atau PEX10. Penelitian pemodelan molekul penemuan ligan pada MMP-9 dilakukan dengan ligan ditambatkan pada masing-masing sub unit pada MMP-9 utuh. Tujuan dari penelitian ini untuk memodelkan target virtual MMP-9 secara utuh sebagai target penemuan ligan baik pada catalytic site maupun PEX. Hasil pemodelan ini diharapkan dapat digunakan sebagai target virtual pemodelan molekul untuk penemuan ligan yang spesifik pada catalytic site maupun PEX. Luaran yang diharapkan dari penelitian ini adalah publikasi artikel ilmiah, setidaknya di jurnal nasional terakreditasi.

2. TINJAUAN PUSTAKA

2.1 Matrix Metalloproteinase 9 Enzim matrix metalloproteinase 9 (MMP-9) merupakan proteinase yang berfungsi mendegradasi extracellular matrix (ECM)11. Enzim MMP-9 memiliki struktur terdiri dari propeptide, catalytic site, fibronectin, linker dan hemopexin-like domain (PEX) (Gambar 1)5. Enzim MMP-9 dibentuk dalam keadan zymogen (tidak aktif)12. Propeptide menjaga MMP-9 dalam keadaan tidak aktif dengan adanya interaksi sistein dengan Zn3. Ketika ada substrat yang akan masuk, interaksi sistein dengan Zn akan putus dan MMP-9 menjadi aktif. Catalytic site merupakan bagian dari sisi aktif yang memiliki Zn dan berperan dalam proses enzimatiknya11.

Fibronectin

Propeptide Catalytic site Linker Hemopexin domain

Gambar 1. Struktur Matrix Metalloproteinase 9 Enzim MMP-9 secara normal dalam proses fisiologis memiliki peran sebagai perbaikan sel, proliferasi, migrasi dan angiogenesis bahkan penyembuhanan luka13. Dalam

2 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

penyakit kanker terdapat peningkatan ekspresi MMP-9 yang berpengaruh dalam penyebaran sel kanker14 dan peningkatan ekspresi MMP-9 memiliki korelasi terhadap proliferasi dan peningkatan ukuran sel kanker15. Inhibitor MMP-9 menghambat migrasi dan proliferasi sel dengan cara mengganggu pembentukan dimer PEX sehingga sinyal kepada reseptor clusters of differentiation 44 untuk mengalami migrasi dan proliferasi tidak terjadi13. 2.2 Catalytic Site dan Hemopexin-like Domain Hemopexin-like domain (PEX) berupa 4 beta-propeller dihubungkan dengan catalytic site oleh hinge/linker region yang fleksibel16 (Gambar 2). Sub unit PEX akan membentuk dimer dan berinteraksi dengan reseptor clusters of differentiation 44 pada permukaan membran sel. Interaksi yang tejadi akan memicu sel mengalami proliferasi sehingga sel kanker dapat tumbuh dan menyebar17. Suatu senyawa inhibitor PEX akan menghambat pembentukan dimer PEX. Penurunan kadar MMP-9 menunjukkan penurunan ukuran dan metastasis dari sel kanker, oleh karena itu penemuan obat kanker didesain sebagai inhibitor PEX18.

Gambar 2. Struktur Hemopexin domain19 Catalytic site merupakan sisi aktif dari MMP-9 yang berperan mendegradasi extracellular matrix11 dan memiliki ion Zn sebagai kofaktor3. Catalytic site biasa digunakan sebagai target penyembuh luka dengan menghambat proses enzimatiknya20. Interaksi sistein dengan Zn menjaga enzim tidak aktif, ketika interaksi tersbut terputus kantung ikatan pada catalytic site seolah-olah terbuka dan MMP-9 menjadi aktif (Gambar 3). Substrat yang masuk ke dalam catalytic site akan dihidrolisis dengan adanya molekul air yang berinteraksi dengan asam glutamat dengan bantuan Zn7. Secara

3 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

normal mekanisme kerja enzim MMPs akan dihambat oleh endogen spesifik seperti tissue inhibitor of metalloproteinases (TIMPs)1.

Gambar 3. Visualisasi Catalytic site interaksi sistein dengan Zn yang menjaga enzim dalam keadaan tidak aktif21

2.3 MMP-9 Sebagai Target Molekul Dalam Penyembuh Luka Pada hari pertama luka MMP-9 disekresikan oleh sel inflamasi dan membersihkan luka dari extracellular matrix (ECM) yang rusak6. Ketika MMP-9 mendegradasi ECM, respon inflamasi akan terjadi hal ini karena mediator inflamasi seperti prostalglandin dan bradikinin terlepas saat degradasi ECM11. Selain mendegradasi ECM, enzim MMP-9 juga berperan dalam pembentukan dari membran sel22. Selama perbaikan sel MMP-9 juga berperan dalam mendegradasi matrik yang tidak beraturan. Aktivitas MMP-9 yang tidak terkontrol akan mempengaruhi keseimbangan penghancuran dan pembentukan membran sel. Penghancuran membran sel yang tidak dihambat akan menurukan proses penyembuhan luka23. Penemuan ligan sebagai inhibitor MMP-9 dalam penyembuh luka ditargetkan pada catalytic site24 dengan membuat enzim menjadi tidak aktif. Asam amino penting pada pada catalytic site adalah HIS401, HIS405 dan HIS411 dan GLU402. Interaksi yang penting sebagai inhibitor MMP-9 pada catalytic site adalah interaksi phi-phi antara gugus aromatis pada ligan dengan histidin, interaksi ion dengan Zn dan interaksi hidrogen dengan glutamat25. Salah satu ligan yang diketahui sebagai inhibitor MMP-9 pada catalytic site adalah N-2-(biphenyl-4-ylsulfonyl)-N-2(isopropyloxy)-acetohydroxamic yang memiliki

IC50 200nM (Gambar 4). Ligan tersebut memiliki gugus aromatis yang berinteraksi aromatis dengan HIS401, interaksi ion dengan Zn dan interaksi hidrogen dengan GLU402

4 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

(Gambar 5). Salah satu ciri ligan inhibitor catalytic site pada MMP-9 yaitu memiliki gugus hidroxamat. Ligan yang berada pada catalytic site akan bersifat kompetitif menyebabkan substrat tidak dapat masuk26 .

Cincin Gugus aromatis hidroxamat

Gambar 4. Struktur N-2-(biphenyl-4-ylsulfonyl)-N-2(isopropyloxy)-acetohydroxamic (CC27)

Gambar 5. Visualisasi Catalytic site dengan ligan CC27 (cyan), residu HIS401, HIS405 dan HIS411 (biru), GLU402 (merah) dan Zn (ungu)

2.4 MMP-9 Sebagai Target Molekul Dalam Terapi Kanker Penelitian awal mengenai obat kanker berfokuskan pada cara untuk membunuh sel kanker, akan tetapi kebanyakan sel normal ikut terbunuh dan sel kanker tetap resisten6. Pada tahun 90-an, MMP-9 telah teridentifikasi dan berpotensi sebagai target penemuan ligan untuk obat kanker25. Saat ini, penemuan obat kanker didesain sebagai inhibitor hemopexin-like domain (PEX) untuk menghambat aktivitas MMP-927. Sub unit PEX akan membentuk dimer (Gambar 6) dan berinteraksi dengan reseptor clusters of differentiation 44 (CD44) pada permukaan sel28. Interaksi antara PEX dengan reseptor CD44 akan mengaktivasi epidermal growth factor receptor (EGFR) menyebabkan sel mengalami proliferasi6. Ekspresi MMP-9 yang tidak terkontrol akan menyebabkan sel kanker tumbuh tidak terkendali12.

5 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Salah satu ligan yang diketahui sebagai inhibitor MMP-9 dan telah diuji adalah senyawa sintesis oleh Dufour et al. (Gambar 7). Struktur senyawa Duf-02 memiliki gugus aril amida dan hidrofobik yang mampu berikatan pada kantung ikatan hemopexin-like domain. Gugus aril amida akan berada didalam kantung ikatan diantara 4 bilah dikarenakan memiliki gugus amida yang menyerupai substrat. Gugus -NH dari aril amida akan berinteraksi hidrogen dengan GLU618. Selain itu terdapat atom polar seperti O maupun N pada cincin planar yang mampu berinteraksi dengan ARG618. Ligan tersebut bekerja dengan mencegah pembentukan dimer yang berinteraksi secara hidrofobik sehingga PEX tidak dapat berinteraksi dengan reseptor CD447. Bagian penting hemopexin-like domain terletak pada blade 4 dengan ARG618 yang berinteraksi

666 dengan SO4.. Asam amino yang diduga penting sebagai target ligan adalah GLN , ARG618, GLU572 dan GLU526. Inhibitor PEX untuk obat kanker mencegah agar proliferasi sel kanker tidak terjadi dan mencegah terjadinya pertumbuhan serta metastasis dari sel kanker18.

Gambar 6. Dimer hemopexin-like domain

Cincin planar Aril amida Gugus hidrofobik

Gambar 7. Struktur senyawa Duf-02 sebagai inhibitor PEX

6 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

666 Gambar 8. Visualisasi Hemopexin-like domain dengan SO4 (kuning) dan residu GLN (hijau), ARG618 (biru), GLU572 dan GLU526 (merah) 3. METODE PENELITIAN 3.1 Bahan dan Instrumen 3.1.1 Bahan File pdb berisi struktur model MMP-9 utuh hasil pemodelan homologi menggunakan YASARA-structure32 yang diambil dari doi:10.17632/xj7yt48jwb.133. Ligan yang digunakan berupa ligan CC27 (Gambar 4) dari kristal struktur 4H3X.pdb yang diambil dari Protein Data Bank (PDB; https://www.rcsb.org/) dan senyawa (Gambar 7) yang diuji oleh Dufour et al20. 3.1.2 Instrumen Simulasi pemodelan molekul menggunakan perangkat lunak YASARA-structure versi 19.1.27. Force field yang digunakan dalam simulasi menggunakan AMBER14. Server Fakultas Farmasi Universitas Sanata Dharma (IP 172.23.1.176) dengan spesifikasi sistem operasi dengan 16 core RAM 16 GB dan komputer lab kimia komputasi dengan processor Intel® CoreTM i5-7500, 8 GB RAM dengan sistem operasi Windows 10 professional 64-bit. 3.2 Tahapan Simulasi 3.2.1 Preparasi Masing-masing ligan CC27 dan Duf-02 ditambatkan pada catalytic site dan hemopexin-like domain model MMP-9. Ruang penambatan molekul pada catalytic site ditentukan 5Å dari ligan CC27 yang telah ada pada model MMP-9 sedangkan

7 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

hemopexin-like domain 5 A dari asam amino ARG574. Pemilihan ARG574 sebagai center dikarenakan ARG574 berada di antara asam amino GLN666, ARG618, GLU572 dan GLU526. Sehingga terdapat 4 sistem yang dilakukan dinamika molekul selama 20 ns menggunakan macro md_run_20ns_ss10.mcr (Lampiran 8.2)29. Hasil simulasi dinamika molekul selanjutnya dianalisis menggunakan md_analyze.mcr standar bawaan YASARA-structure untuk melihat RMSD. Hasil dinamika molekul selama 5 ns setelah mencapai equilibrium diambil untuk dianalisis The free energy of binding (ΔG)34. Pose waktu model MMP-9 yang memiliki energi terendah kemudian diambil dan digunakan sebagai target penambatan molekul ligan sebanyak 1000 kali menggunakan macro dock_run_1000.mcr (Lampiran 8.4). 3.3.2 Analisis Hasil Analisis secara semi kuantitatif dilakukan dengan melihat: (1) Kualitas model homologi yang telah dilakukan dinamika molekul selama 10 ns; (i) kebenaran dari enantiomer; (ii) tidak adanya ikatan cis-peptida; (iii) kesesuaian penamaan; (iv) panjang ikatan; (v) sudut ikatan; (vi) sudut dihedral; (vii) gugus planar32. (2) Stabilitas MMP-9 dianalisis dengan menghitung nilai root mean square deviation (RMSD) backbone tiap 5 ns, jika RMSD backbone ≤ 2Å selama 5 ns maka dianggap MMP-9 telah stabil30. Apabila RMSD backbone tidak berada di bawah 2Å selama 5 ns, maka MMP-9 dikatakan tidak stabil dan tidak dilakukan analisis binding energi. (3) The binding free energy (ΔG) dihitung menggunakan becalculation.mcr (Lampiran 8.3). (4) Reprodusibel penambatan ligan dilihat dengan menghitung RMSD penambatan ulang dibanding pose ligan pada pose binding energi terendah (ligan referensi) menggunakan dock_run_1000.mcr (Lampiran 8.4), dikatakan reprodusibel jika nilai RMSD ≤ 2Å31.

4. HASIL DAN PEMBAHASAN

Penelitian ini bertujuan untuk membuat target virtual yang dapat digunakan sebagai penapisan virtual MMP-9. Target yang dibuat berupa model MMP-9 secara utuh sebagai target penapisan virtual baik pada catalytic site maupun hemopexin-like domain. Ligan CC27 dan senyawa Duf-02 ditambatkan pada masing-masing sub unit. Selanjutnya MMP-9 dengan ligan yang berada pada masing-masing kantung ikatan

8 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

dilakukan dinamika molekul selama 20 ns. Simulasi tanpa adanya ligan ditambahkan sebagai pembanding pengaruh adanya ligan terhadap stabilitas MMP-9. Dinamika molekul MMP-9 dengan ligan CC27 maupun Duf-02 pada hemopexin-like domain tidak dapat dianalisis. Tidak adanya ligan referensi pada kantung ikatan hemopexin-like domain menyebabkan tidak diketahuinya letak kantung secara spesifik. Sehingga penambatan molekul pada hemopexin-like domain yang dilakukan berdasarkan prediksi pada ARG574 sebagai pusat. Ligan yang di tambatkan pada sisi yang kurang tepat kemungkinan menyebabkan terjadinya interaksi yang tidak dapat diprediksi oleh YASARA-structure. Dinamika molekul dengan kedua ligan yang ditambatkan pada hemopexin-like domain tersebut tidak dapat dianalisis oleh YASARA- structure. 4.1 Kualitas Hasil Pemodelan Homologi. Model yang yang telah dibuat tidak terdapat kesalahan penamaan. Panjang ikatan, sudut ikatan, sudut dihedral dan gugus planar tidak lebih kecil dari -2 (Tabel 1). Terdapat 2 ikatan cis-peptida pada model MMP-9 yang dibuat. Adanya ikatan cis- peptida terdapat pada PRO553 dan PRO598. Dua ikatan cis-peptida tersebut berada pada hemopexin-like domain. Ikatan cis-peptida prolin masih dapat diterima. Secara keseluruhan kualitas model MMP-9 utuh yang dibuat cukup baik.

Tabel 1. Hasil analisis kualitas model pemodelan homologi Kualitas Model Homologi32

Parameter Nilai

Kebenaran enantiomer 0 (> 0 bad)

Adanya ikatan cis-peptida 2 cis-peptida prolin (> 0 bad )

Kesesuaian penamaan 0 (> 0 bad)

Panjang ikatan 0,727 (< -2 poor, < -4 bad)

Sudut ikatan 0,183 (< -2 poor, < -4 bad)

Sudut dihedral 0,176 (< -2 poor, < -4 bad)

Gugus planar 0,505 (< -2 poor, < -4 bad)

9 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

4.2 Stabilitas MMP-9 Terhadap Ligan Simulasi dinamika molekul MMP-9 dikatakan stabil apabila selama 5 ns nilai RMSD backbone tiap 5 ns di bawah 1Å30. Nilai RMSD backbone tiap 5 ns pada MMP-9 dengan ligan Duf-02 dan tanpa ligan tidak ada yang di bawah 1Å selama 5 ns. Oleh karena itu MMP-9 dengan ligan Duf-02 dan tanpa ligan dinyatakan tidak stabil. Sedangkan RMSD MMP-9 dengan ligan CC27 setelah 5,05 ns berada dibawah 1Å hingga 20 ns. Pada 0 ns hingga 5,05 ns dianggap merupakan proses equilibrium dan setelah 5,05 ns MMP-9 dengan ligan CC27 telah stabil (Gambar 9). Adanya ligan CC27 pada catalytic site meningkatkan stabilitas dari MMP-9 dibanding MMP-9 tanpa ligan. Ligan Duf-02 kemungkinan besar tidak menempati kantung ikatan catalytic site karena selama 20 ns MMP-9 tidak stabil. Ligan Duf-02 kemungkinan menempati sisi kantung ikatan lain pada MMP-9.

Gambar 9. Nilai RMSD backbone (kiri) dan RMSD tiap 5ns (kanan); (A) MMP-9 ligan CC27, (B) MMP-9 ligan Duf-02 dan (C) MMP-9 tanpa ligan secara berurutan

10 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

4.3 The Binding Free Energy (ΔG bind) Simulasi dinamika molekul MMP-9 dengan ligan CC27 selanjutnya dilakukan analisis the binding free energy. Model MMP-9 dengan ligan Duf-02 tidak dilakukan analisis binding energi karena MMP-9 tidak stabil selama simulasi. Hasil analisis binding energi ligan CC27 dengan MMP-9 didapat nilai terendah -12,75 kcal/mol pada waktu 6,40 ns (Gambar 10).

Gambar 10. The free energy of binding CC27 dengan MMP-9 selama 5,05 ns hingga 10.05 ns dengan nilai terendah -12,75 kcal/mol pada 6,40 ns 4.4 Penambatan Ligan Pose MMP-9 yang memiliki energi terendah kemudian digunakan sebagai target penapisan virtual. Ligan CC27 dilakukan penambatan ulang sebanyak 1000 kali pada pose waktu 6,40 ns. Hasil 1000 pose penambatan ulang ligan dibandingkan dengan pose ligan pada waktu 6,40 ns untuk megetahui reprodusibilitas dari penambatan. Penambatan ligan dikatakan reprodusibel apabila RMSD ligan hasil penambatan ulang dibanding ligan referensi (pose ligan pada 6,40 ns) di bawah 2Å31. Nilai RMSD semua ligan hasil penambatan ulang dibanding ligan referensi yang diperoleh di bawah 1Å dengan nilai RMSD tertinggi 1.275Å. Dari hasil RMSD tersebut penambatan ulang ligan pada pose 6,40 memiliki hasil reprodusibel. Sehingga hasil pemodelan molekul yang diperoleh dapat digunakan sebagai target virtual untuk penapisan virtual MMP-9 pada catalytic site.

11 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Gambar 11. Visualisasi 1000 pose ligan (cyan) hasil penambatan molekul

5. KESIMPULAN DAN SARAN

Berdasarkan protokol yang telah dilakukan hasil model MMP-9 dapat digunakan sebagai target penapisan virtual pada catalytic site, akan tetapi tidak untuk hemopexin- like domain. Perlu dilakukan analisis pada hemopexin-like domain menggunakan tools lain seperti plugin trajectory pada VMD dan/atau dilakukan pemodelan homologi dengan hemopexin-like domain yang telah ditambah ligan. Hemopexin domain dengan adanya ligan pada kantung ikatan akan memastikan ligan yang ditambatkan tepat pada tempatnya.

12 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

6. DAFTAR PUSTAKA

1111. Keeling J, Herrera GA. Human matrix metalloproteinases: Characteristics and pathologic role in altering mesangial homeostasis. Microsc Res Tech. 2008;71(5):371-379. doi:10.1002/jemt.20565

2. Roeb E, Schleinkofer K, Kernebeck T, Pötsch S, Jansen B, Behrmann I, Matern S, Grotzinger J. The matrix metalloproteinase 9 (MMP-9) hemopexin domain is a novel gelatin binding domain and acts as an antagonist. J Biol Chem. 2002;277(52):50326-50332. doi:10.1074/jbc.M207446200

3. Hidalgo M, Eckhardt SG. Development of matrix metalloproteinase inhibitors in cancer therapy. J Natl Cancer Inst. 2001;93(3):178-193. doi:10.1093/jnci/93.3.178

4. Ayuk SM, Abrahamse H, Houreld NN. The role of matrix metalloproteinases in diabetic wound healing in relation to photobiomodulation. J Diabetes Res. 2016;2016:1-9. doi:10.1155/2016/2897656

5. Vandooren J, Knoops S, Buzzo JLA, Boon L, Martens E, Opdenakker G, Kolaczkowska E. Differential inhibition of activity, activation and gene expression of MMP-9 in THP-1 cells by azithromycin and minocycline versus bortezomib: a comparative study. PLoS One. 2017;12(4):1-19. doi:10.1371/journal.pone.0174853

6. Farina AR, Mackay AR. Gelatinase B/MMP-9 in tumour pathogenesis and progression. Cancers (Basel). 2014;6(1):240-296. doi:10.3390/cancers6010240

7. Ezhilarasan R, Jadhav U, Mohanam I, Rao JS, Gujrati M, Mohanam S. The hemopexin domain of MMP-9 inhibits angiogenesis and retards the growth of intracranial glioblastoma xenograft in nude mice. Int J Cancer. 2009;124(2):306- 315. doi:10.1002/ijc.23951

8. Gentile E, Liuzzi GM. Marine pharmacology: therapeutic targeting of matrix metalloproteinases in neuroinflammation. Drug Discov Today. 2017;00(00):1-15. doi:10.1016/j.drudis.2016.09.023

13 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

9. Hou J, Wang Y, Gao W, Yao W, Yao Q, Zhang J. Screening for the selective inhibitors of MMP-9 from natural products based on pharmacophore modeling and molecular docking in combination with bioassay experiment, hybrid QM/MM calculation, and MD simulation. J Biomol Struct Dyn. 2018;0(0):1-15. doi:10.1080/07391102.2018.1509019

10. Kaczanowski S, Zielenkiewicz P. Why similar protein sequences encode similar three-dimensional structures? Theor Chem Acc. 2010;125(3-6):643-650. doi:10.1007/s00214-009-0656-3

11. Van Lint P, Libert C. Chemokine and cytokine processing by matrix metalloproteinases and its effect on leukocyte migration and inflammation. J Leukoc Biol. 2007;82(6):1375-1381. doi:10.1189/jlb.0607338

12. Mali AV, Joshi AA, Hedge MV, Kadam SS. Enterolactone suppresses proliferation, migration and metastasis of MDA-MB-231 breast cancer cells through inhibition of uPA induced plasmin activation and MMPs-mediated ECM remodeling. Asian Pacific J Cancer Prev. 2017;18(4):905-915. doi:10.22034/APJCP.2017.18.4.905

13. Vu TH, Werb Z. Matrix metalloproteinases: effectors of development and normal physiology. Genes Dev. 2000;14:2123-2133. doi:10.1101/gad.815400.GENES

14. Merchant N, Nagaraju GP, Rajitha B, Lammata S, Jella KK, Buchwald ZS, Lakka SS, Ali AN. Matrix metalloproteinases: their functional role in lung cancer. Carcinogenesis. 2017;38(8):766-780. doi:10.1093/carcin/bgx063

15. Bhowmick NA, Neilson EG, Moses HL. Stromal fibroblasts in cancer initiation and progression Neil. Nature. 2011;432(7015):332-337. doi:10.1038/nature03096.Stromal

16. Glasheen MB, Kabra TA, Page-McCaw A. Distinc functions for the catalytic and hemopexin domains of drosophila matrix metalloproteinase. PNAS. 2009;302(6784):1053-1055. doi:10.1073/pnas.0804171106

14 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

17. Dufour A, Cao J, Kuscu C, Dufour A, Zucker S, Sampson NS. Role of matrix metalloproteinase-9 dimers in cell migration. J Biol Chem. 2010;285(46):35944- 35956. doi:10.1074/jbc.m109.091769

18. Alford VM, Kamath A, Ren X, Kumar K, Gan Q, Awwa M, Tong M, Seeliger MA, Cao J, Ojima I, Sampson NS. Targeting the hemopexin-like domain of latent matrix metalloproteinase-9 (proMMP-9) with a small molecule inhibitor prevents the formation of focal adhesion junctions. ACS Chem Biol. 2017;12:2788-2803. doi:10.1021/acschembio.7b00758

19. Cha H, Kopetzki E, Huber R, Lanzendörfer M, Brandstetter H. Structural basis of the adaptive molecular recognition by MMP9. J Mol Biol. 2002;320(5):1065- 1079. doi:10.1016/S0022-2836(02)00558-2

20. Hingorani DV, Lippert CN, Crisp JL, Savariar EN, Hasseimann JPC, Kuo C, Nguyen QT, Tsien RY, Whitney MA, Ellies LG. Impact of MMP-2 and MMP-9 enzyme activity on wound healing , tumor growth and RACPP cleavage. PLoS One. 2018;13(9):1-17. doi:10.1371/journal.pone.0198464

21. Elkins PA, Yen SH, Smith WW, Janson CA, Alessio KJD, McQueney MS, Cummings MD, Romanic AM. Structure of the C-terminally truncated human ProMMP9, a gelatin-binding matrix metalloproteinase. Acta Crystallogr Sect D Biol Crystallogr. 2002;58(7):1182-1192. doi:10.1107/S0907444902007849

22. Lebert DC, Squirrell JM, Rindy J, Broadbridge E, Lui Y, Zakrzewska A, Elicelri KW, Meijer AH, Huttenlocher A. Matrix metalloproteinase 9 modulates collagen matrices and wound repair. Co Biol. 2015;142:2136-2146. doi:10.1242/dev.121160

23. Hariono M, Yuliani SH, Istyastono EP, Riswanto FDO, Adhipandito CF. Matrix metalloproteinase 9 (MMP9) in wound healing of diabetic foot ulcer: molecular target and structure-based drug design. Biochem Pharmacol. 2018;9:1-47. doi:10.1016/j.wndm.2018.05.003

24. Sabino F, Keller U auf dem K. Matrix metalloproteinases in impaired wound healing. Met Med. 2015;2:1–8. doi:https//dx.doi.org/10.2147/MNM.S68420

15 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

25. Winer A, Adams S, Mignatti P. Matrix metalloproteinase inhibitors in cancer therapy: turning past failures into future successes. Mol Cancer Ther. 2018;17(6):1147-1155. doi:10.1158/1535-7163.MCT-17-0646

26. García-Pardo A, Opdenakker G. Nonproteolytic functions of matrix metalloproteinases in pathology and insights for the development of novel therapeutic inhibitors. Met Med. 2015;2:19-28. doi:10.2147/MNM.S63629

27. Cathcart J, Pulkoski-Gross A, Cao J. Targeting matrix metalloproteinases in cancer: Bringing new life to old ideas. Genes Dis. 2015;2(1):26-34. doi:10.1016/j.gendis.2014.12.002

28. Grass GD, Tolliver LB, Bratoeva M, Toole BP. CD147 , CD44 and the epidermal growth factor receptor (EGFR) signaling pathway cooperate to regulate breast epithelial cell invasiveness. J Biol Chem. 2013;288(36):26089-26104. doi:10.1074/jbc.M113.497685

29. Krieger E, Vriend G. New ways to boost molecular dynamics simulations. J Comput Chem. 2015;36(13):996-1007. doi:10.1002/jcc.23899

30. Liu K, Watanabe E, Kokubo H. Exploring the stability of ligand binding modes to proteins by molecular dynamics simulations. J Comput Aided Mol Des. 2017;31(2):201-211. doi:10.1007/s10822-016-0005-2

31. Liu K, Kokubo H. Exploring the stability of ligand binding modes to proteins by molecular dynamics simulations: a cross-docking study. J Chem Inf Model. 2017;57(10):2514-2522. doi:10.1021/acs.jcim.7b00412 32. Krieger E, Koraimann G, Vriend G. Increasing the precision of comparative models with YASARA NOVA - A self-parameterizing force field. Proteins Struct Funct Genet. 2002;47(3):393-402. doi:10.1002/prot.10104 33. Istyastono EP. Model of full human matrix metalloproteinase 9 with ligands from PDB:4H3X and PDB:1ITV. Mendeley Data. 2019. doi:10.17632/xj&yt48jwb.1 34. Prasasty VD, Istyastono EP. Structure-based design and molecular dynamics simulations of pentapeptide AEYTR as a potential acetylcholinesterase inhibitor. Indones. J. Chem. 2019;1–7. https://doi.org/10.22146/ijc.46329

16 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

35. Adhipandito CF, Ludji DPKS, Aprilianto E, Jenie RI, Al-Najjar B, Hariono M. Matrix Metalloproteinase9 as the protein target in anti-breast cancer drug discovery: an approach by targeting hemopexin domain. Futur J Pharm Sci .2019;5(1):1-15.

17 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

7. BIOGRAFI PENULIS

Roy Gunawan Wicaksono, S.Farm. Lahir di Sleman pada tanggal 28 Februari 1996. Riwayat pendidikan formal yang telah ditempuh oleh penulis adalah SD N 1 Nanggulan (2002-2008). SMP N 7 Yogyakarta (2008-2011). SMA N 1 Nanggulan (2011-2014). Sarjana Farmasi di Universitas Sanata Dharma Yogyakarta (2014- 2018). Setamat dari pendidikan Sarjana Farmasi, penulis melanjutkan pendidikan Magister Farmasi di Fakultas Farmasi Universitas Sanata Dharma Yogyakarta. Selama menempuh pendidikan Magister Farmasi penulis menjadi dosen luar biasa (DLB) praktikum biokimia di Universitas Sanata Dharma Yogyakarta.

18 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

8. LAMPIRAN 8.1 Status makalah ilmiah dan makalah ilmiah

18 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

JURNAL FARMASI SAINS DAN KOMUNITAS, month year, pp Vol. X No. X p-ISSN 1693-5683; e-ISSN 2527-7146 doi:

MOLECULAR DYNAMICS STUDIES OF FULL HUMAN MATRIX METALLOPROTEINASE 9 LIGANDED WITH N-HYDROXY-2-[(4- PHENYLPHENYL)SULFONYL-PROPAN-2-YLOXYAMINO]ACETAMIDE

Roy Gunawan Wicaksono, Maywan Hariono and Enade Perdana Istyastono*)

Faculty of Pharmacy, Sanata Dharma University, Paingan Maguwoharjo Depok Sleman Yogyakarta, 55282, Indonesia

* Corresponding author: Enade Perdana Istyastono email: [email protected]

co-Author email: Roy Gunawan Wicaksono: [email protected] Maywan Hariono: [email protected]

ABSTRACT

The research presented in this article aimed to provide a full quarternary structure of human matrix metalloproteinase 9 (MMP9) enzyme with a ligand in the catalytic site for structure-based virtual screening. The enzyme plays an important role in wound healing of diabetic foot ulcer. By employing the primary structure of the enzyme obtained from UniProt database (UniProt:P14780), the theoretical structure of full apoenzyme of the human MMP9 (PDB:1LKG), the crystal structures of the catalytic domain (PDB:4H3X) and the hemopexin domain (PDB:1ITV) of the human MMP9, homology modeling studies have been performed. The ligand N-2-(biphenyl-4-yl- sulfonyl)-N-2-(isopropyloxy)-acetohydroxamic acid (CC27) or N-hydroxy-2-[(4- phenylphenyl)sulfonyl-propan-2-yloxyamino]acetamide (IUPAC version) from PDB:4H3X was embedded in the catalytic site of the enzyme. The modeling made use of the modules of homology modeling in YASARA structure. Subsequently, molecular dynamics (MD) simulations in YASARA structure were performed to examine the stability of the enzyme. The homology model was found stable after 5.05 ns and the lowest energy of the model was found at the 6.40 ns of the MD production run. This lowest energy snapshot was then energetically minimized and analyzed for its applicability for virtual screening. This optimized model was then stored in Mendeley Data (DOI: 10.17632/4gsb4p75gz.1).

Keywords: matrix metalloproteinase 9; virtual screening; homology modeling; molecular dynamics simulations; YASARA structure.

19 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

INTRODUCTION Enzyme matrix metalloproteinase 9 (MMP9) becomes a molecular target of interest in the discovery of therapeutic agents for a diabetic foot ulcers and cancer (Hariono et al., 2018). The enzyme comprises a catalytic domain and a hemopexin-like domain, which have different roles (Roeb et al., 2002). The catalytic domain degrades the damaged matrix membrane in the wound healing processes (Vandooren et al., 2017). Uncontrolled enzyme activity causes the membrane degradation and formation balance disruption in the wound healing processes (Ayuk et al., 2016). Inhibitors in the catalytic domain are required to control the balance (Jones et al., 2019). On the other hand, although existed in the same MMP9 enzyme, the hemopexin domain has a different role (Dufour et al., 2010). Hemopexin domain acts as a messenger receptor by forming dimers (Ezhilarasan et al., 2009). The interaction between the hemopexin domain with cell surface receptors triggers cell proliferation (Delozier et al., 2011). The growth of cancer cells could, therefore, be inhibited by inhibitors for the hemopexin domain (Alford et al., 2017). The available 3D structures can assist the visualization of the ligand and protein interactions in structure-based drug design (SBDD) approaches (Wang et al., 2018). The homology comparative modeling method is an approach to predict the 3D structure of protein-based on its amino acid chain. Three-dimensional structures in this approach are made using other similar proteins that the 3D structures are already known as the templates (Cavasotto and Phatak, 2009). The processes of building the structure of the 3D protein model include: (1) Other similar proteins with known the 3D structures are used as templates; (2) The amino acid sequences of protein target are aligned to the templates; (3) The 3D structures of the target are constructed based on the 3D structure of the templates; (4) The MMP9 model resulted are then evaluated, validated, and remodelled until appropriate models are obtained (Mart et al., 2000). There is one publicly available of full MMP9 model (PDB:1LKG). Unfortunately, there is no ligand in the model, which then create difficulties in the binding pocket identification. The aim of the research presented in this article was to provide validated virtual target to discover inhibitors for MMP9. Therefore, homology modeling approaches to construct a 3D structure of full MMP9 with ligands followed by

20 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

molecular dynamics simulations to examine the stability of the model were performed. The optimized model resulted in this research could be downloaded from Mendeley Data (DOI: 10.17632/4gsb4p75gz.1).

METHODS Materials and Instrumentations The human MMP9 primary sequences (UniProt:P14780) were obtained from The Universal Protein Resource (UniProt; https://www.uniprot.org/). Three-dimensional structures from The Protein Data Bank (PDB; https://www.rcsb.org/) with identity PDB:1LKG, PDB:4H3X, and PDB:1ITV were used as the 3D structure templates of human MMP9. The software mainly used was YASARA Structure version 19.1.27 (license number of 394125786). Computational studies for homology modeling were performed in a workstation with Intel® Pentium® Silver N5000 as the processor, 4 GB random access memory (RAM), and Windows 10 Home 64-bit as the . The molecular dynamics simulations and re-docking simulations were performed in a workstation with Intel® CoreTM i5-7500 as the processor, 8 GB RAM, and Windows 10 Professional 64-bit as the operating system. Procedures The homology model of the human MMP9 was constructed by employing P14780.fasta obtained from UniProt as the source of the primary sequences and PDB:1LKG (sequences 1 to 93 and 445 to 511), PDB:4H3X (sequences 94 to 444), and PDB:1ITV (sequences 512 to 707) from PDB as the templates. The module homology modeling in YASARA Structure was employed to construct the initial full model of the human MMP9. Subsequently the ligands from PDB:4H3X, and PDB:1ITV were incorporated by aligning the chain A of the structures to the initial model and followed by removing the protein parts of the crystal structures. Focused on the side chain residues of the model, the quarternary structure was then subjected to molecular dynamics simulations with fixed atoms in the main chain of residues number 94 to 444 and 512 to 707. All ligands were also fixed during molecular dynamics simulations. The molecular dynamics simulations were performed in YASARA Structure by employing a modified macro from the default macro md_run.mcr from YASARA Structure (Krieger

21 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

and Vriend, 2009). The modification was done in line 67, from duration=’forever’ to duration=1000. The molecular dynamics simulations were followed by trajectory analysis using md_analyse.mcr. The final scene file from molecular dynamic simulations resulted from the analysis was unfix and then subjected to energy minimization using energy minimization module. The scene resulted from energy minimization was then saved as mmp9_final.sce. Objects 2 and 3 in the scene were then joined to object 1 by using module Join in YASARA. The object 1 was then stored in YASARA object and pdb formats as mmp9_final.yob and mmp9_final.pdb, respectively. The model of the human MMP9 was then analyzed by employing module Check in YASARA Structure and AMBER14 as the force field. The file mmp9_final.pdb was subsequently employed as the starting point for 20 ns MD simulations using YASARA Structure (Krieger and Vriend, 2009). The default macro md_run.mcr from YASARA Structure was used with modification in line 67, from duration=’forever’ to duration=20000 and in line 109, from saveinterval=100000 to saveinterval=10000. The MD simulations were followed by trajectory analysis using md_analyse.mcr. The structure of the complex enzyme-inhibitor is considered stable if the deviation of the root-mean-squared-deviation (RMSD) values of at least 5 ns duration of the MD simulations is less than or equal to 1 Å (Liu et al., 2017). The first 5 ns of the MD simulations were considered as the production run. The free energy of binding (G) of all snapshots during the production run was calculated by employing a method published by Prasasty and Istyastono (2019). The snapshot with the lowest G value was then minimized and selected to be analyzed for its applicability for being the target in structure-based virtual screening campaigns by performing 1000 times redock simulations using VINA embedded in YASARA Structure. The docking configuration was embedded to the macro file dock_run_1000.mcr developed in this research. The file could be obtained from Mendeley Data ((DOI: 10.17632/4gsb4p75gz.1). The model was considered as applicable for virtual screening if the RMSD values of at least 95% redocking result of the ligand are less or equal to 2 Å. RESULTS AND DISCUSSION The research presented in this article aimed to publicly provide a full quarternary structure of human MMP9 with a relevant ligand in the catalytic site to be used further

22 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

in drug discovery for diabetic wound healing. The result of the homology modeling is available in 3 formats: YASARA scene (mmp9_final.sce), YASARA object (mmp9_final.yob), and PDB file (mmp9_final.pdb). These files were then stored in Mendeley Data (doi:10.17632/xj7yt48jwb.1). The final model applicable for virtual screening is available as a pdb file (mmp9.pdb), which was also stored in Mendeley Data (DOI: 10.17632/4gsb4p75gz.1). The analysis of the human MMP9 homology model showed an acceptable deviation from the average structure in all aspects. The results and the details of the analyzed aspects are presented in Table 1. Based on the results, the model of the tertiary structure of the human MMP9 resulted from the homology modeling is acceptable for further application. However, visual inspection of the interactions between the protein, the ligands, and the cofactors should be performed and compared to those from the reference structures, i.e., PDB:4H3X and PDB:1ITV. [Table 1] [Figure 1] The catalytic site of the model (Figure 1A) is slightly different from the catalytic site of the crytal structure PDB:4H3X (Figure 1B). The histidine triad in the model is slightly away from the zinc atom compared to the crystal structure, while the glutamate residue remains similar. Nevertheless, the quantitave approach by aligning the backbone of the model to the backbone of the crystal structure showed the RMSD value of those residues in the model compared to the crystal structure was 0.817 Å. Figure 1 and the alignment show that the model could reproduce the essential interactions for ligands and cofactors with the protein. Unfortunately, the ligands in PDB:1ITV, which was used as one of the templates, are only sulfate ions. Therefore, further investigation in this hemopexin-like domain should be performed. [Figure 2] The reliability of the model to be employed in a further virtual screening campaign will significantly be increased by employing a model with stable protein-ligand interactions (Liu et al., 2017). Therefore, further MD simulations for 20 ns with a snapshot in every 10 ps were performed. Figures 2A and 2B shows the RMSD values of the backbone atoms during the simulations and the deviation of these RMSD values in

23 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

the duration of 5 ns started from the initial point, respectively. As depicted in Figure 2, the MMP9-CC27 complex in this research was considered stable starting from 5.05 ns of the MD simulations. The G values of snapshots in 5 ns after the starting stable point were then calculated to identify the snapshot with the lowest G value. Figure 3 shows that the lowest snapshot was identified at the 6.40 ns of the MD production run. [Figure 3] The MMP9-CC27 complex from the 6.40 ns of the MD production run was then minimized and exported as a pdb file (mmp9.pdb). The applicability checks of this complex for virtual screening by employing 1000 redocking simulations resulted in RMSD values of less than 2.0 Å for all redocking of CC27 poses. The highest RMSD value was 1.274 Å. Thus, the MMP9-CC27 complex (mmp9.pdb) resulted in this research is highly suggested to be used in the further development of structure-based virtual screening protocols to discover drugs targeting human MMP9.

CONCLUSION Homology modeling studies followed by 20 ns MD simulations by employing YASARA Structure could result in a proper quaternary structure of full human MMP9 complexed with CC27. The availability of the model offers possibilities to perform structure-based drug design targeting the catalytic site of the human MMP9. Further investigation in the hemopexin domain should be performed to study the inhibitor selectivity of the catalytic site over the hemopexin domain.

ACKNOWLEDGEMENT This work was financially supported by the Indonesian Ministry of Research, Technology & Higher Education (No. 029/Penel./LPPM-USD/IV/2019) to M.H. as the principal investigator and E.P.I. as the member investigator.

24 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

REFERENCES Alford, V.M., Kamath, A., Ren, X., Kumar, K., Gan, Q., Awwa, M., Tong, M., Seeliger, M.A., Cao, J., Ojima, I., and Sampson, N.S., 2017. Targeting the hemopexin-like domain of latent matrix metalloproteinase-9 (proMMP-9) with a small molecule inhibitor prevents the formation of focal adhesion junctions. ACS Chem. Biol., 12 (11), 2788–2803. Ayuk, S.M., Abrahamse, H., and Houreld, N.N., 2016. The role of matrix metalloproteinases in diabetic wound healing in relation to photobiomodulation. J. Diabetes Res., 2016 (2897656), 1-9. Cavasotto, C.N. and Phatak, S.S., 2009. Homology modeling in drug discovery: Current trends and applications. Drug Discov. Today, 14 (13-14), 676-683. Delozier, T.C., Kissling, G.E., Coulter, S.J., Dai, D., Foley, J.F., Alyce, J., Murphy, E., Steenbergen, C., Zeldin, D.C., and Goldstein, J.A., 2011. Small molecule anti- cancer compounds selectively target the hemopexin domain of matrix metalloproteinase-9 (MMP-9). Cancer Res., 71 (14), 4977–4988. Dufour, A., Cao, J., Kuscu, C., Dufour, A., Zucker, S., and Sampson, N.S., 2010. Role of matrix metalloproteinase-9 dimers in cell migration. J. Biol. Chem., 285 (46), 35944–35956. Ezhilarasan, R., Jadhav, U., Mohanam, I., Rao, J.S., Gujrati, M., and Mohanam, S., 2009. The hemopexin domain of MMP-9 inhibits angiogenesis and retards the growth of intracranial glioblastoma xenograft in nude mice. Int. J. Cancer, 124 (2), 306–315. Hariono, M., Yuliani, S.H., Istyastono, E.P., Riswanto, F.D.O., Adhipandito, C.F., 2018. Matrix metalloproteinase 9 (MMP9) in wound healing of diabetic foot ulcer: Molecular target and structure-based drug design. Wound Medicine, 22 (September 2018), 1–13. Jones, I., Nguyen, T.T., Peng, Z., and Chang, M., 2019. Targeting MMP-9 in diabetic foot ulcers. Pharmaceuticals, 12 (2), 79. Krieger, E., Koraimann, G., Vriend, G., 2002. Increasing the precision of comparative models with YASARA NOVA - A self-parameterizing force field. Proteins, 47 (3), 393–402. Krieger, E., Vriend, G., 2015. New ways to boost molecular dynamics simulations. J. Comput. Chem., 36 (13), 996–1007. Liu, K., Watanabe, E., Kokubo, H., 2017. Exploring the stability of ligand binding modes to proteins by molecular dynamics simulations. J. Comput. Aided Mol. Des., 31, 201–211. Martí-Renom, M.A., Stuart, A.C., Roberto, S., Melo, F., and Andrej, S., 2000. Comparative protein structure modeling of genes and genomes. Ann. Rev. Biophys. Biomol. Struct., 29, 291–325. Prasasty, V.D., Istyastono, E.P., 2019. Structure-based design and molecular dynamics simulations of pentapeptide AEYTR as a potential acetylcholinesterase inhibitor. Indones. J. Chem., in press, 1–7. https://doi.org/10.22146/ijc.46329 Roeb, E., Schleinkofer, K., Kernebeck, T., Pötsch, S., Jansen, B., Behrmann, I., Matern, S., and Grötzinger, J., 2002. The matrix metalloproteinase 9 (MMP-9) hemopexin domain is a novel gelatin binding domain and acts as an antagonist. J. Biol. Chem., 277 (52), 50326–50332.

25 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Table 1. Quality of the final model of the full human MMP9. No Quality Criteria*) Value Reference Value (Krieger et al., 2002) 1 Correctness of enantiomers 0.000 > 0 is bad 2 Absence of cis-peptide bonds 2.000 (at the N- > 0 is bad, but cis- terminus of PRO A prolines are OK 553 and of PRO A 598) 3 Adherence to naming 0.000 > 0 is bad conventions 4 Normality of bond lengths 0.700 < -2 is poor, < -4 is bad 5 Normality of bond angles 0.014 < -2 is poor, < -4 is bad 6 Normality of dihedral angles 0.057 < -2 is poor, < -4 is bad 7 Normality of planar groups 0.573 < -2 is poor, < -4 is bad *)The criteria of “Normality of water locations” was not checked since the model does not contain any water molecule.

Figure 1. Visualization of the catalytic site of the homology model (A) and PDB:4H3X (B). The figures were built using YASARA Structure in default mode without shadow. The enzyme, the amino acid residues, the ligands, and zinc atom are depicted as ribbon style, stick style, ball-and-stick stylem and ball, respectively. Only important residues are shown for the shake of clarity.

26 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Figure 2. The RMSD values of the MMP9 backbone atoms during MD simulations (A), and the deviation of the RMSD in every 5 ns from the starting point (B).

Figure 3. The G values of MMP9-CC27 during the production run of the MD simulations.

27 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

8.2 md_run_20ns_ss10.mcr # YASARA MACRO # TOPIC: 3. Molecular Dynamics # TITLE: Running an accurate molecular dynamics simulation in water with slow, normal or fast speed # REQUIRES: Dynamics # AUTHOR: Elmar Krieger # LICENSE: GPL # DESCRIPTION: This macro sets up and runs a simulation. It can also continue a simulation that got interrupted. # Parameter section - adjust as needed, but NOTE that some changes only take # effect if you start an entirely new simulation, not if you continue an existing one. # ======# The structure to simulate must be present with a .pdb or .sce extension. # If a .sce (=YASARA scene) file is present, the cell must have been added. # You can either set the target structure by clicking on Options > Macro > Set target, # by providing it as command line argument (see docs at Essentials > The command line), # or by uncommenting the line below and specifying it directly. #MacroTarget = 'c:\MyProject\1crn' # pH at which the simulation should be run, by default physiological pH 7.4. # To simulate in vacuo ('gas phase'), use ph='None' and pressurectrl='Off' further below, # this will set functional groups to their neutral state found in vacuo. ph=7.4 # The ion concentration as a mass fraction, here we use 0.9% NaCl (physiological solution) ions='Na,Cl,0.9' # Simulation temperature, which also serves as the random number seed (see Temp command). # If you increase the temperature significantly by X%, you also need to reduce the timestep by X % # by changing the 'tslist' that matches your speed below. If you run at a temperature that differs # from 298K, you need to adapt the pressure control below, look in the PressureCtrl documentation. temperature='298K' # Water density, should match the temperature set above. If you do not know the proper # density, make sure to enable 'Manometer1D' pressure control below. density=0.997 # Pressure control mode # Default: Rescale the cell such that residues named HOH reach the density specified above. # This mode only makes sense if the solute is fully embedded in solvent, not for crystals or # membranes. If your solvent is not water, create a single solvent molecule, set the property # value of all atoms to the solvent density (Edit > Number > Property value), save it as # YourStructure_solvent.yob, and enable the Manometer1D pressure control below. If your # solvent is a mixture of several molecules please check the docs of the FillCellObj command. pressurectrl='SolventProbe,Name=HOH,Density=(density)' # Alternative: Uncomment below to calculate the pressure from the virial and # uniformly rescale the cell to reach a pressure of 1 bar. Use this method if you # do not know the correct density and your solute is still fully embedded in solvent. #pressurectrl='Manometer1D,Pressure=1' # Alternative: Uncomment below to calculate the pressure from the virial and

28 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# rescale the cell independently along each axis to reach a pressure of 1 bar. # Use this method if the solute spans the entire cell (protein crystals...). # See the PressureCtrl docs for other options, e.g. for membranes. #pressurectrl='Manometer3D,Pressure=1' # Alternative: Do not control pressure, use NVT ensemble. Also use this for simulations in vacuo. #pressurectrl='off' # The format used to save the trajectories: YASARA 'sim', GROMACS 'xtc' or AMBER 'mdcrd'. # If you don't pick 'sim', a single *.sim restart file will be saved too, since the other # two formats don't contain velocities, only positions. format='sim' # Duration of the simulation, alternatively use e.g. duration=5000 to simulate for 5000 picoseconds duration=20000 # Extension of the cell on each side of the protein # '10' means that the cell will be 20 A larger than the protein. # Cell settings only apply if you do not provide your own cell in a *.sce file. extension=10 # Shape of the simulation cell: 'Cube', 'Cuboid' or 'Dodecahedron'. # For long simulations that allow the solute to rotate freely, a dodecahedral cell # is the fastest (watch the help movie 3.6 for details). For short simulations # of elongated, non-spherical solutes, a rectangular 'Cuboid' box may be faster. # Note that a dodecahedral cell needs much more memory than a cuboid cell, especially # on GPUs. If you use the 32-bit version of YASARA, better stick to the cuboid cell. # Note that Poisson-Boltzmann calculations (MM/PBSA) don't work in dodecahedral cells. cellshape='Cube' # Forcefield to use (these are all YASARA commands, so no '=' used) ForceField AMBER14 # Cutoff Cutoff 8 # Cell boundary Boundary periodic # Use longrange coulomb forces (particle-mesh Ewald) Longrange Coulomb # The simulation speed, either 'slow' (2*1 fs timestep), 'normal' (2*1.25 fs timestep) or # 'fast' (maximize performance with 2*2.5 fs timestep and constraints) # Do not use 'fast' if you simulate incorrect molecules (that would not be stable in reality) # 'if !count speed' simply checks if variable 'speed' as been defined previously (e.g. by the macro md_runfast) if !count speed speed='normal' # The save interval for snapshots. Normally you don't need more than 500-1000 snapshots # of your simulation, since that's the resolution limit of a typical figure in a journal. if speed=='fast' # Fast speed, save simulation snapshots every 250000 fs, i.e. 250 ps. saveinterval=250000 else # Slow or normal speed, save simulation snapshots every 100000 fs, i.e. 100 ps. saveinterval=10000 # Keep the solute from diffusing around and crossing periodic boundaries. Disable that for

29 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

simulations of crystals. CorrectDrift On # Change the random seed to see how much your results change, or click Options > Random seed #RandomSeed 1234567 # Normally no change required below this point # ======RequireVersion 15.1.1 # Treat all simulation warnings as errors that stop the macro WarnIsError On # Do we have a target? if MacroTarget=='' RaiseError "This macro requires a target. Either edit the macro file or click Options > Macro > Set target to choose a target structure" # When run as a macro in text mode, add configuration details to log file if runWithMacro and ConsoleMode Processors Clear Console off # Do we already have a scene with water or other solvent? waterscene = FileSize (MacroTarget)_water.sce solventscene = FileSize (MacroTarget)_solvent.sce if waterscene LoadSce (MacroTarget)_water elif solventscene LoadSce (MacroTarget)_solvent else # No scene with solvent present yet # Do we have a scene at all? scene = FileSize (MacroTarget).sce if scene LoadSce (MacroTarget) # Verify that the cell is present simcell = CountObj SimCell if !simcell RaiseError 'If you provide a scene, it must contain a simulation cell, but none was found in (MacroTarget).sce' else # No scene present, assume it's a PDB or YOB file for type in 'yob','pdb' size = FileSize (MacroTarget).(type) if size break if !size RaiseError 'Initial structure not found, expected (MacroTarget).pdb or .yob. Make sure to create a project directory and place the structure there' # Load structure Load(type) (MacroTarget) # In case user accidentally provided a YOb file with selected atoms Unselect

30 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# Align object with major axes to minimize cell size NiceOriAll # Delete long peptide bonds that bridge gaps in the structure, which tells CleanAll to add ACE/NME # capping groups (the structure of the missing residues could also be predicted, see LoadPDB docs). DelBond N,C,LenMin=5 # Delete waters that are not involved in metal binding, to help the calculation of binding energies DelRes Water with 0 arrows to all # Prepare the structure for simulation at the chosen pH CleanAll pH (ph) if Structure # Optimize the hydrogen-bonding network (more stable trajectories) OptHydAll # Create the simulation cell Boundary periodic Cell Auto,Extension=(extension),Shape=(cellshape) SaveSce (MacroTarget) bnd = Boundary if bnd=='Wall' # The user supplied a cell with wall boundaries, we cannot use Experiment Neutralization ShowMessage "The simulation cell you created has wall boundaries, which reduces the simulation accuracy due to boundary effects..." Wait ContinueButton ShowMessage "You can click 'Simulation > Cell boundaries > Periodic' now to correct the problem, or 'Continue' immediately..." Wait ContinueButton if ph!='None' # Add water bnd = Boundary if bnd=='Wall' # User really wants wall boundaries FillCellWater else Experiment Neutralization WaterDensity (density) pH (ph) Ions (ions) pKaFile (MacroTarget).pka Speed Fast Experiment On Wait ExpEnd # Do we have a solvent molecule with density stored as its property value? filename = '(MacroTarget)_solvent.yob' solventfound = FileSize (filename) if solventfound # Get rid of water molecules again, only need the counter ions to neutralize cell obj2 = ListObj Water

31 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

DelRes Water # Load the solvent molecule and verify that the user set its density obj1 = LoadYOb (MacroTarget)_solvent dens = PropObj (obj1) if !dens RaiseError 'Please load the solvent molecule (filename), click Edit > Number > Property value > Obj X, choose the solvent density, then save the file again' CleanObj (obj1) # Fill the cell with solvent molecules FillCellObj (obj1),Density=(dens),BumpSum=4,RandomOri=Yes # Join the solvent box to the counter ions and rename the object to 'Solvent' if obj1!=obj2 JoinObj (obj) NameObj (obj2),Solvent SaveSce (MacroTarget)_solvent else # Save scene with water SaveSce (MacroTarget)_water # Choose timestep and activate constraints if speed=='fast' # Fast simulation speed # Constrain bonds to hydrogens FixBond all,Element H # Constrain certain bond angles involving hydrogens FixHydAngle all # Choose a multiple timestep of 2*2.5 = 5 fs # For structures with severe errors, 2*2 = 4 fs is safer (tslist=2,2) tslist=2,2.5 else # Slow or normal simulation speed # Remove any constraints FreeBond all,all FreeAngle all,all,all if speed=='slow' # Choose a multiple timestep of 2*1.00 = 2.0 fs tslist=2,1.0 else # Choose a multiple timestep of 2*1.25 = 2.5 fs tslist=2,1.25 # With this timestep, atoms may get too fast in very rare circumstances (only # in a specific protein, only once every few nanoseconds). The command below # slows down atoms moving faster than 13000 m/s. Such a 'random collision' every # few nanoseconds has no more impact than the random number seed. You can comment # it out for most proteins, or use the smaller timestep with speed 'slow' above: Brake 13000 # Update the pairlist every 10 (CPU) or 25 (GPU) steps _,_,gpu = Processors if gpu SimSteps Screen=25,Pairlist=25

32 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

else SimSteps Screen=10,Pairlist=10 # Calculate total timestep, we want a float, so tslist2 is on the left side ts=tslist2*tslist1 # Snapshots are saved every 'savesteps' savesteps=saveinterval/ts # Set final simulation parameters TimeStep (tslist) Temp (temperature) # Check if user accidentally fixed some atoms fixedlist() = ListAtom fixed if count fixedlist if ConsoleMode FreeAll else MarkAtom (fixedlist1) ShowMessage '(count fixedlist) atoms are currently fixed. This will yield unrealistic trajectories, normally distances should be restrained instead, see user manual at Essentials > The 10 magic words > Bond. Click Simulation > Free > All if you agree...' Wait ContinueButton # Here you can make changes just before force field parameters are assigned and the simulation starts # Uncomment to completely fix some atoms #FixAtom Backbone Obj 1 # Uncomment to remove some dative bonds to metal ions #HideArrowRes His 127 Mol A # Alread a snapshot/trajectory present? i=00000 if format=='sim' trajectfilename='(MacroTarget)(i).sim' else restartfilename='(MacroTarget).sim' trajectfilename='(MacroTarget).(format)' # Backwards compatibility: Starting with YASARA version 12.8.1, XTC trajectories no longer contain a number in the filename old = FileSize (MacroTarget)(i).xtc if old RenameFile (MacroTarget)(i).xtc,(trajectfilename) running = FileSize (trajectfilename) if not running # Perform energy minimization Experiment Minimization Experiment On Wait ExpEnd # And now start the real simulation Sim On else # Simulation has been running before ShowMessage "Simulation has been running before, loading last snapshot..." # Switch console off to load the snapshots quickly

33 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Console Off if format=='sim' # Find and load the last SIM snapshot do i=i+1 found = FileSize (MacroTarget)(i).sim while found i=i-1 LoadSim (MacroTarget)(i) # Adjust savesteps to save snapshots in the same interval as previously if i>0 t = Time savesteps=0+t/(ts*i) else # Do we have a restart file with atom velocities? found = FileSize (restartfilename) if found # Yes. First determine the savesteps if possible by loading the 2nd XTC/MDCrd snapshot last,t = Load(format) (trajectfilename),1 if !last last,t = Load(format) (trajectfilename),2 savesteps=0+t/ts # Then load the restart file LoadSim (restartfilename) else # No restart file found, load the last snapshot in the XTC/MDCrd trajectory do i=i+1 last,t = Load(format) (trajectfilename),(i) ShowMessage 'Searching (format) trajectory for last snapshot, showing snapshot (i) at (0+t) fs' Sim Pause Wait 1 while !last savesteps=0+t/(ts*(i-1)) Sim Continue HideMessage # Set temperature and pressure control TempCtrl Rescale PressureCtrl (pressurectrl) # Now the simulation is running, here you can make changes to the force field # Uncomment to add distance constraints #AddSpring O Res Lys 80,H Res Glu 84,Len=1.9 # Uncomment to modify charges, e.g. let Trp 12 in Mol A lose an electron: #ChargeRes Trp 12 Mol A,+1 # And finally, make sure that future snapshots are saved Save(format) (trajectfilename),(savesteps) if format!='sim' # We additionally save a single SIM restart file with velocities SaveSim (restartfilename),(savesteps),Number=no

34 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

if duration=='forever' Console On if ConsoleMode # In the console, we need to wait forever to avoid a prompt for user input Wait forever else Console Off measurements=0 # Wait for given number of picoseconds do # Tabulate properties you want to monitor during the simulation, # e.g. the speeds and velocity vectors of atoms 4, 5 and 7: # Tabulate SpeedAtom 4 5 7 # Note that you can only read properties after each pairlist update. # For maximum frequency, use 'Wait 1' and reduce the numbers at 'SimSteps' above. Wait 10 measurements=measurements+1 t = Time while t<1000.*duration+1 # Did we create a table with measurements? vallist() = Tab Default if count vallist # Yes, save the table SaveTab default,(MacroTarget)_duringsim,Format=Text,Columns=(count vallist/measurements),Header='Insert your own header here' Sim Off # Exit YASARA if this macro was provided as command line argument in console mode if runWithMacro and ConsoleMode Exit

35 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

8.3 md_analyze.mcr # YASARA MACRO # TOPIC: 3. Molecular Dynamics # TITLE: Analyzing a molecular dynamics trajectory # REQUIRES: Dynamics # AUTHOR: Elmar Krieger and Kornel Ozvoldik # LICENSE: GPL # DESCRIPTION: This macro analyzes a simulation and creates a detailed report with a large number of plots, e.g. energies, RMSDs, hydrogen bonds. It also tries to identify the main ligand and provides ligand-specific data. All results are additionally written to a simple text table, which can be imported into your favorite spreadsheet program. Your own analysis can often be added with just one line of code, search for 'Example:'. RequireVersion 18.11.21 # MD report initialization parameters and flags # ======# The structure to analyze must be present with a .sce extension. # You can either set the target structure by clicking on Options > Macro > Set target, # by providing it as command line argument (see docs at Essentials > The command line), # or by uncommenting the line below (=remove the '#') and specifying it directly. #MacroTarget='c:\MyProject\1crn' # Forcefield to use for analysis, should be the same as the one used to run the simulation ForceField AMBER14,SetPar=Yes # Default #ForceField YASARA2,SetPar=Yes # Example: Add a quality Z-score in YASARA Structure # Number of the solute object whose RMSDs from the starting conformation will be calculated # If the protein is an oligomer, check the documentation of the 'Sup' command at 'analyzing a simulation' to avoid pitfalls. soluteobj=1 # Flag to convert the entire trajectory to PDB format (solute object only) pdbsaved=0 # The B-factors calculated from the root-mean-square fluctuations can be too large to fit them # into the PDB file's B-factor column. Replace e.g. 1.0 with 0.1 to scale them down to 10% bfactorscale=1.0 # Trajectory block to be analyzed. The 'if not count block' skips this part if this macro is included # by the md_analyzeblock macro, that analyzes the trajectory in blocks (see 'Analyzing a trajectory' in the docs). if not count block # First snapshot to be analyzed, increase number to ignore an equilibration period. firstsnapshot=0 # Number of snapshots to be analyzed snapshots='all' # Set snapshotstep > 1 if you don't want to analyze every snapshot. # (e.g. snapshotstep=10 means that only every 10th snapshot will be analyzed) snapshotstep=1 # All snapshots will be superposed on this reference snapshot to calculate RMSDs etc. # The starting structure is snapshot 0. Having run the macro once, you can also change # refsnapshot=X to refsnapshot='average' to superpose on the time average structure. refsnapshot=0 ## In case you want to use commands like GroupCenter inside a periodic cell, you will # get a warning about unexpected results due to periodic boundary effects. In this

36 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# case set 'central' to an atom in the middle of your region of interest. This atom will # be kept at the center of the cell, which will hopefully also keep your region of interest # away from the cell boundaries. Then you can safely ignore the warning. central=0 # In case you want to cluster the trajectory, set the minimum heavy-atom RMSD between different # clusters. A representative structure for each cluster will be saved as YourProtein_cluster*.yob, # all representative structures will be at least 'rmsdmin' Angstrom apart. rmsdmin=0.0 # Width of figures in pixels figurewidth=1024 # Flag to save high resolution versions of plots in 4:3 format hiresplotted=1 # Set maximum number of table rows that will be shown in the report tabrowsmax=10 # Default: Show only first 10 rows of each table #tabrowsmax='all' # Example: Show the complete tables # Selection of atoms to include for 'Calpha' RMSD calculation # (includes C1* of nucleic acids to consider DNA/RNA) casel='CA Protein or C1* NucAcid' # Ligand atom selection for RMSD analysis ligandsel='' # Default: Identify the ligand automatically #ligandsel='Res ATP 501 Mol A' # Example: Select residue ATP 501 in molecule A as ligand # Atom selection to list individual hydrogen bonds hbosel='' # Default: Choose ligand, i.e. list ligand hydrogen bonds #hbosel='Res Arg 17 Mol A' # Example: List H-bonds of residue Arg 17 in molecule A # Set minimum and/or maximum residue number which will be included in the residue RMSF and residue secondary strucure type plot. # Default: resnummin='' resnummax='', include all residues # Example: resnummin='' resnummax=100, include all residues up to residue number 100 # Example: resnummin=50 resnummax=100, include residue numbers in the range from 50 to 100 resnummin='' resnummax='' # Selection to calculate and visualize the dynamic cross-correlation matrix (DCCM) dccmsel='Atom CA Protein or C1* NucAcid' # Default: Calculate the DCCM for protein Calpha atoms or nucleic acid C1* atoms #dccmsel='Res Protein' # Example: Calculate the DCCM for protein residue centers #dccmsel='' # Example: Don't calculate the DCCM # Set the color of the minimum and maximum value of the DCCM visualization. dccmcol()='blue','yellow' # Save a file *_dccm.yob, which visualizes the DCCM by joining atoms with # red (correlation>=dccmcut) and blue (correlation<=-dccmcut) lines. dccmcut=0.9 # Selection to calculate the radial distribution function (RDF) # Syntax: rdfsellist()='Atom selection 1','Atom selection 2',Bins,BinWidth # Note that you may have to save more snapshots than usually to avoid problems with sparse # data and noisy RDF results. # Default: Don't calculate an RDF rdfsellist()=''

37 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# Example: Calculate the RDF of water in 40 bins, each 0.25 A wide (thus up to 10 A). #rdfsellist()='O Res HOH','O Res HOH',40,0.25 # Example: Calculate the RDF between two specific atoms in 20 bins, each 0.5 A wide #rdfsellist()='CG Res Asp 120','ND1 Res His 200',20,0.5 # Definition of analyses to perform # ======# # Please see the user manual at Recipes > Run a molecular dynamics simulation > Analyzing a trajectory # (scroll to the end) for detailed instructions how to add your own analyses. # Define the analyses to perform inside the simulation cell, considering periodic boundaries # ======def AnalyzeInsideCell # Plot simulation cell lengths celllist1,celllist2,celllist3=Cell Plot celllist,'Simulation cell lengths','Length in Angstrom','CellLengthX CellLengthY CellLengthZ' # Plot the total energy... elist()=EnergyAll All Plot sum elist,'Total potential energy of the system','Energy in (EnergyUnit)','TotalEnergy' # ...and the individual components Plot elist,'Potential energy components','Energy in (EnergyUnit)','Bond Angle Dihedral Planarity Coulomb VdW Packing1D Packing3D' # Plot the VdW, molecular and solvent accessible surfaces of the solute Plot "SurfObj Solute",'Surface areas of the solute','Surface areas in Angstrom^2','SurfVdW SurfMol SurfAcc' # Plot the number of hydrogen bonds inside the solute # We need to divide by two since bonds are listed in both directions hbolist()=ListHBoAtom Obj Solute,Obj Solute Plot count hbolist/2,'Number of hydrogen bonds in the solute','Hydrogen bonds','SoluteHBonds' # Plot the number of hydrogen bonds between solute and solvent hbolist()=ListHBoAtom Obj Solute,Obj Solvent Plot count hbolist,'Number of hydrogen bonds between solute and solvent','Hydrogen bonds','SltSlvHBonds' # Tabulate all hydrogen bonds made by the select residue (Default: ligand). # We first need to estimate the maximum number of H-bonds so that the table can be padded accordingly. # For every H-bond, the table then contains atom names, energy and hydrogen-acceptor distance. global hbosel,ligandsel if hbosel=='' hbosel=ligandsel if hbosel!='' acceptors=CountAtom Element N O S P and (hbosel) donors=CountAtom Element H with bond to Element N O S P and (hbosel) hbondsmax=acceptors*2+donors hbolist()=ListHBoAtom (hbosel),!Water,Results=6

38 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

hbonds=count hbolist/6 hboname='' for j=1 to hbondsmax hboname=hboname+'HB(j)Atm1 HB(j)Atm2 HB(j)E HB(j)D ' if j<=hbonds # Get data of atom 1 and atom 2. for k=0 to 1 hboresultlist(4*j-3+k)=ListAtom (hbolist(j*6- 5+k)),Format='ATOMNAME.RESNAME1RESNUM.MOLNAME' # Get energy and distance. hboresultlist(4*j-1)=hbolist(j*6-3) hboresultlist(4*j)=hbolist(j*6) else # If no bond then fill cells with '-' to facilitate parsing. for k=1 to 4 hboresultlist(4*j-4+k)='-' if hbondsmax>0 # Write data to table in report. WriteTable hboresultlist,'Hydrogen bonds made by (hbosel)','(hboname)' else #If no possible bonds then fill single cell with "None". Hint to possibly incorrect selection. WriteTable 'None','Hydrogen bonds made by (hbosel)','HB1Atm1'

# Plot the secondary structure content # This should be the last function in AnalyzeInsideCell to match with the following protein residue secondary structure plot. proteins=CountMol Protein if proteins Plot "SecStr",'Protein secondary structure content','Secondary structure fractions in percent','Helix Sheet Turn Coil Helix310 HelixPi'

# The following examples provide a few hints for other things to analyze while # the simulation is active (i.e. considering periodic boundaries). # Just delete the '#' character to uncomment the command(s) of each example.

# Example: Plot the distance between the carboxyl group of Glu 123 (Cdelta) in molecule/chain A # and the guanidinium group of Arg 345 (Czeta) in molecule/chain B: #Plot "Distance CD Res Glu 123 Mol A, CZ Res Arg 345 Mol B",'Distance between Glu 123 (Cdelta) and Arg 345 (Czeta)','Distance','DGLUARG' # Example: Plot the angle between three Calpha atoms: #Plot "Angle CA Res Glu 10, CA Res Asp 30, CA Res Lys 40",'Angle between three Calpha atoms','Angle','Phi' # Example: Plot the number of salt-bridges involving Lys,Arg and Asp,Glu #lysbridges=CountRes Lys Atom NZ with distance<4 from Asp Glu Atom OD? OE? #argbridges=CountRes Arg Atom NE NH? with distance<3.5 from Asp Glu Atom OD? OE? #Plot (lysbridges+argbridges),'Number of salt-bridges involving Lys,Arg and Asp,Glu','Salt- bridges','Bridges' # Example: Plot the number of residues involved in hydrophobic interactions with Phe 13 #intlist()=ListIntRes Phe 13,all,Type=Hydrophobic,Exclude=5

39 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

#Plot count intlist,'Residues in hydrophobic interactions with Phe 13','Interactions','IAResPhe13' # Example: Plot the potential energy of residue Glu 123: #Plot "EnergyRes Glu 123",'Potential energy of residue Glu 123','Energy','EpotGLU123' # Example: Plot the solvent accessible surface areas of methionine sulfur atoms to predict their # susceptibility for oxidation. Add entire solute to surface environment for partial surface calculation. #AddEnvObj Solute #reslist()=ListRes Met Obj Solute,Format=RESNAME1RESNUM #Plot "SurfAtom SD Res Met Obj Solute,Type=Accessible,Unit=Atom",'SASA of Met S-delta atoms','SASA in A^2','(join reslist)' # Example: Tabulate the distance of every protein residue to the common center of all proteins #solcen()=GroupCenter Protein Obj Solute #residlist()=ListRes Protein Obj Solute #resnamelist()=ListRes Protein Obj Solute,Format='RESNAME1RESNUM.MOLNAME' #for i=1 to count residlist # rescen=GroupCenter (residlist(i)) # dis(i)=norm (solcen-rescen) #WriteTable (dis),'Distance of protein residues to the solute center','(join resnamelist)' # Define the analyses to perform outside the simulation cell, without periodic boundaries # ======def AnalyzeOutsideCell global fof

# If the force field is YASARA2, plot the model quality if fof=='YASARA2' for checktype in 'dihedrals','packing1d','packing3d' zscore(checktype)=CheckObj Solute,(checktype) zscore=zscoredihedrals*0.145+zscorepacking1d*0.390+zscorepacking3d*0.465 Plot zscore,'Structure quality of the solute','Quality Z-score','Quality'

# Plot the radius of gyration of the solute Plot "RadiusObj Solute,Center=Mass,Type=Gyration",'Radius of gyration of the solute','Radius in Angstrom','RadGyration'

# The following examples provide a few hints for other things to analyze while the # simulation is *not* active (periodic boundaries removed), but the starting structure # has not yet been added to the soup to perform RMSD calculations, # just delete the '#' character to uncomment the command(s) of each example.

# Example: Plot the angle between the transmembrane helix formed by residues 35-65 # in Mol A and the membrane normal (which is parallel to the Y-axis, since the membrane is # parallel to the XZ-plane) using formula angle=acos(dotpro(dir,Y)/(len(dir)*len(Y))) #_,_,_,dir()=GroupLine CA Protein Res 35-65 Mol A #Plot (acos dir2),'Angle between the transmembrane helix and the membrane normal','Angle','Phi' # Example: Plot the angle between the secondary structure elements formed by

40 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# residues 106-140 and 149-169 in Mol B, in the range -180 to 180 (see GroupAngle docs) #Plot "GroupAngle CA Protein Res 106-140 Mol B,CA Protein Res 149-169 Mol B,Range=360",'Angle between the secondary structure elements','Angle','Psi' # Example: Plot the distance between two centers of mass, e.g. the loop from # residue Ala 205 to Glu 210, and the ligand NAD: #cenA()=GroupCenter Res Ala 205 - Glu 210 Obj Solute, Type=Mass #cenB()=GroupCenter Res NAD Obj Solute, Type=Mass #Plot norm (cenA-cenB),'Distance between two centers of mass','Distance','DAB' # Example: Plot the Coulomb and VdW binding energies between the solute and the solvent # EBind=ESolute + ESolvent - ETotal. For ligand binding look at md_analyzebindenergy macro. #etotvdw,etotcoulomb=Energy VdW,Coulomb #RemoveObj Solvent #esoluvdw,esolucoulomb=Energy VdW,Coulomb #AddObj Solvent #RemoveObj Solute #esolvvdw,esolvcoulomb=Energy VdW,Coulomb #AddObj Solute #ebindlist()=(esoluvdw+esolvvdw-etotvdw),(esolucoulomb+esolvcoulomb-etotcoulomb) #Plot ebindlist,'Coulomb and VdW binding energies between the solute and the solvent','Binding Energy','CoulombEb VdWEb' # Define the analyses to perform with respect to the starting structure, also outside the simulation cell # ======# The reference structure (object SoluteRef) has been added to the soup now def AnalyzeChange global casel,ligandsel # Plot Calpha (or C1* of nucleic acids), backbone and all-atom RMSDs # Trick: If the solute contains neither CA nor backbone atoms, # we simply assign the SupAtom error code (=0) resultlist1=SupAtom (casel) and Obj Solute,(casel) and Obj SoluteRef resultlist2=SupAtom Backbone Obj Solute,Backbone Obj SoluteRef resultlist3=SupAtom Element !H Obj Solute,Element !H Obj SoluteRef Plot resultlist,'Solute RMSD from the starting structure','RMSD in Angstrom','RMSDCa RMSDBb RMSDAll' # Plot ligand movement RMSD after superposing on the receptor if ligandsel!='' if casel!='None' SupAtom (casel) and Obj Solute and not (ligandsel),(casel) and Obj SoluteRef and not (ligandsel) else SupAtom Element !H Obj Solute,Element !H Obj SoluteRef result=RMSDAtom (ligandsel) Obj Solute,(ligandsel) Obj SoluteRef Plot result,'Ligand movement RMSD after superposing on the receptor','RMSD in Angstrom','RMSDLigMove' # Plot ligand conformation RMSD after superposing on the ligand if ligandsel!='' result=SupAtom (ligandsel) Obj Solute,(ligandsel) Obj SoluteRef

41 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Plot result,'Ligand conformation RMSD after superposing on the ligand','RMSD in Angstrom','RMSDLigConf' # The following examples provide a few hints for other things to analyze while the # simulation is *not* active (i.e. things that can't be analyzed with periodic boundaries) # with respect to the starting structure, just delete the '#' character to uncomment # the command(s) of each example. # Example: Plot the backbone RMSD for residues 1-120: #Plot "SupAtom Backbone Res 1-120 Obj Solute,Backbone Res 1-120 Obj SoluteRef",'Backbone RMSD','RMSD','BBRMSD' # Example: Plot the sidechain heavy-atom RMSD: #Plot "SupAtom Sidechain Element !H Obj Solute,Sidechain Element !H Obj SoluteRef",'Sidechain heavy-atom RMSD','RMSD','SCHARMSD' # Example: Plot how far residue HP6 86 moved since the start (after superposing on Calphas) #SupAtom (casel) and Obj Solute,(casel) and Obj SoluteRef #Plot "GroupDistance Res HP6 86 Obj Solute,Res HP6 86 Obj SoluteRef",'Drift HP6 86','Distance','DHP6' # Optional text printed in the report in front of each analysis # ======# # Please see the user manual at Recipes > Run a molecular dynamics simulation > Analyzing a trajectory # (scroll to the end) for detailed instructions how to add your own texts. # Get the force field fof=ForceField # AnalyzeInsideCell: # Text paragraph for the 'Simulation cell lengths' plot CellLengthXText='Conformational changes of the simulated solute molecules lead to fluctuations in density. ' 'If the simulation box has a constant size, changes in density lead to changes in pressure. ' 'This is not realistic, because molecules normally "live" in a constant pressure environment. ' 'During the simulation the cell is therefore rescaled to maintain a constant cell ' 'pressure. Depending on the chosen pressure control mode, ' 'the three cell axes are either rescaled together [Manometer1D], partly together ' '[X- and Z-axes, Manometer2D, used for membrane simulations], independently [Manometer3D], ' 'or not at all [Off]. You can deduce the pressure control mode from the plot below.' # Text paragraph for the 'Total potential energy of the system' plot TotalEnergyText='The total potential energy of the system is plotted, ' 'according to the (fof) force field. If you ran the simulation ' 'with a different force field, you need to adapt the `ForceField` command ' 'at the top of this macro accordingly.\n\n' 'When the simulation is started from an energy-minimized "frozen" conformation, ' 'there is usually a sharp increase in energy during the first picoseconds, ' 'since the added kinetic energy is partly stored as potential energy. ' 'Also on a larger time-scale, the potential energy will often not decrease. ' 'A common reason are counter ions. These are initially placed at the '

42 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

'positions with the lowest potential energy, usually close to charged solute groups, ' 'from where they detach to gain entropy, but also potential energy. ' # Text function for the 'Potential energy components' plot def PrintBondInfo global fof text='The following individual components of the total potential energy are plotted: ' 'bond energies [Bond], bond angle energies [Angle], dihedral angle energies [Dihedral], ' 'planarity or improper dihedral energies [Planarity], Van der Waals energies [VdW]' if fof=='YASARA2' text=text+', electrostatic energies [Coulomb], 1D packing energies [Packing1D] and 3D packing energies [Packing3D]. ' else text=text+' and electrostatic energies [Coulomb]. ' text=text+'Force field energies help to judge the structural quality of a protein: ' 'distortions of local covalent geometry can be found by looking at the bond, angle and planarity energies. ' 'Unrealistically close contacts [bumps] lead to a high Van der Waals energy, ' 'just like a large number of hydrogen bonds [since they pull the atoms closer than ' 'their normal Van der Waals contact distance]. The Coulomb energy is the least ' 'informative, because it strongly depends on the amino acid composition ' '[e.g. proteins with a net charge have a higher Coulomb energy].' WriteReport Paragraph,'(text)'

# Text paragraph for the 'Protein secondary structure' plot HelixText='The total percentages of alpha helices, beta sheets, turns, coils, 3-10 helices and pi helices are ' 'calculated and plotted. For clarification, a turn is simply a stretch of four residues that are not ' 'part of other secondary structure elements and form a hydrogen bond between the O of the first and ' 'the NH of the last residue. A coil is anything that does not fit into the other categories. ' 'Note that pi-helices [helices with hydrogen bonds between residues N and N+5] are rather unstable and ' 'thus do not normally occur in proteins, except for short bulges in alpha helices ' '[which are often the result of single residue insertions and prolines]. ' # Text paragraph for the 'Surface areas of the solute' plot SurfVdWText='The Van der Waals [SurfVdW], molecular [SurfMol] and solvent accessible [SurfAcc] surface areas of the ' 'solute in A^2 are plotted. The difference between these surface types can be summarized as follows:\n\n' '`Van der Waals surface`: if you think of atoms as spheres with a given Van der Waals radius, ' 'then the Van der Waals surface consists of all the points on these spheres that are not inside another sphere. ' 'In practice, the Van der Waals surface is of limited use, because it can be found throughout a protein and ' 'does not tell much about the interaction with the solvent.\n\n' '`Molecular surface`: this is the Van der Waals surface from the viewpoint of a solvent molecule, '

43 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

'which is a much more useful concept. The water is assumed to be a sphere of a given radius ' '[also called the water probe], that rolls over the solute. ' 'Those parts of the Van der Waals surface that the water probe can touch are simply copied to the molecular surface ' '[and called the contact surface]. Clefts in the Van der Waals surface that are too narrow for the water probe to enter ' 'are replaced by the Van der Waals surface of the water probe itself [and called the reentrant surface]. ' 'So the molecular surface is a smooth composition of two Van der Waals surfaces: ' 'the one of the solute and the one of the solvent molecule while it traces the contours of the solute. ' 'Other common names for the molecular surface are solvent excluded surface or Connolly surface.\n\n' '`Solvent accessible surface`: this surface consists of all the points that the center of the water probe ' '[i.e. the nucleus of the oxygen atom in the water molecule] can reach while rolling over the solute. ' 'The shortest possible distance between the water oxygen nucleus and a solute atom is simply ' 'the sum of the Van der Waals radii of the solute atom and the water probe.'

# Text function for the 'Number of hydrogen bonds in solute' plot def PrintSoluteHBondsInfo WriteReport Paragraph, 'The number of hydrogen bonds inside the solute is plotted below. ' 'One hydrogen bond per hydrogen atom is assigned at most, ' 'picking the better one if two acceptors are available.' 'The following formula yields the bond energy in [kJ/mol] ' 'as a function of the Hydrogen-Acceptor distance in [A] and two scaling factors:' WriteReport Image,Filename=(YASARADir)/doc/ListHBoAtomResMolObj0.png,Style=Center,Name="form ula_energyhbo0" WriteReport Paragraph, 'The first scaling factor depends on the angle formed by Donor-Hydrogen-Acceptor:' WriteReport Image,Filename=(YASARADir)/doc/ListHBoAtomResMolObj1.png,Style=Center,Name="form ula_energyhbo1" WriteReport Paragraph, 'The second scaling factor is derived from the angle formed by Hydrogen-Acceptor-X, ' 'where X is the atom covalently bound to the acceptor. If X is a heavy atom:' WriteReport Image,Filename=(YASARADir)/doc/ListHBoAtomResMolObj2.png,Style=Center,Name="form ula_energyhbo2" WriteReport Paragraph, 'If X is a hydrogen, slightly smaller angles are allowed:' WriteReport Image,Filename=(YASARADir)/doc/ListHBoAtomResMolObj3.png,Style=Center,Name="form ula_energyhbo3" WriteReport Paragraph,

44 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

'A hydrogen bond is counted if the hydrogen bond energy obtained with this formula ' 'is better than 6.25 kJ/mol [or 1.5 kcal/mol], which is 25% of the optimum value 25 kJ/mol. '

# Text paragraph for the 'Number of hydrogen bonds between solute and solvent' plot SltSlvHBondsText='The plot shows the number of hydrogen bonds between solute and solvent. ' 'Together with the plot above, it is a good indicator for successful protein folding, ' 'indicated by a decreasing number of bonds with the solvent and a growing ' 'number of bonds within the solute.'

# Text function for the 'Hydrogen bonds made by (hbosel)' table def PrintHB1Atm1Info global hbosel,EnergyUnit # The 'caller3' keyword allows to access variables of the 3rd last calling function caller3 acceptors,donors,hbondsmax WriteReport Paragraph, 'The following table shows all hydrogen bonds made by (hbosel). ' 'With (acceptors) acceptors and (donors) donors, ' 'a total number of (hbondsmax) hydrogen bonds are possible - labeled HB1 to HB(hbondsmax).' 'The first atom of the bonding pair is labeled Atm1 and the second Atm2, respectively. ' 'The atom ID separates atom name, residue ID and molecule name with dots. A lower-case "h" ' 'indicates hetgroups. E and D are short for the hydrogen bonding energy in [(EnergyUnit)] ' 'and the distance between the bonding partners in [A]. ' 'To list other hydrogen bonds, edit the `hbosel` variable at the beginning of this macro.'

# AnalyzeOutsideCell:

# Text function for the 'Structure quality of the solute' plot def PrintQualityInfo WriteReport Paragraph, 'When validating a structure, one can use a gold standard of highest resolution reference ' 'structures to obtain estimates for the expected average energy and its standard deviation, ' 'and then calculate how many standard deviations the actual energy is away from the average, ' 'thereby obtaining a Z-score:' WriteReport Image,Filename=(YASARADir)/doc/CheckAtomResObjAll0.png,Style=Center,Name="formula _zscore" WriteReport Paragraph, 'In the formula above, `x` is the energy of the current structure, ' '`my` and `sigma` are the average value and the standard deviation ' 'of the energies in the gold standard population. ' 'Assuming that the gold standard population has a standard distribution, ' '95.4% of all proteins have Z-scores between -2 to +2. ' 'The others can be called outliers. ' 'Positive outliers are usually small perfect proteins like a single alpha helix, ' 'and negative outliers are proteins with serious errors.' MakeTab zscores,2,2 descriptionlist()='disgusting','terrible','bad','poor','satisfactory','good'

45 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

for i=-5 to 0 Tabulate '< (i)','(descriptionlist(i+6))' Tabulate '> 0','optimal' WriteReport Table,zscores,"Mapping between Z-score and human language.",.0f,InfoColumnName='Z-score',DataColumnName='Description'

# Text function for the 'Radius of gyration of the solute' plot def PrintRadGyrationInfo() WriteReport Paragraph, 'After determining the center of mass of the solute, the radius ' 'of gyration is calculated and plotted according to this formula:' WriteReport Image,Filename=(YASARADir)/doc/RadiusAtomResMolObjAll1.png,Style=Center,Name="for mula_gyrrad" WriteReport Paragraph, 'In this formula, `C` is the center of mass, and `Ri` is the position of atom `i` of `N`.'

# AnalyzeChange:

# Text function for the 'Solute RMSD from the starting structure' plot def PrintRMSDCaInfo global casel,calphas WriteReport Paragraph, 'The plot shows Calpha [RMSDCa], backbone [RMSDBb] and all-heavy atom [RMSDAll] RMSDs calculated ' 'according to this formula, where `Ri` is the vector linking the positions of atom `i` [of `N` atoms] ' 'in the reference snapshot and the current snapshot after optimal superposition: ' WriteReport Image,Filename=(YASARADir)/doc/RMSDAtomResMolObj0.png,Style=Center,Name="formul a_rmsd" if casel=='None' text='Less than three atoms matched the Calpha selection `(casel)`, therefore the Calpha RMSD plot ' 'graph is set to flat zero because at least three atoms are needed for structure superposition. ' else text='The selection for the Calpha RMSD calculation is `(casel)`, this matched (calphas) atoms. ' if casel=='CA Protein or C1* NucAcid' text=text+'The Calpha selection thus includes the main backbone carbon C1* of nucleic acids, so ' 'the plot also shows a Calpha RMSD if you simulate just nucleic acids. In simulations ' 'of protein-DNA complexes, the Calpha RMSD therefore considers the DNA too. ' text=text+'To change the Calpha selection, edit the `casel` variable at the beginning of this macro.' WriteReport Paragraph,'(text)'

46 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# Text paragraph for the 'Ligand movement RMSD after superposing on the receptor' plot RMSDLigMoveText='The following plot shows the RMSD of the ligand heavy atoms ' 'over time, measured after superposing the receptor on its reference structure. ' 'This procedure delivers information about the movement of the ligand in its binding pocket.'

# Text paragraph for the 'Ligand conformation RMSD after superposing on the ligand' plot RMSDLigConfText='This plot displays the RMSD of the ligand atoms ' 'over time, measured after superposing on the reference structure of the ligand. ' 'The gained data summarize the conformational changes of the ligand. ' # Normally no change required below this point # ======UnselectAll # Do we have a target? if MacroTarget=='' RaiseError "This macro requires a target. Either edit the macro file or click Options > Macro > Set target to choose a target structure" Clear Console Off SurfPar Molecular=Numeric if not count block id='' # Load scene with water or other solvent waterscene=FileSize (MacroTarget)_water.sce solventscene=FileSize (MacroTarget)_solvent.sce if waterscene LoadSce (MacroTarget)_water elif solventscene LoadSce (MacroTarget)_solvent else RaiseError 'Could not find initial scene file (MacroTarget)_water.sce. You must run a simulation with the macro md_run first' # Avoid the old empty molecule names NameMol ' ','_' # Verify Calpha selection if casel=='' calphas=0 else calphas=CountAtom (casel) if calphas<3 # We cannot superpose 1 or 2 Calpha atoms casel='None' ShowMessage "Preparing analysis, please wait..." Wait 1 # Backwards compatibility: Starting with YASARA version 12.8.1, XTC trajectories no longer contain a number in the filename old=FileSize (MacroTarget)00000.xtc if old RenameFile (MacroTarget)00000.xtc,(MacroTarget).xtc

47 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# Determine trajectory format for format in 'xtc','mdcrd','sim' found=FileSize (MacroTarget).(format) if found break if refsnapshot=='average' # We superpose on the time average structure filename='(MacroTarget)_average.pdb' exists=FileSize (filename) if !exists RaiseError "No time-average structure has been calculated yet, cannot superpose onto it. Run the macro once with refsnapshot=0 (or any other number), then run again with refsnapshot='average'" refobj=LoadPDB (filename) SupObj (refobj),(soluteobj) else if refsnapshot # We superpose on a certain snapshot if format=='sim' LoadSim (MacroTarget)(00000+refsnapshot) else Load(format) (MacroTarget),(refsnapshot+1) # Duplicate the intial object for RMSD calculation refobj=DuplicateObj (soluteobj) RemoveObj (refobj)

# Choose object names to make user-defined analyses easier objs1=CountObj Solute objs2=CountObj SoluteRef if sum objs RaiseError "The object names 'Solute' and 'SoluteRef' are reserved for use by this macro, please rename your objects and try again" solutename = NameObj (soluteobj) NameObj (soluteobj),Solute NameObj (refobj),SoluteRef NameObj Water,Solvent if rmsdmin # Cluster the trajectory, get a list of representative structures clusterobjlist()=refobj # Check order of residue min/max user selection if resnummax6 atoms if any

48 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# Changes here also in md_runsteered. if ligandsel=='' mols=CountMol Obj Solute if mols>1 ligandreportstring='automatically by YASARA' reslist()=ListRes Hetgroup !Water Obj Solute with >0 bonds to all reslenmax=6 ligandname='' carbohydlist()='' for res in reslist reslen=CountAtom (res) resname=NameRes (res) carbons=CountAtom Element C (res) with bond to Element O if carbons>4 and resname not in carbohydlist carbohydlist(1+count carbohydlist)=resname if reslen>reslenmax reslenmax=reslen ligandname=resname if ligandname!='' if ligandname in carbohydlist # Ligand is a carbohydrate, treat all carbohydrate residues as ligands ligandname=join carbohydlist # Get ligand selection ligandsel='Res (ligandname)' else ligandatoms=CountAtom (ligandsel) if !ligandatoms RaiseError 'Ligand atom selection (ligandsel) did not match any atoms. If you want to select a residue add "Res" at the beginning of your selection.' ligandreportstring='by the user' ligandname=NameRes (ligandsel)

# Create the 'header' for saving the final table and make the ray-traced pictures for the report. # Do this already now to uncover errors in user-provided graph names # and to determine the total number of table columns header='____Time[ps]_____Time[ns]' # Calling all analysis functions with task='AddHeader' lets them just join their graph names to the header task='AddHeader' # The data for the Y-axis can be found in columns 3+, column 1/2 contains the simulation time in [ps]/[ns] ycolumn=3 # Define secondary structure types to analyze, must match the SecStr command secstrnamelist()= 'Helix','Sheet','Turn','Coil','Helix310','HelixPi' secstrletterlist()='H', 'E', 'T', 'C', 'G', 'I' # Make a letter->value dictionary and get default secondary structure colors for i=1 to count secstrletterlist secstrnum(secstrletterlist(i))=i secstrcolorlist(i)=ColorPar SecStr,(secstrnamelist(i)) # Get list or protein residues

49 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

secstrmollist()=ListMol Protein Obj Solute secstrmols=count secstrmollist secstrplotted=0 for i=zeroed secstrmols+1 to secstrmols # Get lists of residue ID and number for each protein molecule sel='Mol (secstrmollist(0+i)) SecStr (join secstrnamelist)' secstrresidlist(i)()=ListRes (sel) secstrresnumlist(i)()=ListRes (sel),'RESNUMWIC' # Delete list entries outside the selected range for j=count secstrresidlist(i) to 1 step -1 resnum=secstrresnumlist(i)(j) if (resnummin!='' and resnummin>resnum) or (resnummax!='' and resnummax0 secstrplotted=1 # First analyze inside the cell during a simulation Sim On AnalyzeInsideCell # Then outside the cell Sim Off AnalyzeOutsideCell # Then with respect to the reference structure AddObj SoluteRef AnalyzeChange RemoveObj SoluteRef if !count introwritten # Get ray-traced picture of the entire system ShowSystem SaveScreenshot 'sim','simulated system' # Get ray-traced picture of the solute ShowSolute Style Ribbon,Stick StickRadius 20 SaveScreenshot 'solute','solute object' if ligandsel!='' # Get ray-traced picture of the ligand ligandobj=DuplicateRes (ligandsel) SwitchAll off SwitchObj (ligandobj),on NiceOriObj (ligandobj) LabelAtom Obj (ligandobj) Element !H,Format=ATOMNAME,Height=.3 LabelAtom Obj (ligandobj) Element H,Format=ATOMNAME,Height=.2 ZoomObj (ligandobj),Steps=0 Style BallStick SaveScreenshot 'ligand','ligand' DelObj (ligandobj) # And show the entire system again ShowSystem

50 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# Now we know the total number of table columns columns=ycolumn-1 # Set tabrowsmax if tabrowsmax=='all' tabrowsmax=0 # Create secondary struture tables for i=zeroed secstrmols+1 to secstrmols if secstrresidues(i) # Tabulate the residue numbers MakeTab SecStrMol(i),2,(secstrresidues(i)+1) Tabulate -1,(secstrresnumlist(i)) # Create the big main table with the now known number of columns MakeTab Main,Dimensions=2,Columns=(columns) # Run the actual analysis task='Tabulate' i=00000+firstsnapshot emin=1e99 last=0 while !last and snapshots!=0 # Load next snapshot from SIM or XTC trajectory if format=='sim' # Set last to 1 if last snapshot loaded sim=FileSize (MacroTarget)(i+1).sim if not sim last=1 LoadSim (MacroTarget)(i) else last=Load(format) (MacroTarget),(i+1) Sim Pause if central # Keep a chosen atom at the center of the cell (Cell returns center as values 7-9) _,_,_,_,_,_,cen()=Cell pos()=PosAtom (central) MoveAtom all,(cen-pos) # Add time in picoseconds and nanoseconds to table simtime=Time ShowMessage 'Analyzing snapshot (0+i) at (0+(simtime/1000)) ps' Wait 1 Tabulate (simtime/1000),(simtime/1000000) # Perform analysis inside cell AnalyzeInsideCell if count rdfsellist==4 # Collect data for radial distribution function BinDistance (rdfsellist) # Tabulate residue secondary structure types for j=zeroed secstrmols+1 to secstrmols if secstrresidues(j) SelectTab SecStrMol(j) Tabulate (simtime/1000000) secstrlist()=SecStrRes (join secstrresidlist(j))

51 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

for k=1 to secstrresidues(j) Tabulate (secstrnum(secstrlist(k))) SelectTab Main # Prepare to save the minimum energy structure (ignoring solvent-solvent interactions) e=EnergyObj Solute # Stop simulation Sim Off if ermsdmin # Found a new cluster member, add to list obj = DuplicateObj Solute members=count clusterobjlist+1 clusterobjlist(members)=obj NameObj (obj),Cluster(members) # Remove cluster members from soup again RemoveObj (join clusterobjlist) else # No cluster analysis, remove initial structure again RemoveObj SoluteRef # Save last structure if last snapshot not already reached if !last

52 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

for j=2 to snapshotstep # Set last (last file) to 1 if last snapshot loaded if format=='sim' sim=FileSize (MacroTarget)(i+j).sim if not sim LoadSim (MacroTarget)(i+j-1) last=1 else # Set last (end of file) to 1 if last snapshot loaded last=Load(format) (MacroTarget),(i+j) if last # Save last structure Sim Off SaveSce (MacroTarget)_last SavePDB Solute,(MacroTarget)_last break # Next snapshot i=i+snapshotstep if snapshots!='all' snapshots=snapshots-1 if i==firstsnapshot RaiseError "This macro is meant to analyze a molecular dynamics trajectory created with md_run, but none was found in this directory" snapshots=(-firstsnapshot+i)/snapshotstep if rmsdmin # Save all cluster members members=count clusterobjlist AddObj (join clusterobjlist) for j=1 to members SaveYOb (clusterobjlist(j)),(MacroTarget)_cluster(zeroed members+j) DelObj (join clusterobjlist) # Decide if the timescale shown in plots and tables should be picoseconds or nanoseconds simtime=Time if simtime<1000000 xcolumn=1 plottimestring='picoseconds' tabtimestring='Time [ps]' simtime=0.00+simtime/1000 else xcolumn=2 plottimestring='nanoseconds' tabtimestring='Time [ns]' simtime=0.00+simtime/1000000

# Calculate time-average structure AveragePosAtom Obj Solute # Set B-factors, the dummy assignment '_ =' ensures that B-factors are not printed _ = RMSFAtom Obj Solute,Unit=BFactor if bfactorscale!=1.0 # Scale B-factors so that they fit into the PDB format

53 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

firstatm,lastatm=SpanAtom Obj Solute for i=firstatm to lastatm bf=BFactorAtom (i) BFactorAtom (i),(bf*bfactorscale) if refsnapshot!='average' # The time average structure has incorrect covalent geometry and should be energy minimized SavePDB Solute,(MacroTarget)_average # Additionally create an RMSF table, in case B-factors are too large for the PDB format MakeTab RMSF firstatm,lastatm=SpanAtom Obj Solute rmsflist()=RMSFAtom Obj Solute for i=firstatm to lastatm res=ListAtom (i),Format="'ATOMNAME','RESNAME','RESNUM','MOLNAME'" Tabulate '(i)',(res),(rmsflist(i-firstatm+1)) SaveTab RMSF,(MacroTarget)_rmsf,Format=Text,Columns=6,NumFormat=8.2f,"Table of atomic Root Mean Square Fluctuations in [A]" bound=Boundary ycolumn=3 if !count introwritten introwritten=1 # Make an info tab MakeTab Info,2,2 # Tabulate info about proteins and nucleic acids infolist()='Protein molecules','Mol Protein','Protein residues','Res Protein','Protein atoms','Atom Protein', 'Nucleic acid molecules','Mol NucAcid','Nucleic acid residues','Res NucAcid','Nucleic acid atoms','Atom NucAcid' for i=1 to count infolist step 2 Tabulate '(infolist(i))' Tabulate Count(infolist(i+1)) # Get list of unique residue names that are not part of the proteins,nucleic acids or the solvent resnamelist()=ListRes !Protein and !NucAcid and !Water,Format='RESName' if count resnamelist unilist()=resnamelist1 for resname in resnamelist if resname not in unilist unilist(count unilist+1)=resname # Remove residues with only one atom for resname in unilist # Get number of atoms residues=CountRes (resname) resid=ListRes (resname) resatoms=CountAtom Res (resid) if resatoms==1 # Single atom residue, get element infoatomlist(count infoatomlist+1)=ListAtom (resid),Format='Element ATOMElement' infoatomslist(count infoatomslist+1)=residues else # Tabulate actual residues with number of atoms Tabulate 'Residue (resname) with (resatoms) atoms',(residues)

54 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# Tabulate single atoms for i=1 to count infoatomlist Tabulate '(infoatomlist(i))',(infoatomslist(i)) # Tabulate water residues Tabulate 'Water residues' Tabulate CountRes Water # Tabulate total number of atoms Tabulate 'Total number of atoms' Tabulate (Atoms) # Start the report WriteReport Title,Filename=(MacroTarget)_report,Text='YASARA Molecular Dynamics Trajectory Analysis for (basename MacroTarget)' # Write about the system WriteReport Heading,2,'About the simulation' if not count block WriteReport Paragraph, 'The trajectory `(MacroTarget)` has been analyzed with YASARA version (Version) over a period of ' '(simtime) (plottimestring) with (snapshots) snapshots and the (fof) force field. Note that the MD ' 'simulation may have been run with a different force field, but (fof) was used to calculate the ' 'energies in this report. To change this, edit the ForceField setting at the start of this macro. ' else WriteReport Paragraph, 'The trajectory has been analyzed with YASARA version (Version) in blocks of (blocksnapshots) snapshots and the (fof) force field.' WriteReport Paragraph, 'All plots and pictures in this report [like the simulated system below] are (figurewidth) pixels wide, you ' 'can change the `figurewidth` variable in this macro as needed.' # Include a screenshot of the simulated system caption='A ray-traced picture of the simulated system. The simulation cell boundary is set to (bound). ' 'Atoms that stick out of the simulation cell will ' if bound=='periodic' caption=caption+'be wrapped to the opposite side of the cell during the simulation.' else caption=caption+'not be included in the simulation.' WriteReport Image,Filename=(MacroTarget)_sim.png,Style=Figure,Caption=(caption),Delete=Yes # Include table with system composition info WriteReport Heading,3,'Composition of the system' WriteReport Paragraph,'The components of the system are shown in the table below. ' WriteReport Table,Info,'Composition of the simulated system',.0f,InfoColumnName="Type",DataColumnName="Number" # Show the solute WriteReport Paragraph, 'Object (soluteobj) with name `(solutename)` has been identified as the solute and is shown

55 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

below. ' 'If this is not the intended solute, please change the `soluteobj` variable in this macro. ' WriteReport Image,Filename=(MacroTarget)_solute.png,Style=Figure,Caption='The solute oriented along the major axes.',Delete=Yes if ligandsel!='' ligandresidues=CountRes (ligandsel) ligandatoms=CountAtom (ligandsel) WriteReport Heading,3,'The ligand' WriteReport Paragraph, 'A special ligand analysis has been performed for (ligandname), chosen (ligandreportstring) with the selection `(ligandsel)`. ' 'The number of residues matching the ligand selection is (ligandresidues), with (ligandatoms) atoms. ' 'To change the ligand selection, edit the `ligandsel` variable at the beginning of this macro.' WriteReport Image,Filename=(MacroTarget)_ligand.png,Style=Figure, Caption='A ray-traced picture of the ligand (ligandname). Bonds are colored by ' 'their order: Gray = 1, blue = 1.25, magenta = 1.33, red = 1.5, orange = 1.66, ' 'bright orange = 1.75, yellow = 2, lime green = 2.5, green = 3 and cyan = 4.',Delete=Yes # Write about the analyses inside the simulation cell, with periodic boundaries WriteReport Heading,2,'Analyses inside the simulation cell' WriteReport Paragraph, 'This section shows all analyses that have been performed inside the simulation cell, ' 'when all atoms share the common coordinate system of the simulation cell. ' if bound=='periodic' WriteReport Paragraph, 'Periodic boundaries are active and considered for distance measurements. Calculations ' 'that involve groups of atoms [center of mass, regression lines, enclosing spheres..] ' 'are ambiguous and should be placed in the next section, unless it is known that the ' 'atom group does not drift through a periodic boundary.' # Write the data to the report task='WriteReport' Sim on AnalyzeInsideCell Sim off # Add the protein residue secondary strucure plot to the report if secstrplotted WriteReport Heading,3,'Protein secondary structure per residue' WriteReport Paragraph,'The following plots show the protein secondary structure per residue as a function of ' 'simulation time. They are helpful to monitor protein folding and all other kinds of structural ' 'changes. The default secondary structure colors are used, you can change them at ' 'View > Color > Parameters > Secondary structure colors. One plot per protein molecule is shown.' for i=zeroed secstrmols+1 to secstrmols if secstrresidues(i) molname=ListMol (secstrmollist(0+i)),Format='Mol MOLNAME' # Write to report

56 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

WriteReport Plot,'Protein residue secondary structure type [vertical axis] as a function of simulation time [horizontal axis], obtained with the command "SecStr".', SecStrMol(i),Width=(figurewidth),Height=480,Title='Protein residue secondary structure of molecule (molname)',Type=Heatmap, XLabel='Time in nanoseconds',YLabel='Residue number',LegendPos='Outside',Graphname=(secstrnamelist),Graphcol=(secstrcolorlist)

if hiresplotted SavePlot Filename="LastReportPlot_hires",SecStrMol(i),Width=1600,Height=1200,Title='Protein residue secondary structure of molecule (molname)',Type=Heatmap, XLabel='Time in nanoseconds',YLabel='Residue number',Graphname=(secstrnamelist),Graphcol=(secstrcolorlist) # Write about the analyses outside the simulation cell, without periodic boundaries WriteReport Heading,2,'Analysis outside the simulation cell' WriteReport Paragraph, 'The following section presents data gathered outside the simulation cell, where each object ' 'has its own local coordinate system and no periodic boundaries are present. Calculations ' 'that involve the interaction between objects [common surface areas, contacts between objects..] ' 'must be placed in the previous section.' AnalyzeOutsideCell # Write about the analyses done with respect to the reference structure AddObj SoluteRef if !refsnapshot text='Analyses performed with respect to the starting structure' else text='Analyses performed with respect to snapshot (refsnapshot)' WriteReport Heading,2,'(text)' WriteReport Paragraph, '(text) are shown in this section. ' 'These are also done outside the simulation cell, where each object has its own local ' 'coordinate systems and no periodic boundaries are present. To choose another reference ' 'snapshot than (refsnapshot), edit the `refsnapshot` variable at the beginning of this macro.' AnalyzeChange RemoveObj SoluteRef # Loop over the columns (except 1 and 2, the time) to calculate the mean, minimum and maximum values # and append them to the main table. for func in 'Mean','Min','Max' SelectTab Main Tabulate " " Tabulate '(func)' for i=3 to columns vallist()=Tab Main,Column=(i) Tabulate ((func) vallist) SaveTab Main,(MacroTarget)_analysis,Format=Text,Columns=(columns),NumFormat=12.3f, (header)

# Special analysis functions

57 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# ======# Additionally calculate and plot the RMSF (Root Mean Square Fluctuation) for every residue per molecule # Lists of solute residues for RMSF calculations rmsfreslist()=RMSFRes Obj Solute residlist()=ListRes Obj Solute resnumlist()=ListRes Obj Solute,'RESNUM' sel='Protein or NucAcid and Obj Solute' # Lists of solute macro molecules for RMSF calculations molnamelist()=ListMol (sel),Format='Mol MOLNAME' mols=count molnamelist # List of solute macro molecule (MM) residues for RMSF calculations mmresidlist()=ListRes (sel) mmresidues=count mmresidlist if mmresidues mmrmsflist()=ShortList rmsflist,residlist,mmresidlist mmmolnamelist()=ListRes (sel),'Mol MOLNAME' mmresnumlist()=ListRes (sel),'RESNUM' # Get min and max residue number for side in 'min','max' if resnum(side)=='' rmsfresnum(side)=0+(side) mmresnumlist else rmsfresnum(side)=resnum(side) # Make a table of solute macro molecule (MM) residues RMSFs MakeTab MMRMSF,2,(mols+1) # Initialize mmrmsfmatrix with 0 rows=rmsfresnummax-rmsfresnummin+1 for i=0001 to rows for j=1 to mols mmrmsfmatrix(i)(zeroed mols+j)=0 # Enter RMSF values into matrix for i=1 to mmresidues if mmresnumlist(i)>=rmsfresnummin and mmresnumlist(i)<=rmsfresnummax for j=1 to mols if mmmolnamelist(i)==molnamelist(j) mmrmsfmatrix(0001+mmresnumlist(i)-rmsfresnummin)(zeroed mols+j)=mmrmsflist(i) # Transfer RMFS values from matrix to table for i=rmsfresnummin to rmsfresnummax Tabulate (i),(mmrmsfmatrix(0001+i-rmsfresnummin)) # Lists of solute HET residues for RMSF calculations sel='!Protein !NucAcid !Water Obj Solute' hetresinfolist()=ListRes (sel),"'MOLNAME','RESName``RESNUM','ATOMNUM'" hetresidues=count hetresinfolist if hetresidues hetresidlist()=ListRes (sel) hetrmsflist()=ShortList rmsflist,residlist,hetresidlist # Make a table of solute HET residues RMSFs MakeTab HetRMSF,2,4 for i=1 to hetresidues

58 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Tabulate (hetresinfolist(i)),(rmsfreslist(i)) if mmresidues or hetresidues WriteReport Heading,2,'Solute residue RMSF' WriteReport Paragraph, 'The Root Mean Square Fluctuation [RMSF] per solute residue is calculated from the average RMSF of its constituting atoms. ' 'The RMSF of atom i with j runing from 1 to 3 for the x, y, and z coordinate of the atom position vector P and ' 'k runing over the set of N evaluated snapshots is given by following formula:' WriteReport Image,Filename=(YASARADir)/doc/RMSFAtomResMol0.png,Style=Center,Name="formula_r msf" if mmresidues WriteReport Plot,'The Root Mean Square Fluctuation [vertical axis] per solute protein/nucleic acid residue [horizontal axis] ' 'calculated from the average RMSF of the atoms constituting the residue. ' #'Each graph represents one molecule. Note: Residue numbers are not unique, so graphs can overlap. ' 'A RMSF of exactly zero means that that residue number is not present in the molecule. ' 'Atom RMSF table: "file://(basename MacroTarget)_rmsf.tab"', MMRMSF,Width=(figurewidth),Height=480,Title='Solute protein/nucleic acid residue RMSF', XColumn=1,YColumn=2,YColumns=(mols),XLabel='Residue number', YLabel="RMSF in Angstrom",LegendPos='Outside',Graphname=(molnamelist) if hiresplotted SavePlot Filename="LastReportPlot_hires",MMRMSF,Width=1600,Height=1200,Title='Solute protein/ nucleic acid residue RMSF', XColumn=1,YColumn=2,YColumns=(mols),XLabel='Residue number',YLabel="RMSF in Angstrom",Graphname=(molnamelist) if hetresidues WriteReport Table,HetRMSF,'RMSF in Angstrom for non-protein/nucleic acid residues in the solute.',InfoColumnName='Mol',DataColumnName='Residue','First atom','RMSF[A]' if count rdfsellist==4 # Additionally calculate and include the radial distribution function (RDF) in the report. rdflist()=RDF MakeTab RDF,2,2 for i=1 to count rdflist Tabulate (rdfsellist4*i),(rdflist(i)) SaveTab RDF,(MacroTarget)_rdf,Format=Text,Columns=2,NumFormat=6.3f, 'Radial distribution function with parameters (rdfsellist) as a function of the radial distance in A' # Write to report WriteReport Heading,2,'Radial Distribution Function' WriteReport Paragraph, 'The Radial Distribution Function is calculated by first by determining distances ' 'between all (rdfsellist1) - (rdfsellist2) pairs and sorting them in (rdfsellist3) bins ' 'with a bin width of (rdfsellist4) A. The RDF is then computed with the following formula:' WriteReport

59 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Image,Filename=(YASARADir)/doc/RDF0.png,Style=Center,Name="formula_rdf" WriteReport Paragraph, 'The RDF in bin `i` is thus calculated from the number of `CountsInBin i` divided by `Atoms1` ' '[the number of atoms matching the first selection (rdfsellist1)] times the volume of the ' 'shell corresponding to bin i. To change the selection for the RDF edit the variable "rdfsel" ' 'at the beginning of this macro.' WriteReport Plot,'Radial Distribution Function [vertical axis] for (rdfsellist1) - (rdfsellist2) pairs ' 'as a function of the radial distance r in units of A [horizontal axis] ' 'calculated from (rdfsellist3) bins with (rdfsellist4) A bin width.' 'A table with the raw data is available here: "file://(basename MacroTarget)_rdf(id).tab"', RDF,Width=(figurewidth),Height=480,Title='RDF for (rdfsellist1) - (rdfsellist2) pairs', XColumn=1,YColumn=2,YColumns=1,XLabel='Radial distance r in A',YLabel="RDF(r)",LegendPos='Outside',Graphname='RDF' if hiresplotted SavePlot Filename="LastReportPlot_hires",RDF,Width=1600,Height=1200,Title='RDF for (rdfsellist1) - (rdfsellist2) pairs', XColumn=1,YColumn=2,YColumns=1,XLabel='Radial distance r in A',YLabel="RDF(r)"

# IMPORTANT: This function must be the last. Place additional functions above this point. if dccmsel!='' # Additionally calculate and show the dynamic cross-correlation matrix (DCCM). # This matrix correlates the displacements from the time average structure, # see the documentation of the 'DCCM' command for details. # First get the number of selected units, i.e. the rows/columns in the matrix if !dccmunits WriteReport Heading,2,'Dynamic Cross-Correlation Matrix' WriteReport Paragraph, 'The DCCM selection (dccmsel) did not match any atoms and therefore the DCCM could not be calculated. ' 'You can change the selection by editing the `dccmsel` variable at the beginning of the macro.' else # Take the time average structure as the start object to superpose onto DelObj SoluteRef refobj=DuplicateObj Solute NameObj (refobj),SoluteRef RemoveObj SoluteRef # Loop over the snapshots a second time to calculate the displacements from the time average i=00000+firstsnapshot last=0 if count block snapshots=blocksnapshots while !last and snapshots!=0 # Load next snapshot from SIM or XTC trajectory

60 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

if format=='sim' # Set last (last file) to 1 if last snapshot loaded sim=FileSize (MacroTarget)(i+1).sim if not sim last=1 LoadSim (MacroTarget)(i) else last=Load(format) (MacroTarget),(i+1) Sim Pause ShowMessage 'Calculating dynamic cross-correlation matrix, analyzing snapshot (0+i)...' Wait 1 Sim Off # Superpose snapshot on the time average structure AddObj SoluteRef SupAtom (casel) and Obj Solute,(casel) and Obj SoluteRef # Add the current displacements to an internal table to obtain the DCCM AddDisp(dccmsel) and Obj Solute,(dccmsel) and Obj SoluteRef RemoveObj SoluteRef # Check for last snapshot if format!='sim' and !last for j=2 to snapshotstep last=Load(format) (MacroTarget),(i+j) if last

break # Next snapshot if snapshots!='all' snapshots=snapshots-1 i=i+snapshotstep HideMessage # Store the DCCM in a table named DCCM MakeTab DCCM,Dimensions=2,Columns=(dccmunits) Tabulate DCCM # Visualize the DCCM coordsys=CoordSys pointwidth=1. height=5. dccmobj1=ShowTab DCCM,Width=(pointwidth),Range=(height),Min=- 1,MinCol=(dccmcol(1)),Max=1.0,MaxCol=(dccmcol(2)) # By default, ShowTab shows the minimum at Z=0, move so that correlation 0 is at Z=0 MoveMesh (dccmobj1),Z=(-height*0.5) # Visualize the zero level with a flat DCCM wireframe dccmobj2=ShowTab DCCM,Width=(pointwidth),Range=0,Min=-1,Max=1.0 dccmobj3=ShowWireObj (dccmobj2),Static,Mesh=Solid DelObj (dccmobj2) PointPar Radius=0.5,Plastic=No NameObj (dccmobj3),ZeroLevel ScaleObj (dccmobj1) (dccmobj3),X=(coordsys) RotateObj (dccmobj1) (dccmobj3),X=180 # Create a text object with the residue names and the table header

61 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

textwidth=pointwidth*dccmunits*2 idlist()=List(dccmsel) and Obj Solute,Format='MOLNAME RESName RESNUM' if textwidth<4500 textobj1=MakeTextObj Units,Width=(textwidth),Height=(textwidth) Font Arial,Height=(pointwidth*0.6),Color=Yellow,Depth=0.5,DepthCol=Red for i=1 to dccmunits PosText X=(textwidth*0.5+pointwidth*-0.5*(dccmunits+8)), Y=(textwidth*0.5+pointwidth*(0.5*dccmunits-i)),justify=left Print (idlist(i)) # Duplicate the labels at the bottom textobj2=DuplicateObj (textobj1) RotateObj (textobj2),Z=(90*coordsys) # Calculate the projected height of the DCCM and move it to a spot where it fits the screen exactly r=RadiusObj (dccmobj1) r=r+5 s=PixToA*(ScrSizeY-50)*0.5/sqrt (r*r/2) PosObj all,Z=(EyeDis/s-EyeDis) DelObj not (dccmobj1) (dccmobj3) Units Solute if not count block # Make a ray-traced picture of visualized DCCM SwitchObj Solute,off SwitchObj ZeroLevel,off SaveScreenshot 'dccm1','DCCM' SwitchObj Solute,on SwitchObj ZeroLevel,on # Save the matrix SaveTab DCCM, (MacroTarget)_dccm,Format=Text,Columns=(dccmunits),NumFormat=6.3f, 'Dynamic Cross-Correlation Matrix for (dccmunits) selected units' # Save the matrix to be printed in the report MakeTab DCCM2,Dimensions=2,Columns=(dccmunits+1) # Top left corner Tabulate "DCCM" # Top row with all residue IDs Tabulate List(dccmsel) and Obj Solute,Format='MOLNAME\\n RESName\\n RESNUM' # Fill the other rows idlist()=List(dccmsel) and Obj Solute,Format='MOLNAME``RESName``RESNUM' for i=1 to dccmunits # First the residue ID Tabulate '(idlist(i))' # Tabulate row i of table DCCM Tabulate Tab DCCM,Row=(i) # Then show ribbon and make sure DCCM atoms are visible so that arrows Style Ribbon ShowAtom (dccmsel)

# Get a list of the first atom in each unit in dccmsel idlist()=List(dccmsel) and Obj Solute # Assign the DCCM to a list for quick access

62 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

dccmlist()=DCCM # Show and style solute object ShowSolute Style Ribbon,Stick HideRes Protein Show(dccmsel) # Show blue and red lines between strongly anti- and correlated pairs # If the selcetion consists of residues or molecules, the first visible atom is selected for drawing arrows for i=1 to dccmunits atm1=ListAtom (idlist(i)) Visible for j=1 to dccmunits corr=dccmlist((i-1)*dccmunits+j) if corr<-dccmcut col='Blue' elif corr>dccmcut col='Red' else continue atm2=ListAtom (idlist(j)) Visible ShowArrow Start=AtAtom,(atm1),End=AtAtom,(atm2),Radius=0.1,Heads=0,Color=(col) if not count block # Save the solute with arrows SaveYOb Solute,(MacroTarget)_dccm SaveScreenshot 'dccm2','motion correlations' SwitchAll On DelObj Solute # Save the visualized matrix NumberObj all PosObj all,Z=(EyeDis/s-EyeDis) SaveSce (MacroTarget)_dccm # Write to report WriteReport Heading,2,'Dynamic Cross-Correlation Matrix' WriteReport Paragraph, 'The dynamic cross-correlation matrix [DCCM] is a square matrix, whose rows and columns ' 'match the selected units `(dccmsel)`. To change this selection, edit the `dccmsel` variable ' 'at the beginning of this macro. The DCCM shows how the movements of all selected pairs correlate. ' 'The values in the DCCM range from -1 [perfectly anti-correlated] to +1 [perfectly correlated]. ' 'The values along the diagonal are always +1 [because the motion of an atom is perfectly correlated to itself]. ' 'The DCCM element for units i and j is obtained with the following formula: ' Writereport Image,Filename=(YASARADir)/doc/DCCM0.png,Style=Center,Name="formula_dccm" WriteReport Paragraph, 'Here `d` is the displacement between the current position and the average position of the ' 'selected unit, and the angle brackets indicate the average over all samples. ' 'The highest correlations off the diagonal can often be found for bridged cysteines.'

63 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

if not count block WriteReport Paragraph,'The image below shows the correlation directly in the solute object:' WriteReport Image,(MacroTarget)_dccm2.png,Style=Figure, 'Blue and red lines are shown between strongly anti- and correlated pairs. ' 'To change the threshold value for the correlation lines edit the `dccmcut` variable at the beginning of this macro. ' 'To look at this structure interactively, open the file "file://(basename MacroTarget)_dccm.yob" in YASARA.',Delete=yes if not count block WriteReport Paragraph, 'In the image below, the DCCM is visualized with colors ranging from ' '(dccmcol(1)) [-1, fully anti-correlated] to (dccmcol(2)) [+1, fully correlated]. ' WriteReport Image,(MacroTarget)_dccm1.png,Style=Figure, 'Visualization of the dynamic cross-correlation matrix. Open the file "file://(basename MacroTarget)_dccm.sce" in YASARA ' 'to look at this matrix visualization interactively. ' 'In the scene file, the zero level [0, not correlated] is indicated with a wire-frame grid. ',Delete=Yes captiontext='Dynamic cross-correlation matrix. ' 'The full table is also available in text format, you need a proper text editor ' 'without line wrapping to look at this file: "file://(basename MacroTarget)_dccm(id).tab". ' if tabrowsmax captiontext=captiontext+'Note: At most (tabrowsmax) rows of the DCCM are shown above. ' 'Change the `tabrowsmax` variable in the macro to adjust this number. ' WriteReport Table,DCCM2,'(captiontext)',RowsMax=(tabrowsmax) if not count block # Additional files block Writereport Heading,2,'Additional files' WriteReport Paragraph,'The following additional files have been created:' Writereport Heading,3,'The main data table' WriteReport Paragraph, 'The main table contains all collected data in a single file. The column names match the ' 'names used above for graphs in plots and columns in tables. You can find a more detailed ' 'explanation of this table in the user manual at Recipes > Run a molecular dynamics simulation > ' 'Analyzing a trajectory. If you parse this file automatically, keep in mind that the number of ' 'columns can change any time, so you have to use the names in the first table row to find the ' 'columns of interest: "file://(basename MacroTarget)_analysis.tab"' Writereport Heading,3,'The structures' WriteReport Paragraph, 'The `time averaged structure` in PDB format: "file://(basename MacroTarget)_average.pdb"' WriteReport Paragraph, 'The `snapshot with the minimum solute energy`. Either just the solute in PDB format ' '"file://(basename MacroTarget)_energymin.pdb", or the complete system including ' 'solvent as a YASARA scene "file://(basename MacroTarget)_energymin.sce".'

64 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

WriteReport Paragraph, 'The `last snapshot` of the simulation. Either just the solute in PDB format ' '"file://(basename MacroTarget)_last.pdb", or the complete system including solvent ' 'as a YASARA scene "file://(basename MacroTarget)_last.sce"' Writereport Heading,3,'The RMSF table' WriteReport Paragraph, 'A table that lists the Root Mean Square Fluctuations [RMSFs] of all atoms in [A] is available ' 'here: "file://(basename MacroTarget)_rmsf.tab". The RMSFs have also been converted ' 'to B-factors and stored in the B-factor field of the time-average structure above. ' if hiresplotted Writereport Heading,3,'High resolution plots' WriteReport Paragraph, 'To facilitate publication, high resolution versions of the plots above have been ' 'created with a 4:3 aspect ratio suited for printing in a single column of a typical ' 'journal article. Just look at the figure number above to find the right file:' for i=1 to 99 size=FileSize (MacroTarget)_report_figure(i)_hires.png if size WriteReport Paragraph,'"file://(basename MacroTarget)_report_figure(i)_hires.png"' if last or not count block # End report WriteReport End HideMessage if runWithMacro and ConsoleMode # Exit YASARA if this macro was provided as command line argument in console mode Exit elif not ConsoleMode # Open report in browser if this macro was not run in console mode ShowURL file://(MacroTarget)_report.html # ADD A PLOT OR TABLE TO THE HTML REPORT # ======# 'valuelist' is either a list of values to plot or tabulate, or a command to run that returns such a list of values # 'title' is the title of the plot or table # 'ylabel' is the label of the Y-axis # 'graphnamestr'/'datacolumnstr' is a string with the names of the graphs/columns to create in the plot/table, joined with ' ' # 'task' is a global variable that tells us what to do: 'Tabulate' to collect data, 'AddHeader' # to add the graph/column names to global variable 'header', and 'WriteReport' to write the actual report # (in the latter case the global variable 'ycolumn' is the starting column to plot or tabulate). def Plot valuelist(),title,ylabel,graphnamestr ShowData 'Plot',valuelist,title,ylabel,graphnamestr def WriteTable valuelist(),title,datacolumnstr ShowData 'Table',valuelist,title,"None",datacolumnstr

65 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

def ShowData resulttype,valuelist(),title,ylabel,graphnamestr global task,hiresplotted,header,xcolumn,ycolumn,plottimestring,tabtimestring,figurewidth,tabrowsmax ,snapshots,secstrcolorlist graphsmax=30 graphcolorlist()='' command='' if type valuelist1=='StrongString' # User provided a command to run if count valuelist!=1 RaiseError 'When plotting the output of a YASARA command as "(title)", exactly one command must be provided, not (count valuelist)' # Set graph color for secondary structure content plot if task=='WriteReport' and valuelist1=="SecStr" graphcolorlist()=secstrcolorlist # Run the command and collect the output as 'valuelist' command=''+valuelist1 valuelist()=(command) values=count valuelist #Check if valuelist is empty if !values RaiseError 'The list of values for (resulttype) "(title)" is empty. Please check the selection' if values>graphsmax and resulttype=='Plot' RaiseError 'Plot "(title)" has (values) graphs. The maximum allowed number of graphs per plot is (graphsmax)' # Check the graph names graphnamelist()=split graphnamestr graphnames=count graphnamelist if valuesgraphnames if resulttype=='Plot' valuename='graph' else valuename='data column' RaiseError 'You tried to add (values) (valuename)s to the (resulttype) "(title)", but provided only (graphnames) (valuename) names "(graphnamestr)". ' 'Choose "Auto" as the last or only one (valuename) name for automatic naming' # Check which task to perform if task=='Tabulate' # Add values to table for i=1 to count valuelist # A WeakString can contain commas so it must be protected with quotes if type valuelist(i)=='WeakString'

66 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Tabulate '(valuelist(i))' else Tabulate (valuelist(i)) elif task=='AddHeader' # Add graph names to header string 'header', which will be the first line of the saved table for i=1 to values graphname=graphnamelist(i) graphnamelen=strlen graphname if graphnamelen>12 RaiseError 'Graph name "(graphname)" is (graphnamelen) characters long, but at most 12 characters are allowed' header=header+'_'*(13-graphnamelen)+graphname elif task=='WriteReport' # Write the actual report WriteReport Heading,3,(title) charlist()=crack graphnamelist1 if ' ' not in charlist and '.' not in charlist global (graphnamelist1)Text if isfunction Print(graphnamelist1)Info # Macro contains a function that writes infos to the report Print(graphnamelist1)Info elif count (graphnamelist1)Text # Macro contains a variable with infos to write WriteReport Paragraph,'((graphnamelist1)Text)' if resulttype=='Plot' # Create plot caption=title+' [vertical axis] as a function of simulation time [horizontal axis]' if command!='' caption=caption+', obtained with the command "(command)"' caption=caption+'.' # Check if one graph covers another or graph is all zero if values>1 text='' textlist()=' Graph',', graph',' graph',' and graph',' has',' have' idx=0 # First, check if there are all zero graphs for i=1 to values # Initilaize donelist for the covering graph part donelist(i)=0 # Get all values of one column columnlist()=Tab Main,(ycolumn+i-1) # Add sum of all values to sumlist sumlist(i)=Sum columnlist if !sumlist(i) # If the sum of all values is zero then we asume that all values are zero if idx<2 idx=idx+1 # Add text text=text+textlist(idx)+' `(graphnamelist(i))`' if idx

67 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# Add ending text text=text+textlist(idx+4)+' all zero values.' # Second, check if one graph covers another idx=0 for i=values to 2 step -1 if !donelist(i) # Check if graph covers another only if that graph itself is not covered and already flaged in donelist for j=i-1 to 1 step -1 if sumlist(j)==sumlist(i) and !donelist(j) # If the sum of all values between two graphs is equal we asume that the graphs are identical donelist(j)=1 if idx<2 # Add starting text text=text+textlist(idx+1)+' `(graphnamelist(i))` completely covers ' idx=3 # Add text for every graph that is covered text=text+textlist(idx)+' `(graphnamelist(j))`' idx=4 if idx # Reset index idx=1 if idx # Add ending text text=text+', they share the same values.' if text!='' # Add text to caption caption=caption+' Note:'+text if graphnamelist1=='TotalEnergy' and snapshots>1 tempval1=Tab Main,(ycolumn),1 tempval2=Tab Main,(ycolumn),2 if tempval1

YLabel=(ylabel),LegendPos='Outside',Graphname=(graphnamelist),Graphcol=(graphcolorlist ) if hiresplotted SavePlot Filename="LastReportPlot_hires",Main,Width=1600,Height=1200,Title='(title)', XColumn=(xcolumn),YColumn=(ycolumn),YColumns=(values),XLabel='Simulation time in (plottimestring)',

68 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

YLabel=(ylabel),Graphname=(graphnamelist),Graphcol=(graphcolorlist) if graphnamelist1=='TotalEnergy' and snapshots>1 Tab Main,(ycolumn),1,Set=(tempval1) else # Create table caption=title+' as a function of simulation time [first column]' if command!='' caption=caption+', obtained with the command "(command)"' caption=caption+'.' if tabrowsmax caption=caption+' Note: At most (tabrowsmax) table rows are shown. ' 'Change the `tabrowsmax` variable in the macro to adjust the number of shown table rows. ' 'The full table can be found in "file://(basename MacroTarget)_analysis.tab".' WriteReport Table,Main,Caption='(caption)',NumFormat=.2f,RowsMax=(tabrowsmax), InfoColumn=(xcolumn),DataColumn=(ycolumn),DataColumns=(values), InfoColumnName='(tabtimestring)',DataColumnName=(graphnamelist) # Keep track of next ycolumn ycolumn=ycolumn+values

# SHOW THE ENTIRE SIMULATED SYSTEM # ======def ShowSystem global ligandsel SwitchAll On alpha,beta,gamma = OriObj SimCell RotateAll Y=(-beta) RotateAll Z=(-gamma) RotateAll X=(-alpha) Style BallStick Style Ribbon,Stick ColorBonds Order if ligandsel!='' BallRes (ligandsel) ZoomAll Steps=0

# SHOW THE SOLUTE OBJECT # ======def ShowSolute global ligandsel # Show only the solute and orient along the major axes SwitchAll Off SwitchObj Solute,On NiceOriObj Solute # First show hetgroups as balls&sticks, but ions and the ligand as balls Style BallStick BallAtom all with 0 bonds to all if ligandsel!='' BallRes (ligandsel) # Make sure that the ligand faces to the front

69 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

CenterObj Solute TransformObj Solute _,_,cenz = GroupCenter (ligandsel) if cenz>0 RotateObj Solute,Y=180 ZoomObj Solute,Steps=0

# SAVE A RAY-TRACED SCREENSHOT # ======def SaveScreenshot fileid,description global figurewidth,MacroTarget ShowMessage 'Creating ray-traced picture of the (description)...' Wait 1 RayTrace Filename=(MacroTarget)_(fileid).png,X=(figurewidth),Zoom=1,LabelShadow=No,Display=Of f,Outline=0,Background=On

# SHORTEN A LIST # ======# Returns a list with those items in longdatalist, whose corresponding item in longidlist is in shortidlist. # longdatalist and longidlist must have the same length, all items in shortidlist must be in longidlist and in the same order. def ShortList longdatalist(),longidlist(),shortidlist() ids=count longidlist idx=1 for i=1 to count shortidlist while longidlist(idx)!=shortidlist(i) idx=idx+1 shortdatalist(i)=longdatalist(idx) return (shortdatalist)

70 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

8.4 becalculation.mcr #konversi pdb ke sce for k=00505 to 00507 LoadPDB (MacroDir)\r2md(k).pdb,Center=No SplitObj 1 JoinObj 2,1 NumberObj 3,2 NiceOriAll Cell Auto,Extension=7,Shape=Cuboid,Obj 2 FixAll ForceField NOVA,SetPar=Yes Boundary Wall SaveSce (MacroDir)\r2md(k)_complex.sce Clear #Calculation method = 'VINALS' runs = 1 rmsdmin = 5.0 rigid = 1 for j=00505 to 00507 LoadSce (MacroDir)\r2md(j)_complex.sce NameObj 1,receptor NameObj 2,ligand ForceField AMBER03 Boundary Wall Longrange None #FixAll Experiment Docking Method (method) ReceptorObj (1) LigandObj 2 Runs (runs) ClusterRMSD (rmsdmin) # Result file number must be separated with '_', in case MacroTarget also ends with number ResultFile temp_001 # Uncomment below to set the number of energy evaluations (AutoDock ga_num_evals): # DockPar ga_num_evals 25000000 # Uncomment the two lines below to provide your own atom parameters (VdW radii etc.) # GridPar parameter_file /Path/To/Custom/AD4_parameters.dat # DockPar parameter_file /Path/To/Custom/AD4_parameters.dat # If you want to keep all temporary files, uncomment below # TmpFileID YourChoice Experiment On Wait ExpEnd # Save a scene with receptor and all ligand conformations SaveSce (MacroDir)\r2md(j)_result.sce # Save a log file with an analysis Console Off RecordLog (MacroDir)\r2md(j)_result.log print 'Local docking result analysis'

71 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

print '======' print print '(runs) (method) docking runs of the ligand object 2 to the receptor object 1 yielded the following results,' print 'sorted by binding energy: [More positive values indicates stronger binding, and negative values mean no binding]' print print 'Run |Bind.energy[kcal/mol]|Dissoc.constant[pM]| Contacting receptor residues' print '----+------+------+------' clusters=0 for i=001 to runs # Ligands have SegmentID C001, C002 etc. result = DockingResult i,'Obj 1','Segment C(i)' print (result) # Count the clusters exists = FileSize (MacroTarget)_(i).yob if exists clusters=clusters+1 if !(i%10) ShowMessage 'Analyzing docking results, (100*i/runs)% completed...' Wait 1 print print 'After clustering the (runs) runs, the following (clusters) distinct complex conformations were found:' print '[They all differ by at least (rmsdmin) A heavy atom RMSD]' print print 'Cluster|Bind.energy[kcal/mol]|Dissoc. constant [pM]| Contacting receptor residues' print '------+------+------+------' for i=001 to clusters DelAll LoadYOb (MacroTarget)_(i) # Ligands have SegmentID C001, C002 etc. result = DockingResult i,'Segment !C???','Segment C???' print (result) print print 'The results of the (runs) runs have been combined in a single scene at (MacroTarget).sce',Convert=No print 'The (clusters) clusters have been saved as:' for i=001 to clusters print '(MacroTarget)_(i).yob',Convert=No StopLog HideMessage Console On LoadSce (MacroDir)\r2md(j)_result.sce # Exit YASARA if this macro was provided as command line argument in console mode if runWithMacro and ConsoleMode Exit # EXTRACT DOCKING RESULT # ======

72 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

# Returns a result string. 'num' is a sequential number, 'recsel' selects the receptor, 'ligsel' the ligand. def DockingResult num,recsel,ligsel # Get the binding energy from the B-factor... bindnrg = BFactorAtom (ligsel) # ...and the dissociation constant from the atomic property. dissconst = PropAtom (ligsel) if bindnrg<=0 dissconst=' None' else dissconst= 00000000000000.0000+dissconst # Get receptor residues that contact the ligand reslist() = ListRes (recsel) with distance<4.0 from (ligsel),Format='MOLNAME RESNAME RESNUM' if !count reslist reslist='No residues in contact' else reslist=join reslist result='(000+num) | (000000.0000+bindnrg) | (dissconst) | (reslist)' return result Clear

73 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

7.6 dock_run_1000.mcr # YASARA MACRO # TOPIC: 5. Structure prediction # TITLE: Docking a ligand to a receptor # REQUIRES: Structure # AUTHOR: Elmar Krieger # LICENSE: GPL # DESCRIPTION: This macro predicts the structure of a ligand-receptor complex. It can also continue a docking run that got interrupted. An analysis log file is written at the end. # Parameter section - adjust as needed, but NOTE that some changes only take effect # if you start an entirely new docking job, not if you continue an existing one. # ======# You can either set the target structure by clicking on Options > Macro > Set target, # by providing it as command line argument (see docs at Essentials > The command line), # or by uncommenting the line below and specifying it directly. #MacroTarget='/home/myname/projects/docking/1sdf' # Docking method, either AutoDockLGA or VINA method='VINA' # Number of docking runs (maximally 999, each run can take up to an hour) runs=5 # Docking results usually cluster around certain hot spot conformations, # and the lowest energy complex in each cluster is saved. Two complexes belong to # different clusters if the ligand RMSD is larger than this minimum [A]: rmsdmin=5.0 # Set to 1 to keep the ligand completely rigid (alternatively you can provide # the ligand as a *.yob file and fix certain dihedral angles only). rigid=0 # A selection of receptor residues to keep flexible, e.g. flexres = 'Lys 91 Leu 100', # or (if the receptor is not a monomer) flexres = 'Res Lys 91 Mol A or Res Leu 100 Mol B'. # Alternatively you can provide the receptor as a *.sce or *.yob file with fixed # atoms, which gives better control (e.g. you can keep only part of a side-chain # or even a terminal backbone flexible). flexres='' # Set to 1 to calculate the binding energy spread in each cluster (takes longer) calcspread=1 # Set to 1 if you also want to save PDB files of all clusters pdbsaved=0 # Force field used for charge assignment, only affects AutoDock, not VINA. ForceField AMBER03 # Normally no change required below this point # ======# Sanity checks if MacroTarget=='' RaiseError "This macro requires a target. Either edit the macro file or click Options > Macro > Set target to choose a target structure" if runs>999 RaiseError 'Too many docking runs selected, (runs) would take forever'

74 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

structlist='receptor','ligand' for k=001 to 1000 RandomSeed Time # Load receptor and ligand Clear # Do we already have a receptor scene? scefilename='(MacroTarget)_receptor.sce' scene = FileSize (scefilename) if !scene # No, load PDB or YOb files of receptor and ligand for struct in structlist (struct)=0 for type in 'yob','pdb','sdf' filename='(MacroTarget)_(struct).(type)' exists = FileSize (filename) if exists and (type!='sdf' or struct=='ligand') (struct) = Load(type) (filename) break if not (struct) RaiseError 'The (struct) was not found at (filename). Please follow the instructions in the "Recipes" section exactly, especially when setting the macro target' # Orient the receptor, create a docking cell that includes the entire receptor # and also has enough empty space around to accomodate the ligand (which has to # be removed temporarily, since 'Cell Auto' encloses the entire soup). ligandradius = RadiusObj (ligand) NiceOriObj (receptor) RemoveObj (ligand) Cell Auto,Extension=(ligandradius*2) AddObj (ligand) else # Yes, a scene is present LoadSce (scefilename) # Verify that the cell is present simcell = CountObj SimCell if !simcell RaiseError 'If you provide a scene, it must contain a simulation cell, but none was found in (scefilename)' # The receptor is the object containing the first atom receptor = ListObj Atom 1 if Objects>2 ShowMessage 'Your scene contains (Objects) objects, while only the receptor and the docking cell are expected.' Wait ContinueButton HideMessage # Load the ligand ligand=0 for type in 'yob','pdb','sdf' filename='(MacroTarget)_ligand.(type)' exists = FileSize (filename) if exists

75 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

ligand = Load(type) (filename) break if not ligand RaiseError 'The ligand was not found at (filename)' ligandradius = RadiusObj (ligand) # Warn if the cell is too large x,y,z = Cell if x>96 or y>96 or z>96 ShowMessage "A cell axis is longer than 96 A, which may reduce docking accuracy. Consider focusing on the active site." Wait ContinueButton HideMessage # Rename receptor and ligand objects to make sure they can be identified later NameObj (receptor),Receptor NameObj (ligand),Ligand # Keep selected side-chains flexible if flexres!='' FixObj Receptor FreeAtom Res (flexres) and Sidechain Obj Receptor FixRes Cys Atom SG with bond to Atom SG or Ala Pro and Obj Receptor # The segment name C*** is used to tag ligand Conformations, and cannot be used for the receptor hit = ListAtom Segment C??? Obj Receptor if hit MarkAtom (hit) segname = SegAtom (hit) RaiseError 'Segment names starting with "C" are unfortunately reserved to identify ligand conformations, please click "Edit > Rename > Segment" to rename the receptor segment "(segname)"' # The molecule name 'l' is reserved for the ligand hit = ListAtom Mol l if hit RaiseError 'The receptor must not contain a molecule named "l", please click Edit > Rename > Molecule and try again' # Docking is done without periodic boundaries Boundary Wall Longrange None # Do not show secondary structure for protein ligands, this slows things down HideSecStrObj Ligand ShowObj Ligand StickObj Ligand # Move the ligand out of the cell, so that it does not block the view cellpos() = PosObj SimCell PosObj (ligand),(cellpos1),(cellpos2+y*0.5+ligandradius),(cellpos3) # Perform rigid docking if requested if rigid FixObj Ligand # Perform the docking Experiment Docking Method (method)

76 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

ReceptorObj (receptor) LigandObj (ligand) Runs (runs) ClusterRMSD (rmsdmin) # Result file number must be separated with '_', in case MacroTarget also ends with number. # If PDB files are preferred, replace .yob with .pdb ResultFile (MacroTarget)_(k)_001.yob # Uncomment below to set the number of energy evaluations (AutoDock ga_num_evals): # DockPar ga_num_evals 25000000 # Uncomment below to add 1000 to the AutoDock random number seed when more than 999 runs are needed # DockPar seed 1000 # Uncomment the two lines below to provide your own atom parameters (VdW radii etc.) # GridPar parameter_file /Path/To/Custom/AD4_parameters.dat # DockPar parameter_file /Path/To/Custom/AD4_parameters.dat # Uncomment below to keep temporary files in the current working directory: # TmpFileID 1adb_tmp # Uncomment below to stop after the setup step (combine with TmpFileID above to use YASARA only for setup) # SetupOnly yes Experiment On Wait ExpEnd # Save a scene with receptor and all ligand conformations SaveSce (MacroTarget)_(k)

# Save a log file with an analysis Console Off RecordLog (MacroTarget)_(k) print 'Global docking result analysis' print '======' print print '(runs) (method) docking runs of the ligand object (ligand) to the receptor object (receptor) yielded the following results,' print 'sorted by binding energy [more positive energies indicate stronger binding, and negative energies mean no binding]' print print 'Run |Bind.energy[kcal/mol]|Dissoc. constant [pM]| Contacting receptor residues' print '----+------+------+------' clusters=0 for i=001 to runs # Ligands have SegmentID C001, C002 etc. result = DockingResult i,'Obj (receptor)','Segment C(i)' print (result) # Count the clusters exists = FileSize (MacroTarget)_(k)_(i).yob if exists clusters=clusters+1 if !(i%10) ShowMessage 'Analyzing docking results, (100*i/runs)% completed...' Wait 1

77 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

print print 'After clustering the (runs) runs, the following (clusters) distinct complex conformations were found:' print '[They all differ by at least (rmsdmin) A heavy atom RMSD after superposing on the receptor]' print print 'Clu |Bind.energy[kcal/mol]|Dissoc. constant [pM]| Contacting receptor residues' print '----+------+------+------' for i=001 to clusters DelAll LoadYOb (MacroTarget)_(k)_(i) # Convert clusters to PDB format if requested if pdbsaved SavePDB 1,(MacroTarget)_(k)_(i) # Determine SegmentID of the ligand that seeds this cluster segnamelist(i) = SegAtom Segment C??? # Ligands have SegmentID C001, C002 etc. result = DockingResult i,'Segment !C???','Segment C???' print (result) print if calcspread # Additionally calculate the binding energy spread in each cluster (average and standard deviation) print 'While the table above lists the best binding energy in each cluster, it is sometimes' print 'helpful to also look at the energy spread [average and standard deviation], the' print 'dissociation constant has been recalculated from the average binding energy:' print print 'Clu |Members|Bind.energy spread [kcal/mol]|Dissoc. constant [pM]' print '----+------+------+------' LoadSce (MacroTarget)_(k) for i=001 to clusters # Collect the binding energies of all poses that belong to the current cluster ShowMessage 'Calculating energy spread, (100*i/clusters)% completed...' Wait 1 bindnrglist()=0 lastbindnrg=-1e99 members=0 for j=001 to runs if !count assigned(j) r = RMSDAtom Segment C(j) Element !H Obj Ligand,Segment (segnamelist(i)) Element ! H Obj Ligand if r

78 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

assigned(j)=1 # Calculate the mean dissociation constant: Ki = exp(deltaG/(R*T)) bindnrg=mean bindnrglist if bindnrg<=0 dissconst=' None' else # 4184. converts from kcal/mol to J/mol, AvoConst*BoltzConst/JToUnit is R in [J/(K*mol)] dissconst= 00000000000000.0000+exp (-bindnrg*4184./(AvoConst*(BoltzConst/JToUnit)*298.15))*1e12 # Print the spread print '(000+i) | (000+members) | (000000.0000+bindnrg)+-(000000.0000+stddev bindnrglist) | (dissconst)' print print 'The results of the (runs) runs have been combined in a single scene at (MacroTarget)_(k).sce',Convert=No print 'The (clusters) clusters have been saved as:' LoadSce (MacroTarget)_(k) for i=001 to clusters print '(MacroTarget)_(k)_(i).yob',Convert=No StopLog HideMessage Console On # Exit YASARA if this macro was provided as command line argument in console mode if runWithMacro and ConsoleMode Exit # EXTRACT DOCKING RESULT # ======# Returns a result string and binding energy, extracted from atomic BFactor and Property. # 'num' is a sequential number, 'recsel' selects the receptor, 'ligsel' the ligand. def DockingResult num,recsel,ligsel # Get the binding energy from the B-factor... bindnrg = BFactorAtom (ligsel) # ...and the dissociation constant from the atomic property. dissconst = PropAtom (ligsel) if bindnrg<=0 dissconst=' None' else dissconst= 00000000000000.0000+dissconst # Get receptor residues that contact the ligand reslist() = ListRes (recsel) with distance<4.0 from (ligsel),Format='MOLNAME RESNAME RESNUM' if !count reslist reslist='No residues in contact' else reslist=join reslist result='(000+num) | (000000.0000+bindnrg) | (dissconst) | (reslist)' return result Clear #rmsd_calculation for l=001 to 1000

79 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

LoadYOb (MacroDir)\r2md00640_ref_ligand.yob LoadYOb (MacroDir)\r2md00640-final_(l)_001.yob FreeAll SplitAll Center=No,Keep=ObjNum DelObj 2 DelObj 3 NumberObj 4,First=2 TransferObj 2,1,Local=Match RecordLog (MacroDir)\r2md00640-final_(l).rmsd.log RMSDObj 2,1,Match=AltLoc,Flip=Yes,Unit=Obj StopLog Clear

80