Home > Module development > 5.How to use class

How to use class

 

A class can be defined as a reproducible object that is a collection of modules. Visual Gene Developer has several classes and allows users to make use of them to develop new modules.

Basically, every class may have function routine, sub routine, and property. Function routine is used mainly for a calculation and returns a result value. In contrast, sub routine doesn't return a value and property works as a variable whose value is readable or writable. In spite of different names, their internal algorithms and usages are very similar. Google websites to get more information!

 


o Rule

 

VBScript

Function routine:         Other variable = Class name.function name (parameter1, parameter2, ...)

Sub routine       :         Call Class name.sub name (parameter1, parameter2, ...)

                                  Class name.sub name parameter1, parameter2, ...

Property (reading):      Other variable = Class name.property name (parameter1, parameter2, ...)

Property (writing):      Class name.property name (parameter1, parameter2, ...) = Other variable

 

 

JScript

Function routine:         Other variable = Class name.function name (parameter1, parameter2, ...);

Sub routine       :         Call Class name.sub name (parameter1, parameter2, ...);

Property (reading):      Other variable = Class name.property name (parameter1, parameter2, ...);

Property (writing):      Class name.property name (parameter1, parameter2, ...) = Other variable;

 

 

Here, parameters can be optional and a user may not distinguish between 'Function routine' and 'Property (reading)'.

 


o Example 1:  Function

 

VBScript

Function Main()
Main=GeneConstruct.TableValue(1,1)
End Function

 

JScript

function Main() {
return GeneConstruct.TableValue(1,1);
}
 

 

'GeneConstruct' is a class, and 'TableValue' is a function. The first parameter is gene construct index and the second is column position. 'TableValue' accesses to the gene construct table on 'Gene optimization' window.

 


o Example 2: Sub routine

 

VBScript

Function Main()
   ReturnValue=mRNApredict.Calculate("GCGGGCGGCGGCTATTGCA",False)
   Call mRNApredict.ShowStructure

End Function

Or

Function Main()
   mRNApredict.Calculate "GCGGGCGGCGGCTATTGCA",False
   mRNApredict.ShowStructure

End Function

 

JScript

function Main() {
  ReturnValue=mRNApredict.Calculate("GCGGGCGGCGGCTATTGCA","False");
  mRNApredict.ShowStructure;
}

 

 

'mRNApredict' is class name, and both 'Calculate' and 'ShowStructure' are sub routine name. Because 'ShowStructure' doesn't have a parameter, it doesn't have parenthesis. In case of 'Calculate', there are two parameters: source DNA sequence (string type), fast calculation mode (Boolean type: 'True' or 'False')

 


o Example 3:  Property

 

VBScript

Function Main()
     TargetGeneConstructIndex=GeneConstruct.CurrentConstructIndex
     TargetGeneName=PropBag_Param.Value("Target Gene Component ID")
     PropBag_Param.Value("Modified DNA")="AGTGACTGACACAGTTCACGTGC"

End Function

 

 

JScript

function Main() {
   TargetGeneConstructIndex=GeneConstruct.CurrentConstructIndex;
   TargetGeneName=PropBag_Param.Value("Target Gene Component ID");
   PropBag_Param.Value("Modified DNA")="AGTGACTGACACAGTTCACGTGC";
}

 

Both 'GeneConstruct' and 'PropBag_Param' are classes, and 'Value' is a property. In case of 'CurrentConstructIndex', it is not clear if it belongs to function routine or property. However the name of module suggests that it is a property since the name looks like a single variable.

 

 


o Example 4:  Function

 

VBScript

Function Main()
    Main=GeneService.Calculate_CAI("GCGGGCGGCGGCTATTGGCACACGAGCGGCCGGGAGATCCTGGACGC",True)
End Function

 

JScript

function Main() {
    return GeneService.Calculate_CAI("GCGGGCGGCGGCTATTGGCACACGAGCGGCCGGGAGATCCTGGACGC","True");
}

 

'GeneService' is a class, and 'Calculate_CAI' is a function. It has two parameters: source DNA sequence (type: string) and Bulmer's correction term (Boolean type: 'True' or 'False').