Mercurial > repos > cpt > cpt_psm_plotter
comparison lib/CPT/BioData.pm @ 1:8691c1c61a8e draft default tip
planemo upload commit 94b0cd1fff0826c6db3e7dc0c91c0c5a8be8bb0c
author | cpt |
---|---|
date | Mon, 05 Jun 2023 02:48:47 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:54c7a3ea81e2 | 1:8691c1c61a8e |
---|---|
1 package CPT::BioData; | |
2 use Moose; | |
3 use strict; | |
4 use warnings; | |
5 use autodie; | |
6 | |
7 has 'dummy_var' => (isa => 'Str', is => 'ro'); | |
8 | |
9 my %genbank_feature_tags = ( | |
10 "locus_tag" => 1, | |
11 "gene" => 1, | |
12 "product" => 1, | |
13 "allele" => 1, | |
14 "anticodon" => 1, | |
15 "artificial_location" => 1, | |
16 "bio_material" => 1, | |
17 "bound_moiety" => 1, | |
18 "cell_line" => 1, | |
19 "cell_type" => 1, | |
20 "chromosome" => 1, | |
21 "citation" => 1, | |
22 "clone" => 1, | |
23 "clone_lib" => 1, | |
24 "codon_start" => 1, | |
25 "collected_by" => 1, | |
26 "collection_date" => 1, | |
27 "compare" => 1, | |
28 "country" => 1, | |
29 "cultivar" => 1, | |
30 "culture_collection" => 1, | |
31 "db_xref" => 1, | |
32 "dev_stage" => 1, | |
33 "direction" => 1, | |
34 "EC_number" => 1, | |
35 "ecotype" => 1, | |
36 "environmental_sample" => 1, | |
37 "estimated_length" => 1, | |
38 "exception" => 1, | |
39 "experiment" => 1, | |
40 "focus" => 1, | |
41 "frequency" => 1, | |
42 "function" => 1, | |
43 "gap_type" => 1, | |
44 "gene_synonym" => 1, | |
45 "germline" => 1, | |
46 "haplogroup" => 1, | |
47 "haplotype" => 1, | |
48 "host" => 1, | |
49 "identified_by" => 1, | |
50 "inference" => 1, | |
51 "isolate" => 1, | |
52 "isolation_source" => 1, | |
53 "lab_host" => 1, | |
54 "lat_lon" => 1, | |
55 "linkage_evidence" => 1, | |
56 "macronuclear" => 1, | |
57 "map" => 1, | |
58 "mating_type" => 1, | |
59 "mobile_element_type" => 1, | |
60 "mod_base" => 1, | |
61 "mol_type" => 1, | |
62 "ncRNA_class" => 1, | |
63 "note" => 1, | |
64 "number" => 1, | |
65 "old_locus_tag" => 1, | |
66 "operon" => 1, | |
67 "organelle" => 1, | |
68 "organism" => 1, | |
69 "partial" => 1, | |
70 "PCR_conditions" => 1, | |
71 "PCR_primers" => 1, | |
72 "phenotype" => 1, | |
73 "plasmid" => 1, | |
74 "pop_variant" => 1, | |
75 "protein_id" => 1, | |
76 "proviral" => 1, | |
77 "pseudo" => 1, | |
78 "rearranged" => 1, | |
79 "replace" => 1, | |
80 "ribosomal_slippage" => 1, | |
81 "rpt_family" => 1, | |
82 "rpt_type" => 1, | |
83 "rpt_unit_range" => 1, | |
84 "rpt_unit_seq" => 1, | |
85 "satellite" => 1, | |
86 "segment" => 1, | |
87 "serotype" => 1, | |
88 "serovar" => 1, | |
89 "sex" => 1, | |
90 "specimen_voucher" => 1, | |
91 "standard_name" => 1, | |
92 "strain" => 1, | |
93 "sub_clone" => 1, | |
94 "sub_species" => 1, | |
95 "sub_strain" => 1, | |
96 "tag_peptide" => 1, | |
97 "tissue_lib" => 1, | |
98 "tissue_type" => 1, | |
99 "transgenic" => 1, | |
100 "translation" => 1, | |
101 "transl_except" => 1, | |
102 "transl_table" => 1, | |
103 "trans_splicing" => 1, | |
104 "variety" => 1, | |
105 ); | |
106 my %artemis_colours = ( | |
107 0 => 'rgb(255,255,255)', | |
108 1 => 'rgb(100,100,100)', | |
109 2 => 'rgb(255,0,0)', | |
110 3 => 'rgb(0,255,0)', | |
111 4 => 'rgb(0,0,255)', | |
112 5 => 'rgb(0,255,255)', | |
113 6 => 'rgb(255,0,255)', | |
114 7 => 'rgb(255,255,0)', | |
115 8 => 'rgb(152,251,152)', | |
116 9 => 'rgb(135,206,250)', | |
117 10 => 'rgb(255,165,0)', | |
118 11 => 'rgb(200,150,100)', | |
119 12 => 'rgb(255,200,200)', | |
120 13 => 'rgb(170,170,170)', | |
121 14 => 'rgb(0,0,0)', | |
122 15 => 'rgb(255,63,63)', | |
123 16 => 'rgb(255,127,127)', | |
124 17 => 'rgb(255,191,191)', | |
125 ); | |
126 | |
127 sub artemis_colour_decode{ | |
128 my ($self, $idx) = @_; | |
129 return $artemis_colours{$idx}; | |
130 } | |
131 | |
132 my %table321 = ( | |
133 'Gly' => 'G', 'Pro' => 'P', | |
134 'Ala' => 'A', | |
135 'Val' => 'V', | |
136 'Leu' => 'L', | |
137 'Ile' => 'I', | |
138 'Met' => 'M', | |
139 'Cys' => 'C', | |
140 'Phe' => 'F', | |
141 'Tyr' => 'Y', | |
142 'Trp' => 'W', | |
143 'His' => 'H', | |
144 'Lys' => 'K', | |
145 'Arg' => 'R', | |
146 'Gln' => 'Q', | |
147 'Asn' => 'N', | |
148 'Glu' => 'E', | |
149 'Asp' => 'D', | |
150 'Ser' => 'S', | |
151 'Thr' => 'T', | |
152 'XXX' => 'X', | |
153 'End' => '*', | |
154 'Stop' => '*' | |
155 ); | |
156 | |
157 sub decode321{ | |
158 my ($self, $three) = @_; | |
159 return $table321{$three}; | |
160 } | |
161 | |
162 | |
163 sub get321Table { | |
164 my ($self) = @_; | |
165 return \%table321; | |
166 } | |
167 | |
168 | |
169 sub getTranslationTable { | |
170 my ($self, $table_id) = @_; | |
171 require Bio::Tools::CodonTable; | |
172 my $table = Bio::Tools::CodonTable->new( -id => (defined $table_id? $table_id: 1) ); | |
173 my %result; | |
174 my @codons = qw(A C T G); | |
175 foreach my $i (@codons) { | |
176 foreach my $j (@codons) { | |
177 foreach my $k (@codons) { | |
178 $result{"$i$j$k"} = $table->translate("$i$j$k"); | |
179 } | |
180 } | |
181 } | |
182 if(defined($table_id) && $table_id == 11){ | |
183 $result{TGA} = '*'; | |
184 $result{TAA} = '#'; | |
185 $result{TAG} = '+'; | |
186 } | |
187 return \%result; | |
188 } | |
189 | |
190 | |
191 | |
192 sub isValidTag { | |
193 my ( $self, $tag ) = @_; | |
194 return $genbank_feature_tags{$tag}; | |
195 } | |
196 | |
197 no Moose; | |
198 1; | |
199 | |
200 __END__ | |
201 | |
202 =pod | |
203 | |
204 =encoding UTF-8 | |
205 | |
206 =head1 NAME | |
207 | |
208 CPT::BioData | |
209 | |
210 =head1 VERSION | |
211 | |
212 version 1.99.4 | |
213 | |
214 =head2 get321Table | |
215 | |
216 $bio->get321Table(); | |
217 | |
218 Convenience function which returns a codon translation table (3 letter ID to 1 letter code) | |
219 | |
220 =head2 getTranslationTable | |
221 | |
222 $bio->getTranslationTable(); | |
223 | |
224 Convenience function which returns a hash translated according to Bio::Tools::CodonTable | |
225 | |
226 This is done for speed reasons. CodonTable is very slow and we require better performance | |
227 | |
228 =head2 isValidTag | |
229 | |
230 if($cptbio->isValidTag('locus_tag')) { ... } | |
231 | |
232 Will validate a GBK feature tag | |
233 | |
234 =head1 AUTHOR | |
235 | |
236 Eric Rasche <rasche.eric@yandex.ru> | |
237 | |
238 =head1 COPYRIGHT AND LICENSE | |
239 | |
240 This software is Copyright (c) 2014 by Eric Rasche. | |
241 | |
242 This is free software, licensed under: | |
243 | |
244 The GNU General Public License, Version 3, June 2007 | |
245 | |
246 =cut |