smartsPatts = { 'MACCSFP0': (None, 0), # ignore, Bit 0 is a placeholder and should be ignored: https://github.com/rdkit/rdkit/issues/1726 'MACCSFP1': ('?', 0), 'MACCSFP2': ('[#104]', 0), 'MACCSFP3': ('[#32,#33,#34,#50,#51,#52,#82,#83,#84]', 0), 'MACCSFP4': ('[Ac,Th,Pa,U,Np,Pu,Am,Cm,Bk,Cf,Es,Fm,Md,No,Lr]', 0), 'MACCSFP5': ('[Sc,Ti,Y,Zr,Hf]', 0), 'MACCSFP6': ('[La,Ce,Pr,Nd,Pm,Sm,Eu,Gd,Tb,Dy,Ho,Er,Tm,Yb,Lu]', 0), 'MACCSFP7': ('[V,Cr,Mn,Nb,Mo,Tc,Ta,W,Re]', 0), 'MACCSFP8': ('[!#6;!#1]1~*~*~*~1', 0), 'MACCSFP9': ('[Fe,Co,Ni,Ru,Rh,Pd,Os,Ir,Pt]', 0), 'MACCSFP10': ('[Be,Mg,Ca,Sr,Ba,Ra]', 0), 'MACCSFP11': ('*1~*~*~*~1', 0), 'MACCSFP12': ('[Cu,Zn,Ag,Cd,Au,Hg]', 0), 'MACCSFP13': ('[#8]~[#7](~[#6])~[#6]', 0), 'MACCSFP14': ('[#16]-[#16]', 0), 'MACCSFP15': ('[#8]~[#6](~[#8])~[#8]', 0), 'MACCSFP16': ('[!#6;!#1]1~*~*~1', 0), 'MACCSFP17': ('[#6]#[#6]', 0), 'MACCSFP18': ('[#5,#13,#31,#49,#81]', 0), 'MACCSFP19': ('*1~*~*~*~*~*~*~1', 0), 'MACCSFP20': ('[#14]', 0), 'MACCSFP21': ('[#6]=[#6](~[!#6;!#1])~[!#6;!#1]', 0), 'MACCSFP22': ('*1~*~*~1', 0), 'MACCSFP23': ('[#7]~[#6](~[#8])~[#8]', 0), 'MACCSFP24': ('[#7]-[#8]', 0), 'MACCSFP25': ('[#7]~[#6](~[#7])~[#7]', 0), 'MACCSFP26': ('[#6]=;@[#6](@*)@*', 0), 'MACCSFP27': ('[I]', 0), 'MACCSFP28': ('[!#6;!#1]~[CH2]~[!#6;!#1]', 0), 'MACCSFP29': ('[#15]', 0), 'MACCSFP30': ('[#6]~[!#6;!#1](~[#6])(~[#6])~*', 0), 'MACCSFP31': ('[!#6;!#1]~[F,Cl,Br,I]', 0), 'MACCSFP32': ('[#6]~[#16]~[#7]', 0), 'MACCSFP33': ('[#7]~[#16]', 0), 'MACCSFP34': ('[CH2]=*', 0), 'MACCSFP35': ('[Li,Na,K,Rb,Cs,Fr]', 0), 'MACCSFP36': ('[#16R]', 0), 'MACCSFP37': ('[#7]~[#6](~[#8])~[#7]', 0), 'MACCSFP38': ('[#7]~[#6](~[#6])~[#7]', 0), 'MACCSFP39': ('[#8]~[#16](~[#8])~[#8]', 0), 'MACCSFP40': ('[#16]-[#8]', 0), 'MACCSFP41': ('[#6]#[#7]', 0), 'MACCSFP42': ('F', 0), 'MACCSFP43': ('[!#6;!#1;!H0]~*~[!#6;!#1;!H0]', 0), 'MACCSFP44': ('?', 0), 'MACCSFP45': ('[#6]=[#6]~[#7]', 0), 'MACCSFP46': ('Br', 0), 'MACCSFP47': ('[#16]~*~[#7]', 0), 'MACCSFP48': ('[#8]~[!#6;!#1](~[#8])(~[#8])', 0), 'MACCSFP49': ('[!+0]', 0), 'MACCSFP50': ('[#6]=[#6](~[#6])~[#6]', 0), 'MACCSFP51': ('[#6]~[#16]~[#8]', 0), 'MACCSFP52': ('[#7]~[#7]', 0), 'MACCSFP53': ('[!#6;!#1;!H0]~*~*~*~[!#6;!#1;!H0]', 0), 'MACCSFP54': ('[!#6;!#1;!H0]~*~*~[!#6;!#1;!H0]', 0), 'MACCSFP55': ('[#8]~[#16]~[#8]', 0), 'MACCSFP56': ('[#8]~[#7](~[#8])~[#6]', 0), 'MACCSFP57': ('[#8R]', 0), 'MACCSFP58': ('[!#6;!#1]~[#16]~[!#6;!#1]', 0), 'MACCSFP59': ('[#16]!:*:*', 0), 'MACCSFP60': ('[#16]=[#8]', 0), 'MACCSFP61': ('*~[#16](~*)~*', 0), 'MACCSFP62': ('*@*!@*@*', 0), 'MACCSFP63': ('[#7]=[#8]', 0), 'MACCSFP64': ('*@*!@[#16]', 0), 'MACCSFP65': ('c:n', 0), 'MACCSFP66': ('[#6]~[#6](~[#6])(~[#6])~*', 0), 'MACCSFP67': ('[!#6;!#1]~[#16]', 0), 'MACCSFP68': ('[!#6;!#1;!H0]~[!#6;!#1;!H0]', 0), 'MACCSFP69': ('[!#6;!#1]~[!#6;!#1;!H0]', 0), 'MACCSFP70': ('[!#6;!#1]~[#7]~[!#6;!#1]', 0), 'MACCSFP71': ('[#7]~[#8]', 0), 'MACCSFP72': ('[#8]~*~*~[#8]', 0), 'MACCSFP73': ('[#16]=*', 0), 'MACCSFP74': ('[CH3]~*~[CH3]', 0), 'MACCSFP75': ('*!@[#7]@*', 0), 'MACCSFP76': ('[#6]=[#6](~*)~*', 0), 'MACCSFP77': ('[#7]~*~[#7]', 0), 'MACCSFP78': ('[#6]=[#7]', 0), 'MACCSFP79': ('[#7]~*~*~[#7]', 0), 'MACCSFP80': ('[#7]~*~*~*~[#7]', 0), 'MACCSFP81': ('[#16]~*(~*)~*', 0), 'MACCSFP82': ('*~[CH2]~[!#6;!#1;!H0]', 0), 'MACCSFP83': ('[!#6;!#1]1~*~*~*~*~1', 0), 'MACCSFP84': ('[NH2]', 0), 'MACCSFP85': ('[#6]~[#7](~[#6])~[#6]', 0), 'MACCSFP86': ('[C;H2,H3][!#6;!#1][C;H2,H3]', 0), 'MACCSFP87': ('[F,Cl,Br,I]!@*@*', 0), 'MACCSFP88': ('[#16]', 0), 'MACCSFP89': ('[#8]~*~*~*~[#8]', 0), 'MACCSFP90': ( '[$([!#6;!#1;!H0]~*~*~[CH2]~*),$([!#6;!#1;!H0;R]1@[R]@[R]@[CH2;R]1),$([!#6;!#1;!H0]~[R]1@[R]@[CH2;R]1)]', 0), 'MACCSFP91': ( '[$([!#6;!#1;!H0]~*~*~*~[CH2]~*),$([!#6;!#1;!H0;R]1@[R]@[R]@[R]@[CH2;R]1),$([!#6;!#1;!H0]~[R]1@[R]@[R]@[CH2;R]1),$([!#6;!#1;!H0]~*~[R]1@[R]@[CH2;R]1)]', 0), 'MACCSFP92': ('[#8]~[#6](~[#7])~[#6]', 0), 'MACCSFP93': ('[!#6;!#1]~[CH3]', 0), 'MACCSFP94': ('[!#6;!#1]~[#7]', 0), 'MACCSFP95': ('[#7]~*~*~[#8]', 0), 'MACCSFP96': ('*1~*~*~*~*~1', 0), 'MACCSFP97': ('[#7]~*~*~*~[#8]', 0), 'MACCSFP98': ('[!#6;!#1]1~*~*~*~*~*~1', 0), 'MACCSFP99': ('[#6]=[#6]', 0), 'MACCSFP100': ('*~[CH2]~[#7]', 0), 'MACCSFP101': ( '[$([R]@1@[R]@[R]@[R]@[R]@[R]@[R]@[R]1),$([R]@1@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]1),$([R]@1@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]1),$([R]@1@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]1),$([R]@1@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]1),$([R]@1@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]1),$([R]@1@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]@[R]1)]', 0), 'MACCSFP102': ('[!#6;!#1]~[#8]', 0), 'MACCSFP103': ('Cl', 0), 'MACCSFP104': ('[!#6;!#1;!H0]~*~[CH2]~*', 0), 'MACCSFP105': ('*@*(@*)@*', 0), 'MACCSFP106': ('[!#6;!#1]~*(~[!#6;!#1])~[!#6;!#1]', 0), 'MACCSFP107': ('[F,Cl,Br,I]~*(~*)~*', 0), 'MACCSFP108': ('[CH3]~*~*~*~[CH2]~*', 0), 'MACCSFP109': ('*~[CH2]~[#8]', 0), 'MACCSFP110': ('[#7]~[#6]~[#8]', 0), 'MACCSFP111': ('[#7]~*~[CH2]~*', 0), 'MACCSFP112': ('*~*(~*)(~*)~*', 0), 'MACCSFP113': ('[#8]!:*:*', 0), 'MACCSFP114': ('[CH3]~[CH2]~*', 0), 'MACCSFP115': ('[CH3]~*~[CH2]~*', 0), 'MACCSFP116': ('[$([CH3]~*~*~[CH2]~*),$([CH3]~*1~*~[CH2]1)]', 0), 'MACCSFP117': ('[#7]~*~[#8]', 0), 'MACCSFP118': ('[$(*~[CH2]~[CH2]~*),$(*1~[CH2]~[CH2]1)]', 1), 'MACCSFP119': ('[#7]=*', 0), 'MACCSFP120': ('[!#6;R]', 1), 'MACCSFP121': ('[#7;R]', 0), 'MACCSFP122': ('*~[#7](~*)~*', 0), 'MACCSFP123': ('[#8]~[#6]~[#8]', 0), 'MACCSFP124': ('[!#6;!#1]~[!#6;!#1]', 0), 'MACCSFP125': ('?', 0), 'MACCSFP126': ('*!@[#8]!@*', 0), 'MACCSFP127': ('*@*!@[#8]', 1), 'MACCSFP128': ( '[$(*~[CH2]~*~*~*~[CH2]~*),$([R]1@[CH2;R]@[R]@[R]@[R]@[CH2;R]1),$(*~[CH2]~[R]1@[R]@[R]@[CH2;R]1),$(*~[CH2]~*~[R]1@[R]@[CH2;R]1)]', 0), 'MACCSFP129': ('[$(*~[CH2]~*~*~[CH2]~*),$([R]1@[CH2]@[R]@[R]@[CH2;R]1),$(*~[CH2]~[R]1@[R]@[CH2;R]1)]', 0), 'MACCSFP130': ('[!#6;!#1]~[!#6;!#1]', 1), 'MACCSFP131': ('[!#6;!#1;!H0]', 1), 'MACCSFP132': ('[#8]~*~[CH2]~*', 0), 'MACCSFP133': ('*@*!@[#7]', 0), 'MACCSFP134': ('[F,Cl,Br,I]', 0), 'MACCSFP135': ('[#7]!:*:*', 0), 'MACCSFP136': ('[#8]=*', 1), 'MACCSFP137': ('[!C;!c;R]', 0), 'MACCSFP138': ('[!#6;!#1]~[CH2]~*', 1), 'MACCSFP139': ('[O;!H0]', 0), 'MACCSFP140': ('[#8]', 3), 'MACCSFP141': ('[CH3]', 2), 'MACCSFP142': ('[#7]', 1), 'MACCSFP143': ('*@*!@[#8]', 0), 'MACCSFP144': ('*!:*:*!:*', 0), 'MACCSFP145': ('*1~*~*~*~*~*~1', 1), 'MACCSFP146': ('[#8]', 2), 'MACCSFP147': ('[$(*~[CH2]~[CH2]~*),$([R]1@[CH2;R]@[CH2;R]1)]', 0), 'MACCSFP148': ('*~[!#6;!#1](~*)~*', 0), 'MACCSFP149': ('[C;H3,H4]', 1), 'MACCSFP150': ('*!@*@*!@*', 0), 'MACCSFP151': ('[#7;!H0]', 0), 'MACCSFP152': ('[#8]~[#6](~[#6])~[#6]', 0), 'MACCSFP153': ('[!#6;!#1]~[CH2]~*', 0), 'MACCSFP154': ('[#6]=[#8]', 0), 'MACCSFP155': ('*!@[CH2]!@*', 0), 'MACCSFP156': ('[#7]~*(~*)~*', 0), 'MACCSFP157': ('[#6]-[#8]', 0), 'MACCSFP158': ('[#6]-[#7]', 0), 'MACCSFP159': ('[#8]', 1), 'MACCSFP160': ('[C;H3,H4]', 0), 'MACCSFP161': ('[#7]', 0), 'MACCSFP162': ('a', 0), 'MACCSFP163': ('*1~*~*~*~*~*~1', 0), 'MACCSFP164': ('[#8]', 0), 'MACCSFP165': ('[R]', 0), 'MACCSFP166': ('?', 0)}