Skip to content

FragGen

xuetaoshi edited this page Apr 11, 2017 · 1 revision
  • Generate rule string based on fragmentation for dissociation detection.

    • The fragmentation definition consists of the following parts:

      1. Molecular connectivity. Similar to Gaussian connectiviy table, each line is in the following format: [atom label] [atom number 1] [bond length 1] [atom number 2] [bond length 2] ... Each line defines connectivity to the corresponding atom. The following example defines a ethane molecule:

         C
         H 1 1.10
         H 1 1.10
         H 1 1.10
         C 1 1.53
         H 5 1.10
         H 5 1.10
         H 5 1.10
        
      2. Fragmentation. This begins with a line in the following format:

        Channel 1: The signifier is "Channel" and can be changed by optional parameters. The next are two connectivity tables, separated by a blank line, that define two fragments. Note: at this point, only two fragments can be handled simultaneously. The following is an example for H + C2H5 dissociation:

         Channel 1:
         H
        
         C
         C 1 1.8
         H 1 3.0 2 3.0
         H 1 3.0 2 3.0
         H 1 3.0 2 3.0
         H 1 3.0 2 3.0
         H 1 3.0 2 3.0
        

        Please be noted the atom number here refers to the atom within that fragment, and the bond definition here has higher priority than the same bond in molecular connectivity definition. There could also be multiple channels.

    • The output rule string consists of lines of simple logic rules in the following format:
      [atom number 1]-[atom number 2] >(or <) [value 1]; [atom number 3]-[atom number 4] >(or <) [value 2]; ... or
      [atom number 5]-[atom number 6] >(or <) [value 3]; [atom number 7]-[atom number 8] >(or <) [value 4]; ... or ...
      The conditions separated by ";" (can be customized by parameter later on) will be joined by logical and, and the resulted conditions separated by "or" (cannot be customized) will then be joined by logical or.
      The following is an example:
      2-1 > 1.65;5-1 < 2.70 or 8-5 > 1.65;5-1 < 2.70
      This means the following condition: (bond between atom 1 and atom 2 is larger than 1.65 and bond between atom 5 and 1 is smaller than 2.7) or (bond between atom 8 and atom 5 is larger than 1.65 and bond between atom 5 and 1 is smaller than 2.7).
      Each line corresponds to a single dissociation channel.

    • The logic on which the generation of such rule string is based is to break all the existing bonds (defined by molecular connectivity section) between the two fragments (defined by fragmentation section) and maintain or form all the bonds within the fragments that were either defined by molecular connectivity section or by fragmentation section.
      Another important feature is that generated rule string will contain all possible combinations of fragmentation, since the fragments can be defined implicitly using only the atom symbols of its constituent atoms. Therefore, in the previous examples, there are 6 H + C2H5 fragmentation possibilities, all of which are considered when generating the output rule string.

  • Initialization: FraGen()
    Put attribute FraGen.frag_array in name space.

  • FragGen.frag_array = None
    This attribute contains the raw fragment tuples, wrapped in a multi-dimensional python list.

  • FragGen.rule_gen(def_str, identifier="Channel", break_factor=1.5, remain_factor=1.5, delim=";", precision=2)
    This method generates the rule string from molecular and fragmentation connectivity definitions.

    • Parameters:
      • def_str: string first argument. The input string that contains molecular and fragmentation connectivity definitions.
      • identifier: string
        optional, default="Channel". The string that signifies the fragmentation definition corresponding to a new channel.
      • break_factor: positive float, positive integer
        optional, default=1.5. The multiplier for breaking bonds. If the bond length of such bond is l_bond, the rule string will be atom1-atom2 > break_factor * l_bond.
      • remain_factor: positive float, positive integer
        optional, default=1.5. The multiplier for remaining or newly formed bonds. If the bond length of such bond is l_bond, the rule string will be atom1-atom2 < remain_factor * l_bond.
      • delim: string
        optional, default=";". The delimiter that separates conditions intended to be joined by logical and.
      • precision: positive integer
        optional, default=2. The number of digits of the float values in the output rule string.
    • Returns: rule string that could be used by the DissociationDetect(UtilityPackage, FragGen) class.

Clone this wiki locally