Mercurial > repos > iuc > hyphy_meme
annotate scripts/strike-ambigs.bf @ 27:d653a76f16ee draft
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hyphy/ commit 2063bc1f8f9cb97de147b86dbe9189fc496b206a"
author | iuc |
---|---|
date | Wed, 09 Jun 2021 17:31:49 +0000 |
parents | 2f07f5b4e47b |
children |
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 |