annotate scripts/strike-ambigs.bf @ 30:45a2366d777e draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 9ef881c2d3d5f240cbff33667b55f72cb82d9896"
author iuc
date Tue, 05 Oct 2021 05:04:06 +0000
parents 2f07f5b4e47b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
1 RequireVersion ("2.5.20");
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
2
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
3 LoadFunctionLibrary ("libv3/tasks/alignments.bf");
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
4 LoadFunctionLibrary ("libv3/tasks/trees.bf");
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
5 LoadFunctionLibrary ("libv3/UtilityFunctions.bf");
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
6 LoadFunctionLibrary ("libv3/IOFunctions.bf");
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
7 LoadFunctionLibrary ("libv3/convenience/math.bf");
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
8
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
9
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
10
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
11 filter.analysis_description = {terms.io.info :
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
12 "
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
13 Read an alignment of coding sequences and replace any ambiguous codons with ---. Write results to a new file in FASTA format, and report changed sequences to stdout
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
14 ",
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
15 terms.io.version : "0.1",
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
16 terms.io.reference : "TBD",
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
17 terms.io.authors : "Sergei L Kosakovsky Pond",
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
18 terms.io.contact : "spond@temple.edu",
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
19 terms.io.requirements : "An MSA"
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
20 };
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
21
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
22
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
23 io.DisplayAnalysisBanner (filter.analysis_description);
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
24
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
25 utility.SetEnvVariable ("NORMALIZE_SEQUENCE_NAMES", FALSE);
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
26
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
27 KeywordArgument ("code", "Which genetic code should be used", "Universal");
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
28 KeywordArgument ("alignment", "An in-frame codon alignment in one of the formats supported by HyPhy");
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
29
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
30 filter.in = alignments.PromptForGeneticCodeAndAlignment ("filter.dataset", "filter.input");
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
31
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
32 KeywordArgument ("output", ".fasta for compressed data", None);
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
33 filter.out = io.PromptUserForFilePath(".fasta for filtered data");
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
34 fprintf (filter.out, CLEAR_FILE, KEEP_OPEN);
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
35
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
36 GetDataInfo (filter.site_patterns, filter.input);
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
37
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
38 filter.patter2site = {};
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
39
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
40
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
41 for (i,j,v; in; filter.site_patterns) {
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
42 index = i+j;
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
43 if (filter.patter2site / v == FALSE ) {
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
44 filter.patter2site [v] = {};
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
45 }
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
46 filter.patter2site [v] + index;
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
47 }
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
48
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
49 GET_DATA_INFO_RETURNS_ONLY_THE_INDEX = TRUE;
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
50 COUNT_GAPS_IN_FREQUENCIES = FALSE;
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
51 filter.unique_patterns = utility.Array1D (filter.input.site_freqs);
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
52
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
53 for (seq = 0; seq < filter.input.species; seq += 1) {
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
54 io.ReportProgressBar ("filter","Processing sequence " + (1+seq));
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
55 codons = {1, filter.input.sites};
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
56 codons [0] = "";
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
57 GetString (seq_name, filter.input, seq);
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
58 GetDataInfo (seq_chars, filter.input, seq);
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
59
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
60 filter.ambigs = 0;
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
61
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
62 for (pattern = 0; pattern < filter.unique_patterns; pattern += 1) {
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
63 GetDataInfo (pattern_info, filter.input, seq, pattern);
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
64 if (pattern_info >= 0) {
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
65 codon_start = (filter.patter2site[pattern])[0] * 3;
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
66 codon = seq_chars [codon_start][codon_start+2];
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
67 } else {
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
68 codon = "---";
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
69 filter.ambigs += Abs (filter.patter2site [pattern])
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
70 }
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
71 for (c; in; filter.patter2site [pattern] ) {
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
72 codons[c] = codon;
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
73 }
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
74 }
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
75 if (filter.ambigs > 0) {
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
76 fprintf (stdout, "\nStriking ", filter.ambigs, " codons that are incompletely resolved from " + seq_name + "\n");
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
77 }
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
78 fprintf (filter.out,">",seq_name,"\n",Join ("", codons), "\n");
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
79 }
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
80
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
81 fprintf (filter.out,CLOSE_FILE);
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
82
2f07f5b4e47b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2742ee3b4e90f65352845265d2f85c4263e0eabb"
iuc
parents:
diff changeset
83