官能团与片段识别器。 对分子图进行模式匹配,将分子"拆解"为预定义的基团和片段。
FunctionalGroupDetector
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| Detect | 1 | 对分子进行完整拆解,返回所有识别到的基团和片段。 |
| FindAllRings | 1 | 查找分子中所有的环(最小环集合)。 使用 DFS 从每个原子出发搜索回到自身的路径,限制最大环大小为8。 |
| FindRingsDFS | 1 | DFS 递归搜索环 |
| CanonicalRingKey | 1 | 生成环的规范化键,用于去重(旋转和翻转无关) |
| GetDoubleBondedNeighbor | 1 | 获取指定原子的第一个双键邻居原子序号(不存在返回-1) |
| GetTripleBondedNeighbor | 1 | 获取指定原子的第一个三键邻居原子序号(不存在返回-1) |
| IsAvailable | 1 | 判断原子是否未被使用(未被已识别的基团占用) |
| AddGroup | 1 | 添加一个识别到的官能团,并标记其原子为已使用 |
| DetectAromaticRings | 1 | 识别芳香环(苯环、吡啶等)。 条件:环大小为5或6,所有原子均为芳香原子。 |
| DetectCycloalkanes | 1 | 识别环烷烃(环己烷、环戊烷等)。 条件:环大小3-7,所有原子均为脂肪族碳,且无双键/三键。 |
| DetectHeterocycles | 1 | 识别杂环(非芳香的含杂原子环,如四氢呋喃、吡咯烷等)。 条件:环大小3-7,含至少一个杂原子,所有原子非芳香。 |
| DetectCarboxylicAcid | 1 | 识别羧基 -COOH。 模式:C 同时连接 =O 和 -OH(O 有氢)。 |
| DetectEster | 1 | 识别酯基 -COO-。 模式:C 连接 =O 和 -O-C(O 无氢,连接另一个碳)。 |
| DetectAldehyde | 1 | 识别醛基 -CHO。 模式:C 连接 =O,且 C 有至少1个氢(即 C-H)。 |
| DetectKetone | 1 | 识别酮基 >C=O。 模式:C 连接 =O,且 C 连接2个碳取代基,无氢。 |
| DetectCarbonyl | 1 | 识别羰基 C=O(未被以上基团覆盖的残留羰基)。 |
| DetectHydroxyl | 1 | 识别羟基 -OH。 模式:O 连接到碳,且有至少1个氢。 |
| DetectEther | 1 | 识别醚键 -O-。 模式:O 连接2个碳,无氢。 |
| DetectPeroxide | 1 | 识别过氧键 -O-O-。 模式:两个 O 直接相连。 |
| DetectAmide | 1 | 识别酰胺基 -CONH-。 模式:C 连接 =O 和 N。 |
| DetectNitro | 1 | 识别硝基 -NO2。 模式:N 连接2个以上 O,其中至少1个为双键。 |
| DetectNitrile | 1 | 识别氰基 -C#N。 模式:C 通过三键连接 N。 |
| DetectAzo | 1 | 识别偶氮基 -N=N-。 模式:两个 N 通过双键相连。 |
| DetectImine | 1 | 识别亚胺基 C=N。 模式:C 通过双键连接 N(未被酰胺等覆盖的)。 |
| DetectAmine | 1 | 识别胺基 -NH2, -NH-, >N-。 根据氮原子上的氢数和碳取代基数区分伯/仲/叔胺。 |
| DetectSulfonicAcid | 1 | 识别磺酸基 -SO3H。 模式:S 连接3个以上 O,其中至少2个为双键。 |
| DetectSulfonyl | 1 | 识别砜基 -SO2-。 模式:S 连接2个双键 O(未被磺酸基覆盖)。 |
| DetectSulfoxide | 1 | 识别亚砜基 -S=O。 模式:S 连接1个双键 O(未被以上覆盖)。 |
| DetectThiol | 1 | 识别巯基 -SH。 模式:S 有至少1个氢。 |
| DetectThioether | 1 | 识别硫醚键 -S-。 模式:S 连接2个碳,无氢,无双键。 |
| DetectAlkyne | 1 | 识别炔键 -C#C-。 模式:两个 C 通过三键相连。 |
| DetectAlkene | 1 | 识别烯键 -C=C-。 模式:两个 C 通过双键相连(非芳香,非羰基等)。 |
| DetectMethyl | 1 | 识别甲基 -CH3。 模式:C 有3个氢,且连接1个非氢原子。 |
| DetectMethylene | 1 | 识别亚甲基 -CH2-。 模式:C 有2个氢,连接2个非氢原子。 |
| DetectMethine | 1 | 识别次甲基 =CH-。 模式:C 有1个氢,连接3个非氢原子。 |
| DetectHalides | 1 | 识别卤素 -F, -Cl, -Br, -I。 |
03 Members
对分子进行完整拆解,返回所有识别到的基团和片段。
| Name | Type | Description |
|---|---|---|
mol | SmilesMolecule | 已解析的分子图 |
识别到的官能团和片段列表
查找分子中所有的环(最小环集合)。 使用 DFS 从每个原子出发搜索回到自身的路径,限制最大环大小为8。
Int32, Int32, List(Of Int32), HashSet(Of Int32), List(Of List(Of Int32)), HashSet(Of String), Int32, Int32)DFS 递归搜索环
List(Of Int32))生成环的规范化键,用于去重(旋转和翻转无关)
Int32)获取指定原子的第一个双键邻居原子序号(不存在返回-1)
Int32)获取指定原子的第一个三键邻居原子序号(不存在返回-1)
Int32)判断原子是否未被使用(未被已识别的基团占用)
添加一个识别到的官能团,并标记其原子为已使用
List(Of FunctionalGroup))识别芳香环(苯环、吡啶等)。 条件:环大小为5或6,所有原子均为芳香原子。
List(Of FunctionalGroup))识别环烷烃(环己烷、环戊烷等)。 条件:环大小3-7,所有原子均为脂肪族碳,且无双键/三键。
List(Of FunctionalGroup))识别杂环(非芳香的含杂原子环,如四氢呋喃、吡咯烷等)。 条件:环大小3-7,含至少一个杂原子,所有原子非芳香。
List(Of FunctionalGroup))识别羧基 -COOH。 模式:C 同时连接 =O 和 -OH(O 有氢)。
List(Of FunctionalGroup))识别酯基 -COO-。 模式:C 连接 =O 和 -O-C(O 无氢,连接另一个碳)。
List(Of FunctionalGroup))识别醛基 -CHO。 模式:C 连接 =O,且 C 有至少1个氢(即 C-H)。
List(Of FunctionalGroup))识别酮基 >C=O。 模式:C 连接 =O,且 C 连接2个碳取代基,无氢。
List(Of FunctionalGroup))识别羰基 C=O(未被以上基团覆盖的残留羰基)。
List(Of FunctionalGroup))识别羟基 -OH。 模式:O 连接到碳,且有至少1个氢。
List(Of FunctionalGroup))识别醚键 -O-。 模式:O 连接2个碳,无氢。
List(Of FunctionalGroup))识别过氧键 -O-O-。 模式:两个 O 直接相连。
List(Of FunctionalGroup))识别酰胺基 -CONH-。 模式:C 连接 =O 和 N。
List(Of FunctionalGroup))识别硝基 -NO2。 模式:N 连接2个以上 O,其中至少1个为双键。
List(Of FunctionalGroup))识别氰基 -C#N。 模式:C 通过三键连接 N。
List(Of FunctionalGroup))识别偶氮基 -N=N-。 模式:两个 N 通过双键相连。
List(Of FunctionalGroup))识别亚胺基 C=N。 模式:C 通过双键连接 N(未被酰胺等覆盖的)。
List(Of FunctionalGroup))识别胺基 -NH2, -NH-, >N-。 根据氮原子上的氢数和碳取代基数区分伯/仲/叔胺。
List(Of FunctionalGroup))识别磺酸基 -SO3H。 模式:S 连接3个以上 O,其中至少2个为双键。
List(Of FunctionalGroup))识别砜基 -SO2-。 模式:S 连接2个双键 O(未被磺酸基覆盖)。
List(Of FunctionalGroup))识别亚砜基 -S=O。 模式:S 连接1个双键 O(未被以上覆盖)。
List(Of FunctionalGroup))识别巯基 -SH。 模式:S 有至少1个氢。
List(Of FunctionalGroup))识别硫醚键 -S-。 模式:S 连接2个碳,无氢,无双键。
List(Of FunctionalGroup))识别炔键 -C#C-。 模式:两个 C 通过三键相连。
List(Of FunctionalGroup))识别烯键 -C=C-。 模式:两个 C 通过双键相连(非芳香,非羰基等)。
List(Of FunctionalGroup))识别甲基 -CH3。 模式:C 有3个氢,且连接1个非氢原子。
List(Of FunctionalGroup))识别亚甲基 -CH2-。 模式:C 有2个氢,连接2个非氢原子。
List(Of FunctionalGroup))识别次甲基 =CH-。 模式:C 有1个氢,连接3个非氢原子。
List(Of FunctionalGroup))识别卤素 -F, -Cl, -Br, -I。