lukasturcani / stk

A Python library which allows construction and manipulation of complex molecules, as well as automatic molecular design and the creation of molecular databases.
https://stk.readthedocs.io/
MIT License
252 stars 48 forks source link

Build a MOF with given building blocks (metal and linkers) #421

Open ClinicalAI opened 2 years ago

ClinicalAI commented 2 years ago

Hi, I am wondering if there is any way to build the following MOF structures gives the metal and linker:

Clc1nc(Cl)c2c3c1ccc1c3c(c(c2Cl)Cl)cnc1.[Cu][Cu].[O-]C(=O)C#CC12CC(Cl)C(C(C1)Cl)(C(C2)Cl)C#CC(=O)[O-].[O-]C(=O)C#CC12CCC(C(C1Cl)Cl)(C(C2(Cl)Cl)(Cl)Cl)C#CC(=O)[O-] MOFid-v1.pcu.cat0;5068709

[O-]C(=O)c1cc(F)c(c(c1F)F)C(=O)[O-].[O-]C(=O)c1cc(F)c(cc1F)C(=O)[O-].[O-]C(=O)c1ccc(c(c1)F)C(=O)[O-].[Zn]O([Zn])[Zn] MOFid-v1.pcu.cat0

[O-]C(=O)c1ccc(c(c1)F)C(=O)[O-].[O-]C(=O)c1ccc(cc1)C(=O)[O-].[Zn]O([Zn])[Zn] MOFid-v1.pcu.cat1

[O-]C(=O)c1cc(F)c(c(c1F)F)C(=O)[O-].[Zn]O([Zn])[Zn] MOFid-v1.pcu.cat2

Clc1c(c2ccc(c(c2)Cl)C(=O)[O-])c(Cl)c(c(c1Cl)c1ccc(cc1)C(=O)[O-])Cl.Clc1cnccn1.[O-]C(=O)C1=C[C]=C(C=C1)C(=O)[O-].[Zn][Zn] MOFid-v1.pcu.cat0

For example given the following building blocks (metal and linkers)

To make the following complex:

[O-]C(=O)c1ccc(c(c1)F)C(=O)[O-].[O-]C(=O)c1ccc(cc1)C(=O)[O-].[Zn]O([Zn])[Zn]

Any help or code example will be appreciated.

Thank you,

andrewtarzia commented 2 years ago

Hello and welcome!

Do you have an image or example structure of the mof and sbu complex topology?

That would help us determine if we can make it.

Andrew

ClinicalAI commented 2 years ago

Thanks for your reply,

For example something like this: https://mof.tech.northwestern.edu/mofs/15338

Given the linkers and metal: [O-]C(=O)c1cc(F)c(c(c1F)F)C(=O)[O-] [O-]C(=O)c1cc(F)c(cc1F)C(=O)[O-] [O-]C(=O)c1ccc(c(c1)F)C(=O)[O-] [Zn]O([Zn])[Zn]

We can build the MOF.

Thank you,

andrewtarzia commented 2 years ago

So, technically, stk can make things like this (see the Periodic COF topologies). However, as it stands, there is no 3D periodic PCU topology graph or vertices that will orient correctly.

Would you be interested in implementing this? if so, we can help you!

ClinicalAI commented 2 years ago

Yes, could you please help me to implement. No matter if the orientation is not correct.

andrewtarzia commented 2 years ago

If you are happy to have the first go, here are the things you need to implement:

@lukasturcani - please edit/add/fill in details I have missed or got wrong. (I also think this could help the documentation if you think it is a good description)

ClinicalAI commented 2 years ago

Thanks for your help. To be honest, I was looking for a simpler way, something like this in molsimplify: http://hjkgrp.mit.edu/content/molsimplify-tutorial-7-easy-ligand-functionalization-molsimplify

Unfortunately, I couldn't install molsimplify yet due to technical issues. If I can't get the output from that, I will implement the code as you suggested. Thanks again for your help.

KP-303 commented 1 year ago

@ClinicalAI I am interested in doing the same thing, did you implement this? I don't want to duplicate work.

Cheers.