Process Codes Available for Use in Name Generation - IntegratedBreedingPlatform/Documentation GitHub Wiki

Generation of names during advance processes in the BMS is based on rules that are managed in the Breeding Methods table. When names are generated for crosses and advanced lines, the system reads details from a series of columns in the Methods table and processes them to generate the appropriate names. Additional background on how names are generated can be found on this page

The details stored in the Methods table primarily consist of process codes, pre-defined codes that are associated with specific processing logic. When the BMS rules engine reads a process code, it will interpret it based on the defined logic and use the result in the generated name. These codes are intended to be used in these four columns in the Methods table:

  • Separator
  • Prefix
  • Count
  • Suffix

The table below lists the process codes that are currently supported in the BMS. Instructions for how to configure the Methods table to customize name generation rules are available here.

Process Code Used in Definition
[BRACKETS] Separator Checks to see if the source name is a cross string without brackets (and the source is generative). Can be combined with a dash if this is required for the naming convention. If so, brackets are added around the cross string. If a dash is included, the dash will be appended after the closing bracket. Examples: 1) Input String before naming rule is applied: (CML172/CML493)-S1B-S2B-8-B-4-2/CML161; 2) Resulting String after naming rule is applied: ((CML172/CML493)-S1B-S2B-8-B-4-2/CML161**)**-DH147
[FIRST] Prefix Looks for the first : in the source name, truncates the name after that point, and appends whatever is requested by the remaining rules for the method.
[SEASON] Prefix Looks for a season variable (CROP_SESN_MONTH first, then CROP_SEASON, then CROP_SESNCD) in the nursery or trial being advanced, and inserts it if found. If there is no season variable available, the process code will insert YYYYMM into the name.
[COUNT] Prefix This process code handles the grouping in cases where there are more than three consecutive "-B" or "-#" in the name. In such cases, * must be used for grouping. The code instructs the system to add the character indicated depending on the termination of the source name. It will be used in conjunction with two input characters, the first of which is the character to be counted, and the second of which is the character to be used to note the grouping. For example, (B[COUNT])* will cause names with 1, 2 or 3 B characters to have -B, -BB, or -BBB, respectively, inserted; names with 4 or more B characters will have -B4, -B5, etc. inserted. (#*[COUNT]) will do the same for names with 1, 2, or 3 # characters.
[CIMCRS] Prefix This process code construct the prefix portion of cross names. This code calls a key generation service that constructs the prefix based on a format specified in a configuration file. This allows the elements of the prefix and their order to be customized. Additional details on how to customize the prefix are available here.
[NUMBER] Count This code is used for bulking methods. It appends the number from the “plants selected’ variable to the name.
[SEQUENCE] Count This code is primarily used for non-bulking methods. It causes the insertion of the next available count number in the count field of the otherwise completed name as the application processed each “plant selected”. (Note it is possible that the first “plant selected” gets a count greater than 1 if some germplasm with that name pattern already exist.) This code can also be used for bulking methods. In this case the system looks in the database for the next value, but only for the one strain advanced.
[LABBR] Suffix This code looks for a location abbreviation in the current advancement context and inserts it if found.
[CLABBR] Suffix This code inserts the location abbreviation when the germplasm location changes between the source and the current generation of the line but not otherwise.
[BC] Suffix This code looks to see if the female or the male is the recurrent parent and adds F or M respectively. If a character is included before the process code in the methods table, then it will be included in the output string. For example, (B[BC]) will result in either BF or BM being inserted as appropriate.
[SELTRAIT] Suffix This process code looks for a variable in the nursery at either the environment or plot level that has the property SELECTION CRITERIA. If such a variable is found, the system will insert the value of the variable for the nursery, if the variable is at the ENV level; the the value of the variable for the current germplasm, if the variable is at the PLOT level; null if the variable is not found, or the variable has no value.
[ATTRSC.{cvterm_id}] Prefix, Suffix This process code looks for the value that the specified attribute has in the inmediate source given a germplasm that is being advanced. If this attribute is not defined for such germplasm, empty will be retrieved. It can be used in Derivative and Maintenance breeding methods. Notice that ATTRIBUTE_NAME is customizable and this process code can be added in Prefix and Suffix as many times as needed
[ATTRMP.{cvterm_id}] Prefix, Suffix This process code looks for the value that the specified attribute in the male parent of the group source (the cross) given a germplasm that is being generated trough advances or crosses. If this attribute is not defined for such germplasm, empty will be retrieved. It can be used in Derivative and Maintenance breeding methods. Notice that ATTRIBUTE_NAME is customizable and this process code can be added in Prefix and Suffix as many times as needed
[ATTRFP.{cvterm_id}] Prefix, Suffix This process code looks for the value that the specified attribute in the female parent of the group source (the cross) given a germplasm that is being generated trough advances or crosses. If this attribute is not defined for such germplasm, empty will be retrieved. It can be used in Derivative and Maintenance breeding methods. Notice that ATTRIBUTE_NAME is customizable and this process code can be added in Prefix and Suffix as many times as needed
(v13) [PADSEQ.{# of digits}] Count This process code is similar to [SEQUENCE] but it accepts the number of digits of the sequence, padding with zeros on the left if necessary. This process code will still support the sequence even if it surpasses the configured # of digits.