Home > Module development > 4.Module category > Sequence optimization

Sequence optimization


A module developer can classify a new module to 'Sequence optimization' when the module is relevant to sequence optimization such as codon optimization, UTR sequence optimization, or intron sequence optimization. In order to develop optimization algorithm, you will have to use a specialized class (class name: GeneConstruct) to access to a memory array of gene constructs and gene analysis table. In this section, we show a short demonstration how to develop 'Sequence optimization' module. For more details, check 'Class & module' section.


o Gene construct array and cell address

In the below figure, the first column ("#") represents gene constructs and each column includes information of a gene construct including gene component.

1. The first row means the first gene construct and each cell ("[Gene] CAI", "[Gene] Mismatched DNA", ...,  or "[Gene] mRNA -> Structure") represents an individual analysis result of the first gene construct. Their cell addresses (row, column) are "(1,1)", "(1,2)", "(1,3)", ..., and "(1,7)", respectively. Please remember that gene construct number (#) is an essential index if you want to specify a certain gene construct to read and write sequence data.

2. For example, in case of "49.162", cell address is (4,3) where number 4 means 4th gene construct and number 3 means 3rd column.

3. In case of "40.1961", cell address is (6,5).


The cell address is also important when you access to the table.



o How to develop module


All modules are developed in the 'Module Editor' window


Step 1: Create module

1. Click on the 'Module Library' in the 'Tool' menu

2. Click on the 'Add new Module' button to create a new module

3. Or, just choose the predefined module: 'Sequence optimization'

4. And then click on the 'Edit Module' button



Step 2: Edit module

1. Choose 'Sequence optimization'

2. Check the example code

3. Click on the 'Test run' button to run the code


Here is a full source code (VBScript version)

Sub Main()
  Source_GeneConstruct=GeneConstruct.CurrentConstructIndex            '<---- Read current gene construct number
ReturnError=GeneConstruct.AddNewConstruct_FromParent(Source_GeneConstruct)    '<---- Generate new construct as copy
  Target_GeneConstruct=GeneConstruct.ConstructCount                       '<---- Total number of gene construct
  Target_GeneComponent=2                                                                  '<---- The second gene component
  TargetSequence=GeneConstruct.ParameterValue(Target_GeneConstruct,Target_GeneComponent,"Modified DNA")
                                                                                                              '<---- Read sequence information
  OptimizedSequence=OptimizeSeq(TargetSequence)                             '<---- Call another function titled 'OptimizedSeq'
  GeneConstruct.ParameterValue(Target_GeneConstruct,Target_GeneComponent,"Modified DNA")=OptimizedSequence
                                                                                                              '<---- Write optimized sequence

  ReturnError=GeneConstruct.Update_ConstructTable(Target_GeneConstruct)     '<---- Update table
End Sub

Function OptimizeSeq(SourceSequence)
'Add any algorithm here...                                                                        '<---- You can modify SourceSequence

  OptimizeSeq=SourceSequence                                                              '<---- Return optimized sequence
End Function



   Overall function of the code is to copy a source gene construct to a new gene construct without modification.



Step 3: Test run

1. Choose 6th gene construct

2. Click on the 'Test run' button

3. A new gene construct will be shown in the 11th rows. In other words, the module copied the 6th gene construct to the 11th gene construct

(4) In order to register the module to a proper location, check on 'Registration'.


Step 4: Use module

1.Once a module registered, you can see a new module in the 'Algorithm' selection box.

2. After adding 'Sequence optimization (Sample Script.vgs)', click on the 'Run' button to start optimization.

3. As shown in the Step 3, it will work exactly the same way as 'Test run' button on 'Module Editor' window




o Specialize class: GeneConstruct


The class, GeneConstruct, contains many modules to access to the gene construct memory array and gene analysis table. For more details, check 'Class & module' section in the left menu.


Here is an example that show how to read cell value of the Gene optimization table

1. Check the 'TableValue' module in the 'Sample Script.vgs' in 'Module Library' window

2. Review the source code.  The 'GeneConstruct.TableValue(7,2)' means reading cell value at the address of (7,2) where 7 is the 7th gene construct.

3. Click on the 'Test run' button

4. The Message box shows the result.