From f39d92ddd566e1a026f0a598fb6a7cb0e751e3b7 Mon Sep 17 00:00:00 2001 From: Steven Weaver Date: Fri, 8 Dec 2017 14:09:16 -0500 Subject: [PATCH 1/9] replacing undefined variable with nil --- src/core/batchlanhelpers.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/batchlanhelpers.cpp b/src/core/batchlanhelpers.cpp index f2013198d..d2c2690ed 100644 --- a/src/core/batchlanhelpers.cpp +++ b/src/core/batchlanhelpers.cpp @@ -335,7 +335,7 @@ _String ReturnFileDialogInput(void) #ifdef __HEADLESS__ WarnError ("Unhandled standard input call in headless HYPHY. Only redirected standard input (via ExecuteAFile) is allowed"); - return empty; + return nil; #endif #ifdef __MAC__ @@ -398,7 +398,7 @@ _String WriteFileDialogInput(void) { #ifdef __HEADLESS__ WarnError ("Unhandled standard input call in headless HYPHY. Only redirected standard input (via ExecuteAFile) is allowed"); - return empty; + return nil; #else #ifdef __MAC__ resolvedFilePath = MacSimpleFileSave(); From 3c727f7fdab5c8a107ae50843626a550d327385a Mon Sep 17 00:00:00 2001 From: Steven Weaver Date: Fri, 8 Dec 2017 14:10:13 -0500 Subject: [PATCH 2/9] removing reference to old header file --- src/core/error.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/core/error.cpp b/src/core/error.cpp index b01f6a1c2..56eafbfe2 100644 --- a/src/core/error.cpp +++ b/src/core/error.cpp @@ -45,11 +45,6 @@ #include "function_templates.h" - -#if !defined __UNIX__ || defined __HEADLESS__ || defined __MAC__ || defined __HYPHY_GTK__ -#include "preferences.h" -#endif - #ifdef __MAC__ #include #include "HYUtils.h" From e366690db1bbc1885e31aaf6d2e147323e2a5e06 Mon Sep 17 00:00:00 2001 From: Steven Weaver Date: Wed, 24 Jan 2018 15:13:38 -0500 Subject: [PATCH 3/9] bumping version to 2.3.10 --- src/core/strings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/strings.cpp b/src/core/strings.cpp index f83b34288..074cb1ddf 100644 --- a/src/core/strings.cpp +++ b/src/core/strings.cpp @@ -69,7 +69,7 @@ #define MOD_ADLER 65521 _String compileDate = __DATE__, - __HYPHY__VERSION__ = _String ("2.3.9") & compileDate.Cut (7,10) & compileDate.Cut (0,2).Replace("Jan", "01", true). + __HYPHY__VERSION__ = _String ("2.3.10") & compileDate.Cut (7,10) & compileDate.Cut (0,2).Replace("Jan", "01", true). Replace("Feb", "02", true). Replace("Mar", "03", true). Replace("Apr", "04", true). From 3a1e2e32e6a6f18fd70a835289834a242e062ff7 Mon Sep 17 00:00:00 2001 From: Steven Weaver Date: Fri, 26 Jan 2018 10:33:11 -0500 Subject: [PATCH 4/9] address #743 - excessive MEME verbosity --- res/TemplateBatchFiles/SelectionAnalyses/MEME.bf | 1 - 1 file changed, 1 deletion(-) diff --git a/res/TemplateBatchFiles/SelectionAnalyses/MEME.bf b/res/TemplateBatchFiles/SelectionAnalyses/MEME.bf index cb27ad0fe..95fbaef93 100644 --- a/res/TemplateBatchFiles/SelectionAnalyses/MEME.bf +++ b/res/TemplateBatchFiles/SelectionAnalyses/MEME.bf @@ -459,7 +459,6 @@ lfunction meme.handle_a_site (lf_fel, lf_bsrel, filter_data, partition_index, pa utility.SetEnvVariable ("USE_LAST_RESULTS", TRUE); utility.SetEnvVariable ("ASSUME_REVERSIBLE_MODELS", TRUE); - utility.SetEnvVariable ("VERBOSITY_LEVEL", 500); ^"meme.site_alpha" = 1; ^"meme.site_beta_plus" = 1; From 88ddca04d18d5ed357cf123c620ab41c9edffc6a Mon Sep 17 00:00:00 2001 From: Steven Weaver Date: Fri, 26 Jan 2018 11:13:00 -0500 Subject: [PATCH 5/9] bumping version to 2.3.11 --- src/core/strings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/strings.cpp b/src/core/strings.cpp index 074cb1ddf..828faa6fa 100644 --- a/src/core/strings.cpp +++ b/src/core/strings.cpp @@ -69,7 +69,7 @@ #define MOD_ADLER 65521 _String compileDate = __DATE__, - __HYPHY__VERSION__ = _String ("2.3.10") & compileDate.Cut (7,10) & compileDate.Cut (0,2).Replace("Jan", "01", true). + __HYPHY__VERSION__ = _String ("2.3.11") & compileDate.Cut (7,10) & compileDate.Cut (0,2).Replace("Jan", "01", true). Replace("Feb", "02", true). Replace("Mar", "03", true). Replace("Apr", "04", true). From 350786eafac0507842437ee62d1a392345fadf79 Mon Sep 17 00:00:00 2001 From: Sergei Kosakovsky Pond Date: Fri, 26 Jan 2018 21:22:53 -0500 Subject: [PATCH 6/9] Closes #746. Syntax error in queryTree.bf --- .../SelectionAnalyses/RELAX.bf | 2 +- res/TemplateBatchFiles/SlatkinMaddison.bf | 259 ++++++------------ .../libv3/tasks/alignments.bf | 56 ++++ res/TemplateBatchFiles/queryTree.bf | 4 +- 4 files changed, 150 insertions(+), 171 deletions(-) diff --git a/res/TemplateBatchFiles/SelectionAnalyses/RELAX.bf b/res/TemplateBatchFiles/SelectionAnalyses/RELAX.bf index 0ba54d947..44cc8f054 100644 --- a/res/TemplateBatchFiles/SelectionAnalyses/RELAX.bf +++ b/res/TemplateBatchFiles/SelectionAnalyses/RELAX.bf @@ -335,7 +335,7 @@ if (relax.has_unclassified) { relax.model_object_map ["relax.unclassified"] = relax.unclassified.bsrel_model; relax.model_map ["relax.unclassified"] = utility.Filter (relax.selected_branches[0], '_value_', '_value_ == relax.unclassified_branches_name'); - models.BindGlobalParameters ({"0" : relax.unclassified.bsrel_model, "1" : relax.reference.bsrel_model}, terms.nucleotideRate("[ACGT]","[ACGT]")); + models.BindGlobalParameters ({"0" : relax.test.bsrel_model, "1" : relax.unclassified.bsrel_model}, terms.nucleotideRate("[ACGT]","[ACGT]")); } relax.alternative_model.fit = estimators.FitLF (relax.filter_names, relax.trees, { "0" : relax.model_map}, relax.general_descriptive.fit, relax.model_object_map, {terms.run_options.retain_lf_object: TRUE}); diff --git a/res/TemplateBatchFiles/SlatkinMaddison.bf b/res/TemplateBatchFiles/SlatkinMaddison.bf index 08ccb0282..bafa3b492 100644 --- a/res/TemplateBatchFiles/SlatkinMaddison.bf +++ b/res/TemplateBatchFiles/SlatkinMaddison.bf @@ -3,8 +3,7 @@ function factorial (x) { res = 1; - for (x2 = 2; x2 <= x; x2=x2+1) - { + for (x2 = 2; x2 <= x; x2 += 1) { res = res * x2; } return res; @@ -12,116 +11,71 @@ function factorial (x) /*--------------------------------------------------- */ -function computeMigrationEvents (assignmentVector) -{ - - assignmentMatrices = {}; - nodeState = {}; - - for (specIndex = 0; specIndex < leafCount; specIndex = specIndex + 1) - { - aMx = {2,kindCount}; - s2 = assignmentVector[specIndex]; - for (k=0; k> TWO-WAY ", twoWay, "\n"); - */ - if (nodeInfo["Parent"]) - { + if ((treeAVL[node])["Parent"]) { + // not the root + aMx = {2,kindCount}; - for (s2 = 0; s2 < kindCount; s2 = s2+1) - { - minV = 1e100; - minI = 0; - - for (s3 = 0; s3 < kindCount; s3 = s3+1) - { - aCost = (s3!=s2) + twoWay[s3]; - if (minV > aCost) - { - minV = aCost; - minI = s3; - } - } - - aMx[0][s2] = minI; - aMx[1][s2] = minV; - } - - /* - fprintf (stdout, "NODE MATRIX", aMx, "\n"); - */ - assignmentMatrices [nodeName] = aMx; - } - else - { - totalCost = 1e100; - nodeState [nodeName] = 0; - - - for (s2 = 0; s2 < kindCount; s2 = s2+1) - { - if (twoWay[s2] < totalCost) - { - totalCost = twoWay[s2]; - nodeState [nodeName] = s2; - } + for (s2 = 0; s2 < kindCount; s2 += 1) { + score_matrix = Min ({1,kindCount} ["(_MATRIX_ELEMENT_COLUMN_!=s2)+subtreeCost[_MATRIX_ELEMENT_COLUMN_]"], 1); + aMx[0][s2] = score_matrix[1]; + aMx[1][s2] = score_matrix[0]; } + + (treeAVL[node])["_PARSIMONY_"] = aMx; + + + } else { + subtreeCost = Min (subtreeCost, 1); + (treeAVL[node])["_PARSIMONY_"] = subtreeCost[1]; } } } - return totalCost; + + + return subtreeCost[0]; } /*--------------------------------------------------- */ @@ -179,8 +133,7 @@ while (kindCount < 2) goOn = 1; -while (goOn) -{ +while (goOn) { defClades = 0; clades = {}; strings = {}; @@ -198,13 +151,11 @@ while (goOn) fprintf (stdout,"\nEnter a reg exp used to define clade ",defClades+1,":"); fscanf (stdin,"String",theRegExp); - for (specIndex = 0; specIndex < leafCount; specIndex = specIndex + 1) - { + for (specIndex = 0; specIndex < leafCount; specIndex = specIndex + 1) { specName = TipName (givenTree, specIndex); specMatch = specName $ theRegExp; - if (specMatch[0]>=0 && matchedSoFar[specIndex] == 0) - { + if (specMatch[0]>=0 && matchedSoFar[specIndex] == 0) { aClade [specName] = 1; if (Abs(st)) { @@ -216,16 +167,14 @@ while (goOn) } matchedSoFar [specIndex] = 1; - leafAllocs [specIndex] = defClades; + leafAllocs [specIndex] = Random (0,1) > 0.05;//defClades; } } } - else - { + else { for (specIndex = 0; specIndex < leafCount; specIndex = specIndex + 1) { - if (matchedSoFar[specIndex] == 0) - { + if (matchedSoFar[specIndex] == 0) { specName = TipName (givenTree, specIndex); aClade [specName] = 1; if (Abs(st)) @@ -237,13 +186,12 @@ while (goOn) st = specName; } matchedSoFar [specIndex] = 1; - leafAllocs [specIndex] = kindCount-1; + leafAllocs [specIndex] = Random (0,1) > 0.05; //kindCount-1; } } } - if (Abs(aClade) == 0) - { + if (Abs(aClade) == 0) { fprintf (stdout, "ERROR: an empty clade for reg-exp ", goOn, "\n"); defClades = kindCount; break; @@ -252,9 +200,9 @@ while (goOn) { fprintf (stdout, "Matched: ",st,"\n"); } - strings[Abs(strings)] = st; - clades [Abs(clades) ] = aClade; - defClades = defClades + 1; + strings + st; + clades + aClade; + defClades += 1; } if (Abs(clades) == kindCount) @@ -282,8 +230,7 @@ while (goOn) } descriptives = {}; -for (k=0; k " + descriptives[myState]; - aList = transitions[aKey]; - if (Abs(aList) == 0) - { - aList = {}; +for (node = treeSize - 2; node > 0 ; node = node - 1) { + + + parentState = (treeAVL[((treeAVL[node])["Parent"])])["_PARSIMONY_"]; + myState = ((treeAVL[node])["_PARSIMONY_"])[0][parentState]; + + (treeAVL[node])["_PARSIMONY_"] = myState; + + if (parentState != myState) { + aKey = descriptives[parentState] + " --> " + descriptives[myState]; + if (Abs(transitions[aKey]) == 0) { + transitions[aKey] = {}; } - aList[Abs(aList)] = nodeName; - transitions[aKey] = aList; + transitions[aKey] + ((treeAVL[node])["Name"]); } - else - { + else { aKey = descriptives[parentNode]; - aList = sameState[aKey]; - if (Abs(aList) == 0) - { - aList = {}; + if (Abs(sameState[aKey]) == 0) { + sameState[aKey] = {}; } - aList[Abs(aList)] = nodeName; - sameState[aKey] = aList; + sameState[aKey] + ((treeAVL[node])["Name"]); } - nodeState [nodeName] = myState; } returnAVL = {"MIGRATIONS": Abs(transitions)}; @@ -350,8 +284,7 @@ if (Abs(transitions)) keys = Rows (transitions); - for (cc = 0; cc < Columns (keys); cc = cc + 1) - { + for (cc = 0; cc < Columns (keys); cc += 1) { aKey = keys[cc]; fprintf (stdout, "\n", aKey, ":\n"); aList = transitions[aKey]; @@ -382,8 +315,7 @@ if (resample) sampleCount = 0; totalPossible = factorial(leafCount); - for (k=0; ks\n" + sequence[offset][Abs (sequence)-1]); + DataSetFilter single_seq_filter = CreateFilter (single_seq, 3, "", ""); + + GetDataInfo (patterns, single_seq_filter); + GetDataInfo (alphabet, single_seq_filter, "CHARACTERS"); + GetDataInfo (single_seq_data, single_seq_filter, 0); + code_lookup = code [utility.getGlobalValue("terms.code.ordering")]; + code_table = code [utility.getGlobalValue("terms.code")]; + + for (s = 0; s < single_seq_filter.sites; s += 1) { + codon = single_seq_data[3*s][3*s+2]; + if (lookup / codon) { + translation[s] = lookup [codon]; + } else { + GetDataInfo (resolutions, single_seq_filter, 0, patterns[s]); + resolution_count = +resolutions; + my_resolution = {}; + if (resolution_count == 1) { + my_resolution [code_lookup[code_table[(Max (resolutions, 1))[1]]]] = 1; + } else { + if (resolution_count == 0 || resolution_count == 64) { + my_resolution["-"] = 1; + } else { + for (r = 0; r < 64; r += 1) { + if (resolutions[r]) { + my_resolution [code_lookup[code_table[r]]] = 1; + } + } + } + } + lookup [codon] = my_resolution; + translation[s] = my_resolution; + } + } + + + return translation; +} + /** * @name alignments.MapAlignmentToReferenceCoordinates * Map a query sequence from the aligned coordinates diff --git a/res/TemplateBatchFiles/queryTree.bf b/res/TemplateBatchFiles/queryTree.bf index 703723536..fd113a786 100644 --- a/res/TemplateBatchFiles/queryTree.bf +++ b/res/TemplateBatchFiles/queryTree.bf @@ -87,7 +87,7 @@ else treeStringPattern = treeString$"\\("; if (treeStringPattern[0]<0) { - fprintf (stdout, "\nThis doesn't seem to be a valid Newick string file. Can't find the opening parenthesis.\nHad:",treeString). + fprintf (stdout, "\nThis doesn't seem to be a valid Newick string file. Can't find the opening parenthesis.\nHad:",treeString); return 1; } else @@ -114,7 +114,7 @@ else if (parenCounter) { - fprintf (stdout, "\nThis doesn't seem to be a valid Newick string file. Can't match the parentheses.\nHad:",treeString). + fprintf (stdout, "\nThis doesn't seem to be a valid Newick string file. Can't match the parentheses.\nHad:",treeString); return 1; } From 534e2ff48697639d2737260fffe01e56a6a0cb6c Mon Sep 17 00:00:00 2001 From: Sergei Kosakovsky Pond Date: Tue, 6 Feb 2018 14:08:51 -0500 Subject: [PATCH 7/9] Minor libv3 enhancements and a fix for #748 --- .../SelectionAnalyses/RELAX.bf | 1 + res/TemplateBatchFiles/libv3/IOFunctions.bf | 10 +++ .../libv3/models/model_functions.bf | 22 +++-- src/core/calcnode.cpp | 90 ++++++++++++------- 4 files changed, 83 insertions(+), 40 deletions(-) diff --git a/res/TemplateBatchFiles/SelectionAnalyses/RELAX.bf b/res/TemplateBatchFiles/SelectionAnalyses/RELAX.bf index 44cc8f054..fe436204b 100644 --- a/res/TemplateBatchFiles/SelectionAnalyses/RELAX.bf +++ b/res/TemplateBatchFiles/SelectionAnalyses/RELAX.bf @@ -1,3 +1,4 @@ + RequireVersion("2.3.3"); LoadFunctionLibrary("libv3/all-terms.bf"); // must be loaded before CF3x4 diff --git a/res/TemplateBatchFiles/libv3/IOFunctions.bf b/res/TemplateBatchFiles/libv3/IOFunctions.bf index 36f347c8e..841d8307b 100644 --- a/res/TemplateBatchFiles/libv3/IOFunctions.bf +++ b/res/TemplateBatchFiles/libv3/IOFunctions.bf @@ -536,6 +536,16 @@ lfunction console.log (arg) { fprintf (stdout, arg, "\n"); } +/** + * I am tired of having dangling console.log debug statements + * @returns nothing + */ +lfunction debug.log (arg) { + if (utility.GetEnvVariable ("_DEBUG_MESSAGES_ON_")) { + fprintf (stdout, arg, "\n"); + } +} + /** * I am tired of typing fprintf (MESSAGE_LOG, ...) * @returns nothing diff --git a/res/TemplateBatchFiles/libv3/models/model_functions.bf b/res/TemplateBatchFiles/libv3/models/model_functions.bf index 6a337b680..fe13d9be0 100644 --- a/res/TemplateBatchFiles/libv3/models/model_functions.bf +++ b/res/TemplateBatchFiles/libv3/models/model_functions.bf @@ -6,11 +6,10 @@ LoadFunctionLibrary ("../convenience/regexp.bf"); /** @module model */ /** - * @name model.ApplyModelToTree - * @param id - * @param tree - * @param model_list - * @param rules + * @name model.GetParameters_RegExp + * @param model {String} - model ID + * @param re {String} - regular expression + * @return a dictionary of global model parameters that match a regexp */ lfunction model.GetParameters_RegExp(model, re) { @@ -56,10 +55,19 @@ function model.ApplyModelToTree (id, tree, model_list, rules) { "); } - + + /* + + debug.log (tree); + _t = Eval ("Format (`id`,1,1)"); + debug.log (_t); + + */ + model.ApplyModelToTree.ids = Rows (rules); for (model.ApplyModelToTree.k = 0; model.ApplyModelToTree.k < Abs (rules); model.ApplyModelToTree.k += 1) { model.ApplyModelToTree.name = model.ApplyModelToTree.ids[model.ApplyModelToTree.k]; + //debug.log (model.ApplyModelToTree.name); if ( model.ApplyModelToTree.name != "DEFAULT") { model.ApplyModelToTree.list = rules[model.ApplyModelToTree.name]; if (Type (model.ApplyModelToTree.list) == "AssociativeList") { @@ -74,7 +82,7 @@ function model.ApplyModelToTree (id, tree, model_list, rules) { } for (model.ApplyModelToTree.b = 0; model.ApplyModelToTree.b < Columns (model.ApplyModelToTree.list); model.ApplyModelToTree.b += 1) { - //fprintf (stdout, "SetParameter (`id`." + model.ApplyModelToTree.list[model.ApplyModelToTree.b] + ",MODEL," + model.ApplyModelToTree.apply_model + ")", "\n"); + //debug.log ( "SetParameter (`id`." + model.ApplyModelToTree.list[model.ApplyModelToTree.b] + ",MODEL," + model.ApplyModelToTree.apply_model + ")"); ExecuteCommands ("SetParameter (`id`." + model.ApplyModelToTree.list[model.ApplyModelToTree.b] + ",MODEL," + model.ApplyModelToTree.apply_model + ")"); } } diff --git a/src/core/calcnode.cpp b/src/core/calcnode.cpp index 46dc4b442..33520240c 100644 --- a/src/core/calcnode.cpp +++ b/src/core/calcnode.cpp @@ -1269,46 +1269,68 @@ void _TheTree::PostTreeConstructor (bool dupMe) void _TreeTopology::PostTreeConstructor (bool dupMe) { + auto variable_handler = [&] (void) -> void { + BaseRef temp = variablePtrs(theIndex); + variablePtrs[theIndex]=dupMe ? this->makeDynamic() : this; + DeleteObject(temp); + }; + double acceptRTs = 0.0; checkParameter (acceptRootedTrees,acceptRTs, 0.0); - - if (theRoot->get_num_nodes() == 2) { // rooted tree - check + + if (theRoot->get_num_nodes() <= 2) { // rooted tree - check if (acceptRTs<0.1) { int i = 1; long node_index = theRoot->get_data(); - for (; i<=2; i++) { - node *node_temp = theRoot->go_down(i); - if (node_temp->get_num_nodes()) { // an internal node - make it a root - node_temp->detach_parent(); - if (i==1) { + bool recurse = false; + + if (theRoot->get_num_nodes() == 2) { + for (; i<=2; i++) { + node *node_temp = theRoot->go_down(i); + if (node_temp->get_num_nodes()) { // an internal node - make it a root + node_temp->detach_parent(); + if (i==1) { + node_temp->add_node(*theRoot->go_down(2)); + delete theRoot; + theRoot = node_temp; + rooted = ROOTED_LEFT; + } else { + node_temp->prepend_node(*theRoot->go_down(1)); + delete theRoot; + theRoot = node_temp; + rooted = ROOTED_RIGHT; + } + if (i==1) { + ReportWarning (_String("Rooted topology. Removing one branch - the left root child has been promoted to be the new root")); + } else { + ReportWarning (_String("Rooted topology. Removing one branch - the right root child has been promoted to be the new root")); + } + break; + } + } + if (i==3) { + ReportWarning ((_String("One branch topology supplied - hopefully this IS what you meant to do."))); + node *node_temp = theRoot->go_down(1); + node_temp->detach_parent(); node_temp->add_node(*theRoot->go_down(2)); delete theRoot; theRoot = node_temp; rooted = ROOTED_LEFT; - } else { - node_temp->prepend_node(*theRoot->go_down(1)); - delete theRoot; - theRoot = node_temp; - rooted = ROOTED_RIGHT; + ReportWarning (_String("Rooted tree. Removing one branch - the left root child has been promoted to be the new root")); + //PurgeTree(); } - if (i==1) { - ReportWarning (_String("Rooted topology. Removing one branch - the left root child has been promoted to be the new root")); - } else { - ReportWarning (_String("Rooted topology. Removing one branch - the right root child has been promoted to be the new root")); + } else { + if (theRoot->get_num_nodes() == 0) { + ReportWarning ("An empty topology has been constructed"); + variable_handler (); + return; } - break; - } - } - if (i==3) { - ReportWarning ((_String("One branch topology supplied - hopefully this IS what you meant to do."))); - node *node_temp = theRoot->go_down(1); - node_temp->detach_parent(); - node_temp->add_node(*theRoot->go_down(2)); - delete theRoot; - theRoot = node_temp; - rooted = ROOTED_LEFT; - ReportWarning (_String("Rooted tree. Removing one branch - the left root child has been promoted to be the new root")); - //PurgeTree(); + node *node_temp = theRoot->go_down(1); + node_temp->detach_parent(); + delete theRoot; + theRoot = node_temp; + ReportWarning ("The root has a single child, which is be promoted to the root"); + recurse = true; } flatTree.Delete (node_index); @@ -1321,12 +1343,14 @@ void _TreeTopology::PostTreeConstructor (bool dupMe) { topTraverser->init (topTraverser->get_data () - 1); } } + + if (recurse) { + PostTreeConstructor (dupMe); + return; + } } } - - BaseRef temp = variablePtrs(theIndex); - variablePtrs[theIndex]=dupMe ? this->makeDynamic() : this; - DeleteObject(temp); + variable_handler (); } From ac30738c2fa27e9034b210e34ed88785b91d3965 Mon Sep 17 00:00:00 2001 From: "Stephanie J. Spielman" Date: Wed, 7 Feb 2018 10:22:18 -0500 Subject: [PATCH 8/9] Updated LEISR with published citation --- res/TemplateBatchFiles/LEISR.bf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/TemplateBatchFiles/LEISR.bf b/res/TemplateBatchFiles/LEISR.bf index cd0062307..74b3ea40c 100644 --- a/res/TemplateBatchFiles/LEISR.bf +++ b/res/TemplateBatchFiles/LEISR.bf @@ -32,7 +32,7 @@ leisr.analysis_description = { terms.io.info: "LEISR (Likelihood Estimation of Individual Site Rates) infer relative amino-acid or nucleotide rates from a fixed nucleotide or amino-acid alignment and tree, with possibility for partitions. Relative site-specific substitution rates are inferred by first optimizing alignment-wide branch lengths, and then inferring a site-specific uniform tree scaler.", terms.io.version: "0.4", - terms.io.reference: "Spielman, S.J. and Kosakovsky Pond, S.L. Relative evolutionary rate inference in HyPhy with LEISR. bioRxiv. https://doi.org/10.1101/206011. (2017); Pupko, T., Bell, R. E., Mayrose, I., Glaser, F. & Ben-Tal, N. Rate4Site: an algorithmic tool for the identification of functional regions in proteins by surface mapping of evolutionary determinants within their homologues. Bioinformatics 18, S71–S77 (2002).", + terms.io.reference: "Spielman, S.J. and Kosakovsky Pond, S.L. (2018). Relative evolutionary rate inference in HyPhy with PeerJ 6:e4339. DOI 10.7717/peerj.4339 ; Pupko, T., Bell, R. E., Mayrose, I., Glaser, F. & Ben-Tal, N. Rate4Site: an algorithmic tool for the identification of functional regions in proteins by surface mapping of evolutionary determinants within their homologues. Bioinformatics 18, S71–S77 (2002).", terms.io.authors: "Sergei L Kosakovsky Pond and Stephanie J Spielman", terms.io.contact: "{spond,stephanie.spielman}@temple.edu" }; From 4bc8eaef35c4a9f6d9f909cc44b16303337881e4 Mon Sep 17 00:00:00 2001 From: Steven Weaver Date: Mon, 12 Feb 2018 10:00:06 -0500 Subject: [PATCH 9/9] Commenting out console.log statements --- res/TemplateBatchFiles/SelectionAnalyses/MEME.bf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/res/TemplateBatchFiles/SelectionAnalyses/MEME.bf b/res/TemplateBatchFiles/SelectionAnalyses/MEME.bf index 95fbaef93..7b3dfcf74 100644 --- a/res/TemplateBatchFiles/SelectionAnalyses/MEME.bf +++ b/res/TemplateBatchFiles/SelectionAnalyses/MEME.bf @@ -464,7 +464,7 @@ lfunction meme.handle_a_site (lf_fel, lf_bsrel, filter_data, partition_index, pa ^"meme.site_beta_plus" = 1; ^"meme.site_beta_nuisance" = 1; - console.log ("Optimizing FEL for pattern " + pattern_info); + //console.log ("Optimizing FEL for pattern " + pattern_info); io.SpoolLF (lf_fel, "/tmp/meme.debug", "FEL"); Optimize (results, ^lf_fel); @@ -480,7 +480,7 @@ lfunction meme.handle_a_site (lf_fel, lf_bsrel, filter_data, partition_index, pa /* avoid 0/0 by making the denominator non-zero*/ } - console.log ("Optimizing MEME for pattern " + pattern_info); + //console.log ("Optimizing MEME for pattern " + pattern_info); io.SpoolLF (lf_bsrel, "/tmp/meme.debug", "MEME"); Optimize (results, ^lf_bsrel);