ó áS6]c@soddlZddlmZddlmZd„Zd„Zd„Zd„Z d„Z d „Z d „Z dS( iÿÿÿÿN(tChem(tchaincs=ˆ|kr'tdjˆ|ƒƒ‚nt‡fd†|ƒS(Ns"input {0} not in allowable set{1}:cs ˆ|kS(N((ts(tx(sQ/Users/wentorng/Documents/DEEP_LEARNING/POCKET/Graph_CNN_cleanup/code/features.pyt s(t Exceptiontformattmap(Rt allowable_set((RsQ/Users/wentorng/Documents/DEEP_LEARNING/POCKET/Graph_CNN_cleanup/code/features.pytone_of_k_encodings cs/ˆ|kr|d‰nt‡fd†|ƒS(s9Maps inputs not in the allowable set to the last element.iÿÿÿÿcs ˆ|kS(N((R(R(sQ/Users/wentorng/Documents/DEEP_LEARNING/POCKET/Graph_CNN_cleanup/code/features.pyRs(R(RR((RsQ/Users/wentorng/Documents/DEEP_LEARNING/POCKET/Graph_CNN_cleanup/code/features.pytone_of_k_encoding_unk s  cCstt||||ƒƒS(N(tlistR(tmap_Atmap_Btmap_Ctmap_D((sQ/Users/wentorng/Documents/DEEP_LEARNING/POCKET/Graph_CNN_cleanup/code/features.pytadd_mapsc/Cs€|jƒdkrtgfS|jƒdkr8tgfS|jƒdkrTtgfStt|jƒddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.g,ƒt|jƒd/d0d1d2ddgƒt|jƒd/d0d1d2dgƒt|jƒd/d0d1d2ddgƒƒ}tt j ||j ƒgƒfSdS(3NiitCtNtOtStFtSitPtCltBrtMgtNatCatFetAstAltItBtVtKtTltYbtSbtSntAgtPdtCotSetTitZntHtLitGetCutAutNitCdtIntMntZrtCrtPttHgtPbtUnknowniiii( tGetImplicitValencetFalset GetDegreet GetTotalNumHsRR t GetSymbolR tTruetnptarrayt GetIsAromatic(tatomtsum_map((sQ/Users/wentorng/Documents/DEEP_LEARNING/POCKET/Graph_CNN_cleanup/code/features.pyt atom_featuress    !$!*cCss|jƒ}tj|tjjjk|tjjjk|tjjjk|tjjj k|j ƒ|j ƒgƒS(N( t GetBondTypeRCRDRtrdchemtBondTypetSINGLEtDOUBLEtTRIPLEtAROMATICtGetIsConjugatedtIsInRing(tbondtbt((sQ/Users/wentorng/Documents/DEEP_LEARNING/POCKET/Graph_CNN_cleanup/code/features.pyt bond_features(s  cCs5tjdƒ}|jƒ}|d}tt|ƒƒS(NtCCi(Rt MolFromSmilestGetAtomstlenRH(tmtalistta((sQ/Users/wentorng/Documents/DEEP_LEARNING/POCKET/Graph_CNN_cleanup/code/features.pytnum_atom_features1s  cCs6tjdƒ}tj|ƒtt|jƒdƒƒS(NRUi(RRVt SanitizeMolRXRTtGetBonds(t simple_mol((sQ/Users/wentorng/Documents/DEEP_LEARNING/POCKET/Graph_CNN_cleanup/code/features.pytnum_bond_features8s ( tnumpyRCtrdkitRt itertoolsRR R RRHRTR\R`(((sQ/Users/wentorng/Documents/DEEP_LEARNING/POCKET/Graph_CNN_cleanup/code/features.pyts