Module development
Example
2:
Calculate Gibbs
energy of mRNA secondary structure and then screen out a given gene
construct if calculated Gibbs energy is lower than the threshold value.
It is a predefined script named as 'Check stable mRNA
structure'
The module retrieves
sequence information ('Target Gene Component ID') using GeneConstruct class
and then generates lots of sequence segments specified by 'Window size'. The
moving window scans along the sequence with a given 'Step size'. The
Visual Gene Developer predicts mRNA secondary structure and calculates Gibb's free
energy for each segment. If Gibb's energy is lower than a specified value
('Threshold value'), it returns 'Not pass' which means the gene includes
stable mRNA secondary structure. If all sequence segments of the target gene are
more unstable than the expected value ('Threshold value'), the module
returns 'Pass'.
Step 1. Develop a new
PropertyBag. Check a predefined 'mRNA Gibbs Energy Check' as shown in the figure
Because a user can't edit the PropertyBag, we
show detailed setting in the below
The 1st parameter
The 2nd parameter
The 3rd parameter
The 4th parameter
The 5th parameter
The 6th parameter
The 7th parameter
The 8th parameter
Step 2. Develop source code.
1. Generate new
function
2. Check on the 'Registration'
and set Category to be 'Constraint'
3. Don't forget
attaching a PropertyBag.
VBScript
source code
Function Main()
'*** Read parameters from PropertyBag ***********
TargetGeneID=PropBag_Param.Value("Target
Gene Component ID")
SourceSeq=Get_SourceSeq(TargetGeneID)
If SourceSeq="" then
Main="Pass"
Exit Function
End If
SourceSeq_Length=Len(SourceSeq)
Start_Position=PropBag_Param.Value("Start
position")
End_Position=PropBag_Param.Value("End
position")
Window_Size=PropBag_Param.Value("Window
size")
Step_Size=PropBag_Param.Value("Step
size")
Unit=PropBag_Param.Value("Unit")
Threshold_Value=PropBag_Param.Value("Threshold
value")
'*** Check parameters ***********
If Start_Position<=0 then Start_Position=1
If End_Position >SourceSeq_Length then End_Position=SourceSeq_Length
If Start_Position>End_Position then
TempValue=Start_Position
Start_Position=End_Position
End_Position=TempValue
End If
If Window_Size>100 then
Window_Size=100
PropBag_Param.Value("Window size")="100"
End If
If Window_Size<10 then
Window_Size=10
PropBag_Param.Value("Window
size")="10"
End If
If Step_Size>100 then
Step_Size=100
PropBag_Param.Value("Step
size")="100"
End If
If Step_Size<5 then
Step_Size=5
PropBag_Param.Value("Step
size")="5"
End If
'*** Check mRNA Gibbs free energy
************************************************
For Current_Position=Start_Position
to End_Position - Step_Size
step Step_Size
'<----- Moving window
AppService.InstantMsg
"Analyzing mRNA structure at " + CStr(Current_Position)
TestSeq=Mid(SourceSeq,Current_Position,Window_Size)
'<---- Generates fragment of target gene
TestSeq_Length=Len(TestSeq)
Call
mRNApredict.Calculate(TestSeq,True)
GibbsEnergy=mRNApredict.GibbsFreeEnergy
()
If Unit="Total energy"
then
If -GibbsEnergy > -Threshold_Value then
Main= "Not pass"
Exit Function
End If
Else
If (-GibbsEnergy/TestSeq_Length) > -Threshold_Value then
Main="Not pass"
Exit Function
End If
End If
Next
Main="Pass"
End Function
Function
Get_SourceSeq(TargetGeneName)
'<---- Get target sequence. Use this
module as a template for module development
TargetGeneConstructIndex=GeneConstruct.CurrentConstructIndex
TargetGeneIndex=GeneConstruct.ComponentIndex(TargetGeneConstructIndex,TargetGeneName)
Get_SourceSeq=GeneConstruct.ParameterValue(TargetGeneConstructIndex,TargetGeneIndex,"Modified
DNA")
End Function
|
|