connorcoley / rdchiral

Wrapper for RDKit's RunReactants to improve stereochemistry handling
MIT License
154 stars 53 forks source link

What will RDChiral do when the template is adjusted to many reaction certers? #49

Open Jourllker opened 2 weeks ago

Jourllker commented 2 weeks ago

What a awesome work!!! But I found that when using rdchiral.main.rdchiralRunText it only select a random reaction center if there are not only one reaction center adjusting the template. And the code and git seem do not refer to this, so what can i do if i want the result of all reaction centers when my template adjusting many reaction centers? Thanks!!!

connorcoley commented 2 weeks ago

Can you provide a specific example where this is happening?

Jourllker commented 2 weeks ago

For a single example, the template is '[C;H0;D3;+0:1]-[N;H1;D2;+0:3]>>[C;H0;D3;+0:1]-[Cl;H0;D1;+0].[N;H2;D1;+0:3]' and the reactant is "O=C(C1=CC=CC(C(F)(F)F)=C1)NC2=CC=CC(C(N(CC3)CN3C4=C(C=CN5)C5=NC=C4)=O)=C2". The template wants to break the C-N bond, and there are two C-N bonds in the reactant. QQ图片20241112154528

connorcoley commented 2 weeks ago

It looks like there's only one site that should match your template since it requires a secondary nitrogen, not a tertiary nitrogen (i.e., [N;H1;D2;+0:3])

Jourllker commented 2 weeks ago

Yeah, you are right. My example can not explain the issue. If the molecule just like this, what will we get if use the template? The reaction center is in 1 or 2? QQ图片20241112184616

connorcoley commented 2 weeks ago

The routine for applying a template should return a list of outcomes in that case. In that specific case, however, I believe symmetry would mean thaht those two outcomes are collapsed into a single one. If you break the symmetry of the molecule and apply the template, you should see multiple outcomes

Jourllker commented 2 weeks ago

Yes, you are right. I have tried this that the rdchiralRunText returns a list. When there is only one site, the list contains only one element. If there are other sites, the list contains not only one element. I'm so grateful for your help!