Consider the following Python code, which is meant to count the number of molecules in molecules.sdf that pass Lipinski's rule of fives: from rdkit import Chem from rdkit.Chem import AllChem, Crippen, Lipinski mols = [mol for mol in Chem.SDMolSupplier("molecules.sdf") if mol is not None] cnt = 0 for m in mols:     mw = 1 if AllChem.CalcExactMolWt(m) <= 500 else 0     logp = 1 if Crippen.MolLogP(m) <= 5 else 0     hd = 1 if Lipinski.NumHDonors(m) <= 5 else 0     ha = 1 if Lipinski.NumHAcceptors(m) <= 10 else 0     num_pass = mw + logp + hd + ha     # Modified rule: incorrectly rejects molecules with even one violation     if num_pass == 4:           cnt += 1 print(cnt) What is wrong with this code?Single choice

A

The script incorrectly loads molecules because Chem.SDMolSupplier("molecules.sdf") does not return a list.

B

It incorrectly calculates molecular weight using AllChem.CalcExactMolWt(m), which is not an RDKit function.

C

It does not allow for one violation of the four criteria, which contradicts the rule’s original intent.

D

The code should be using >= instead of <= in the threshold conditions.

E

The code should count the number of violations instead of the number of passing criteria.

Log in for full answers

We've collected over 50,000 authentic original questions and detailed explanations from around the globe. Log in now and get instant access to the answers!

More Practical Tools for Students Powered by AI Study Helper

Join us and instantly unlock extensive past papers & exclusive solutions to get a head start on your studies!