본문 바로가기

AI 독성예측

[AI 독성예측] rdkit에서 사용할 수 있는 molecular Descriptor에 대하여

www.rdkit.org/docs/GettingStartedInPython.html#descriptor-calculation

 

Getting Started with the RDKit in Python — The RDKit 2020.09.1 documentation

[$([O,S;H1;v2;!$(*-*=[O,N,P,S])]),$([O,S;H0;v2]),$([O,S;-]),$([N;v3;!$(N-*=[O,N,P,S])]),n&H0&+0,$([o,s;+0;!$([o,s]:n);!$([o,s]:c:n)])]

www.rdkit.org

www.rdkit.org/docs/GettingStartedInPython.html#list-of-available-descriptors

 

Getting Started with the RDKit in Python — The RDKit 2020.09.1 documentation

[$([O,S;H1;v2;!$(*-*=[O,N,P,S])]),$([O,S;H0;v2]),$([O,S;-]),$([N;v3;!$(N-*=[O,N,P,S])]),n&H0&+0,$([o,s;+0;!$([o,s]:n);!$([o,s]:c:n)])]

www.rdkit.org

List of Available Descriptors

여러가지의 디스크립터들이 있는데 어떤것들을 쓸 것인지 생각해 보아야 한다.

벤치마크 논문에서는 rdkit desciprtor, MACCS key, ECFP(Extended Connectivity Fingerprint) 이 3가지 종류로 2000개 이상의 feature를  생성했다고 한다. 

tox21DataChallenge에서 좋은 성적을 낸 JKU대학 팀은

272,776 "sparse feature"를  (ECFP10, DFS6, DFS8;stored in Matrix Market Format)로부터 얻얻고

801 "dense features" 를 (molecular weight, solubility or surface area)와 같은 chemcial descriptor로부터 얻었다.

우리 연구에서는 한 compound에 대한 feature를 어떻게 만드는 것이 좋을까?

논문들을 살펴보면 ECFP와 Morgan이 가장 많이 쓰이는 것을 볼 수 있다.  

rdkit문서에서는 ECFP가 있지는 않은 것 같고 Morgan/Circular가 ECFP/FCFP fingerprints와 비슷하다고 한다. 

ECFP는 Chemistry Development Kit에서 얻을수 있다고 한다. CDK를 활용하는 방법은 아래와 같은 방법이 있다.

1. List of Available Descriptors의 모든 discriptor로 총 몇개의 feature를 만들 수 있는가?

122개의 Descriptor들이 있다.

['BCUT2D_CHGHI', 'BCUT2D_CHGLO', 'BCUT2D_LOGPHI', 'BCUT2D_LOGPLOW', 'BCUT2D_MRHI', 'BCUT2D_MRLOW', 'BCUT2D_MWHI', 'BCUT2D_MWLOW', 'BalabanJ', 'BertzCT', 'Chi0', 'Chi0n', 'Chi0v', 'Chi1', 'Chi1n', 'Chi1v', 'Chi2n', 'Chi2v', 'Chi3n', 'Chi3v', 'Chi4n', 'Chi4v', 'EState_VSA1', 'EState_VSA10', 'EState_VSA11', 'EState_VSA2', 'EState_VSA3', 'EState_VSA4', 'EState_VSA5', 'EState_VSA6', 'EState_VSA7', 'EState_VSA8', 'EState_VSA9', 'ExactMolWt', 'FpDensityMorgan1', 'FpDensityMorgan2', 'FpDensityMorgan3', 'FractionCSP3', 'HallKierAlpha', 'HeavyAtomCount', 'HeavyAtomMolWt', 'Ipc', 'Kappa1', 'Kappa2', 'Kappa3', 'LabuteASA', 'MaxAbsEStateIndex', 'MaxAbsPartialCharge', 'MaxEStateIndex', 'MaxPartialCharge', 'MinAbsEStateIndex', 'MinAbsPartialCharge', 'MinEStateIndex', 'MinPartialCharge', 'MolLogP', 'MolMR', 'MolWt', 'NHOHCount', 'NOCount', 'NumAliphaticCarbocycles', 'NumAliphaticHeterocycles', 'NumAliphaticRings', 'NumAromaticCarbocycles', 'NumAromaticHeterocycles', 'NumAromaticRings', 'NumHAcceptors', 'NumHDonors', 'NumHeteroatoms', 'NumRadicalElectrons', 'NumRotatableBonds', 'NumSaturatedCarbocycles', 'NumSaturatedHeterocycles', 'NumSaturatedRings', 'NumValenceElectrons', 'PEOE_VSA1', 'PEOE_VSA10', 'PEOE_VSA11', 'PEOE_VSA12', 'PEOE_VSA13', 'PEOE_VSA14', 'PEOE_VSA2', 'PEOE_VSA3', 'PEOE_VSA4', 'PEOE_VSA5', 'PEOE_VSA6', 'PEOE_VSA7', 'PEOE_VSA8', 'PEOE_VSA9', 'RingCount', 'SMR_VSA1', 'SMR_VSA10', 'SMR_VSA2', 'SMR_VSA3', 'SMR_VSA4', 'SMR_VSA5', 'SMR_VSA6', 'SMR_VSA7', 'SMR_VSA8', 'SMR_VSA9', 'SlogP_VSA1', 'SlogP_VSA10', 'SlogP_VSA11', 'SlogP_VSA12', 'SlogP_VSA2', 'SlogP_VSA3', 'SlogP_VSA4', 'SlogP_VSA5', 'SlogP_VSA6', 'SlogP_VSA7', 'SlogP_VSA8', 'SlogP_VSA9', 'TPSA', 'VSA_EState1', 'VSA_EState10', 'VSA_EState2', 'VSA_EState3', 'VSA_EState4', 'VSA_EState5', 'VSA_EState6', 'VSA_EState7', 'VSA_EState8', 'VSA_EState9']

실습코드

colab.research.google.com/drive/1YMhR9Qmwqnj4gak_XpLX9IfNth1HyeSI?usp=sharing

 

Google Colaboratory

 

colab.research.google.com