| 
	 
		
		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 
   | 
			 
		 
	 
	
	    
	 |