Mercurial > repos > iuc > hyphy_prime
diff scripts/annotator.bf @ 27:e0d7277ae941 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit d97b1b98a3a621c93a7ed9e7db16bda47eefcb92
| author | iuc |
|---|---|
| date | Tue, 07 Oct 2025 20:45:50 +0000 |
| parents | 9d83d1ab0330 |
| children |
line wrap: on
line diff
--- a/scripts/annotator.bf Thu Mar 02 15:13:50 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -LoadFunctionLibrary ("libv3/tasks/trees.bf"); -LoadFunctionLibrary ("libv3/tasks/alignments.bf"); -LoadFunctionLibrary ("libv3/convenience/regexp.bf"); -LoadFunctionLibrary ("libv3/IOFunctions.bf"); - -tags = { - "^Node" : "Internal" -}; - - - - -tree = trees.LoadAnnotatedTopology (TRUE); -ts = tree[^"terms.trees.newick_with_lengths"]; -root_node = io.PromptUserForString ("Root on this node"); - - - -Topology T = ts; -ts = RerootTree (T, root_node); -ACCEPT_ROOTED_TREES = FALSE; -Topology T = ts; -ACCEPT_ROOTED_TREES = TRUE; -Topology TR = ts; - - -NORMALIZE_SEQUENCE_NAMES = FALSE; -SetDialogPrompt ("File with the sequences to label as the in-clade"); -DataSet query = ReadDataFile (PROMPT_FOR_FILE); -GetString (seqNames,query,-1); - -label = io.PromptUserForString ("Use this label"); - - -for (s;in;seqNames) { - tags [s && 6] = label; -} - -reg_exp = Rows (tags); - - -node_labels = {}; -for (_regexp_, _leaves_; in; regexp.PartitionByRegularExpressions (BranchName (T,-1), reg_exp)) { - tag = tags[_regexp_]; - - if (tag != "Internal") { - - if (Abs (tag) == 0) { - tag = "Reference"; - } - - for (l; in; _leaves_) { - node_labels[l] = tag; - } - } -} - -node_labelsR = {}; -for (_regexp_, _leaves_; in; regexp.PartitionByRegularExpressions (BranchName (TR,-1), reg_exp)) { - tag = tags[_regexp_]; - - if (tag != "Internal") { - - if (Abs (tag) == 0) { - tag = "Reference"; - } - - for (l; in; _leaves_) { - node_labelsR[l] = tag; - } - } -} - - -leaf_labels = node_labels; -node_labelsF = node_labels; -node_labels * ((trees.ParsimonyLabel ("T", node_labels))["labels"]); -node_labelsR * ((trees.ParsimonyLabel ("T", node_labelsR))["labels"]); -node_labelsF * ((trees.ParsimonyLabel ("T", node_labelsF))["labels"]); - -output_to = io.PromptUserForString ("Write output to this prefix"); - -fprintf (output_to + "labels.json", CLEAR_FILE, leaf_labels); -fprintf (output_to + "int.nwk", CLEAR_FILE, tree.Annotate ("T", "relabel_and_annotate", "{}", FALSE)); -fprintf (output_to + "clade.nwk", CLEAR_FILE, tree.Annotate ("TR", "relabel_and_annotate_full", "{}", FALSE)); -fprintf (output_to + "full.nwk", CLEAR_FILE, tree.Annotate ("T", "relabel_and_annotate_full", "{}", FALSE)); - -function relabel_and_annotate (node_name) { - _label = ""; - if (node_labels / node_name && leaf_labels / node_name == FALSE) { - _label = "{" + node_labels[node_name] + "}"; - } - return node_name + _label; -} - -function relabel_and_annotate_full (node_name) { - _label = ""; - if (node_labelsR / node_name) { - _label = "{" + node_labelsR[node_name] + "}"; - } - return node_name + _label; -}
