[galaxy-dev] [hg] galaxy 1729: Corrected a bug in branch lengths batchfile, a...

Greg Von Kuster greg at bx.psu.edu
Tue Feb 3 09:34:36 EST 2009


details:   http://www.bx.psu.edu/hg/galaxy/rev/743237dd0e65
changeset: 1729:743237dd0e65
user:      guru
date:      Mon Feb 02 18:57:07 2009 -0500
description:
Corrected a bug in branch lengths batchfile, as per Sergei's suggestions.

1 file(s) affected in this change:

lib/galaxy/tools/util/hyphy_util.py

diffs (306 lines):

diff -r cabfdc9dea12 -r 743237dd0e65 lib/galaxy/tools/util/hyphy_util.py
--- a/lib/galaxy/tools/util/hyphy_util.py	Fri Jan 30 11:37:51 2009 -0500
+++ b/lib/galaxy/tools/util/hyphy_util.py	Mon Feb 02 18:57:07 2009 -0500
@@ -368,143 +368,281 @@
 
 BranchLengthsMF = """
 VERBOSITY_LEVEL            = -1;
+
 fscanf                  (PROMPT_FOR_FILE, "Lines", inLines);
+
+
 
 _linesIn = Columns (inLines);
 
+
+
 /*---------------------------------------------------------*/
 
+
+
 _currentGene   = 1; 
+
 _currentState = 0;
+
 geneSeqs      = "";
+
 geneSeqs      * 128;
 
+
+
 for (l=0; l<_linesIn; l=l+1)
+
 {
+
     if (Abs(inLines[l]) == 0)
+
     {
+
         if (_currentState == 1)
+
         {
+
             geneSeqs      * 0;
+
             DataSet       ds            = ReadFromString (geneSeqs);
+
             _processAGene (_currentGene);
-            geneSeqs * 128;
+
+             geneSeqs * 128;
+
             _currentGene = _currentGene + 1;
+
         }
+
     }
+
     else
+
     {
+
         if (_currentState == 0)
+
         {
+
             _currentState = 1;
+
         }
+
         geneSeqs * inLines[l];
+
         geneSeqs * "\\n";
+
     }
+
 }
 
+
+
 if (_currentState == 1)
+
 {
+
     geneSeqs      * 0;
+
     if (Abs(geneSeqs))
+
     {
+
         DataSet       ds            = ReadFromString (geneSeqs);
+
         _processAGene (_currentGene);
+
     }
+
 }
+
+
 
 fprintf (resultFile,CLOSE_FILE);
 
+
+
 /*---------------------------------------------------------*/
 
+
+
 function _processAGene (_geneID)
+
 {
+
     DataSetFilter             filteredData = CreateFilter (ds,1);
+
     if (_currentGene == 1)
+
     {
+
         SelectTemplateModel        (filteredData);
+
         
-        SetDialogPrompt         ("Tree file");
+
+        SetDialogPrompt           ("Tree file");
+
         fscanf                    (PROMPT_FOR_FILE, "Tree",  givenTree);
+
         fscanf                    (stdin, "String", resultFile);
+
         
+
         /* do sequence to branch map */
+
         
+
         validNames = {};
+
         taxonNameMap = {};
+
         
+
         for (k=0; k<TipCount(givenTree); k=k+1)
+
         {
+
             validNames[TipName(givenTree,k)&&1] = 1;
+
         }
+
         
+
         for (k=0; k<BranchCount(givenTree); k=k+1)
+
         {
+
             thisName = BranchName(givenTree,k);
+
             taxonNameMap[thisName&&1] = thisName;
+
         }
+
         
+
         storeValidNames = validNames;
+
         fprintf         (resultFile,CLEAR_FILE,KEEP_OPEN,"Block\\tBranch\\tLength\\tLowerBound\\tUpperBound\\n"); 
+
     }
+
     else
+
     {
+
+        HarvestFrequencies (vectorOfFrequencies, filteredData, 1,1,1);
+
         validNames = storeValidNames;
+
     }
+
     
+
     for (k=0; k<ds.species; k=k+1)
+
     {
+
         GetString (thisName, ds,k);
+
         shortName = (thisName^{{"\\\\..+",""}})&&1;
+
         if (validNames[shortName])
+
         {
+
             taxonNameMap[shortName] = thisName;
+
             validNames - (shortName);
+
             SetParameter (ds,k,shortName);
+
         }
+
         else
+
         {
+
             fprintf         (resultFile,"ERROR:", thisName, " could not be matched to any of the leaves in tree ", givenTree,"\\n"); 
+
             return 0;
+
         }
+
     }
+
     
+
     /* */
+
     
+
     LikelihoodFunction lf = (filteredData,givenTree);
+
+    Optimize                 (res,lf);
+
     
-    Optimize                 (res,lf);
+
+    timer = Time(0)-timer;
+
     
-    timer = Time(0)-timer;
+
+    branchNames   = BranchName   (givenTree,-1);
+
+    branchLengths = BranchLength (givenTree,-1);
+
     
-    branchNames   = BranchName   (givenTree,-1);
-    branchLengths = BranchLength (givenTree,-1);
+
     
+
+    for (k=0; k<Columns(branchNames)-1; k=k+1)
+
+    {
+
+        COVARIANCE_PARAMETER = "givenTree."+branchNames[k]+".t";
+
+        COVARIANCE_PRECISION = 0.95;
+
+        CovarianceMatrix (cmx,lf);
+
+        if (k==0)
+
+        {
+
+            /* compute a scaling factor */
+
+            ExecuteCommands ("givenTree."+branchNames[0]+".t=1");
+
+            scaleFactor = BranchLength (givenTree,0);
+
+            ExecuteCommands ("givenTree."+branchNames[0]+".t="+cmx[0][1]);
+
+        }
+
+        fprintf (resultFile,_geneID,"\\t",taxonNameMap[branchNames[k]&&1],"\\t",branchLengths[k],"\\t",scaleFactor*cmx[0][0],"\\t",scaleFactor*cmx[0][2],"\\n");
+
+    }
+
     
-    for (k=0; k<Columns(branchNames)-1; k=k+1)
-    {
-        COVARIANCE_PARAMETER = "givenTree."+branchNames[k]+".t";
-        COVARIANCE_PRECISION = 0.95;
-        CovarianceMatrix (cmx,lf);
-        if (k==0)
-        {
-            /* compute a scaling factor */
-            ExecuteCommands ("givenTree."+branchNames[0]+".t=1");
-            scaleFactor = BranchLength (givenTree,0);
-            ExecuteCommands ("givenTree."+branchNames[0]+".t="+cmx[0][1]);
-        }
-        fprintf (resultFile,_geneID,"\\t",taxonNameMap[branchNames[k]&&1],"\\t",branchLengths[k],"\\t",scaleFactor*cmx[0][0],"\\t",scaleFactor*cmx[0][2],"\\n");
-    }
-    
+
     ttl = (branchLengths*(Transpose(branchLengths["1"])))[0];
+
     global treeScaler = 1;
+
     ReplicateConstraint ("this1.?.t:=treeScaler*this2.?.t__",givenTree,givenTree);
+
     COVARIANCE_PARAMETER = "treeScaler";
+
     COVARIANCE_PRECISION = 0.95;
+
     CovarianceMatrix (cmx,lf);
+
     fprintf (resultFile,_geneID,"\\tTotal Tree\\t",ttl,"\\t",ttl*cmx[0][0],"\\t",ttl*cmx[0][2],"\\n");
+
     ClearConstraints (givenTree);
+
     return 0;
+
 }
 """
 



More information about the galaxy-dev mailing list