| 429 | | my $probe_feature_adaptor = $registry->get_adaptor($species, "funcgen", "ProbeFeature"); |
| 430 | | my $probe_adaptor = $registry->get_adaptor($species, "funcgen", "Probe"); |
| 431 | | my $probe_set_adaptor = $registry->get_adaptor($species, "funcgen", "Probeset"); |
| | 428 | #my $probe_feature_adaptor = $registry->get_adaptor($species, "funcgen", "ProbeFeature"); |
| | 429 | #my $probe_adaptor = $registry->get_adaptor($species, "funcgen", "Probe"); |
| | 430 | #my $probe_set_adaptor = $registry->get_adaptor($species, "funcgen", "Probeset"); |
| | 431 | my $array_adaptor = $registry->get_adaptor($species, "funcgen", "Array"); |
| 2177 | | ## Solution #1 only works after the efg database has been patched to key on gene ids |
| 2178 | | ## See NathJohnson_DB_patch.sql |
| 2179 | | #my $probe_features = $probe_adaptor->fetch_all_by_external_name($gene_stable_id); |
| 2180 | | ## Solution #2 only works after API method has been added |
| 2181 | | ## See NathJohnson_API_patch.txt |
| 2182 | | #my @probe_features = @{$probe_feature_adaptor->fetch_all_by_linked_transcript_Gene($gene)}; |
| 2183 | | my @probes = @{$probe_adaptor->fetch_all_by_linked_transcript_Gene($gene)}; |
| 2184 | | my @probe_sets = @{$probe_set_adaptor->fetch_all_by_linked_transcript_Gene($gene)}; |
| 2185 | | my @all_probes = (@probes, @probe_sets); |
| 2186 | | |
| 2187 | | foreach my $probe (@all_probes) { |
| 2188 | | #my $probe = $pf->probe(); |
| 2189 | | my $array_list = $probe->get_all_Arrays(); |
| 2190 | | |
| 2191 | | foreach my $array (@$array_list){ |
| 2192 | | if (!$array) { |
| | 2186 | my @arrayList = (@{$arrayTable{$genus_species}}); |
| | 2187 | foreach my $array_name (@arrayList){ |
| | 2188 | |
| | 2189 | print "fetching array: $array_name...\n"; |
| | 2190 | my $array = $array_adaptor->fetch_by_name_vendor($array_name); |
| | 2191 | my $p_dbname = mysql_quotes($array->vendor()); |
| | 2192 | |
| | 2193 | print "getting all probes...\n"; |
| | 2194 | my @plist = (); |
| | 2195 | if ($p_dbname =~ /^\'AFFY/i) { |
| | 2196 | @plist = @{$array->get_all_ProbeSets()}; |
| | 2197 | } else { |
| | 2198 | @plist = @{$array->get_all_Probes()}; |
| | 2199 | } |
| | 2200 | |
| | 2201 | my $pcount = $#plist; |
| | 2202 | print "probe count= $pcount\n"; |
| | 2203 | |
| | 2204 | %{$seen{dbRel}} = (); |
| | 2205 | foreach my $p (@plist) { |
| | 2206 | my $p_display_id = 'null'; |
| | 2207 | if ($p_dbname =~ /^\'AFFY/i) { # Affy uses probesets |
| | 2208 | $p_display_id = $p->name(); |
| | 2209 | } else { |
| | 2210 | $p_display_id = $p->get_probename($array_name); |
| | 2211 | } |
| | 2212 | |
| | 2213 | ## Handle case when list of of probe names is returned |
| | 2214 | my @pnamelist = split(',', $p_display_id); |
| | 2215 | foreach my $p_name (@pnamelist){ |
| | 2216 | |
| | 2217 | my $p_primary_id = mysql_quotes($p_name); |
| | 2218 | my $p_release = mysql_quotes($array->name()); |
| | 2219 | |
| | 2220 | %{$seen{Gene}} = (); |
| | 2221 | my @dbeList = @{$p->get_all_DBEntries()}; |
| | 2222 | foreach my $dbe (@dbeList){ |
| | 2223 | my $dbe_dbname = $dbe->dbname(); |
| | 2224 | my $gene = ""; |
| | 2225 | if ($dbe_dbname =~ /core_Transcript$/){ |
| | 2226 | $gene = $gene_adaptor->fetch_by_transcript_stable_id($dbe->primary_id()); |
| | 2227 | } else { |
| 2194 | | } |
| 2195 | | my $pf_dbname = mysql_quotes($array->vendor()); |
| 2196 | | my $pf_display_id = 'null'; |
| 2197 | | if ($pf_dbname =~ /^\'AFFY/i) { # Affy uses probesets |
| 2198 | | $pf_display_id = mysql_quotes($probe->name()); ##probeset()->name()); |
| 2199 | | } else { |
| 2200 | | $pf_display_id = mysql_quotes($probe->get_probename($array->name())); |
| 2201 | | } |
| 2202 | | |
| 2203 | | my $pf_primary_id = $pf_display_id; |
| 2204 | | my $pf_description = mysql_quotes($array->description()); |
| 2205 | | my $pf_release = mysql_quotes($array->name()); |
| 2206 | | my $pf_status = mysql_quotes("XREF"); #enum |
| 2207 | | my $pf_version = mysql_quotes($array->format()); |
| 2208 | | my $pf_info_text = mysql_quotes($array->type()); |
| 2209 | | my $pf_info_type = mysql_quotes("SEQUENCE_MATCH"); #enum |
| 2210 | | #my $pf_synonyms = $probe->get_all_probenames(); |
| 2211 | | my $pf_syns = ''; ##join("|", @$pf_synonyms); |
| 2212 | | $pf_syns = mysql_quotes($pf_syns); |
| 2213 | | |
| 2214 | | #print "PROBE: $pf_primary_id | $pf_dbname | $pf_release \n"; |
| 2215 | | |
| 2216 | | $ADMIN_Xrefs{$pf_dbname} = [$pf_dbname, $pf_display_id, $pf_primary_id, $pf_description, $pf_syns, |
| 2217 | | $pf_release, $pf_status, $pf_version, $pf_info_text, $pf_info_type]; |
| 2218 | | |
| 2219 | | if ($pf_dbname =~ /^\'AFFY/i && $pf_release !~ /Ex-/){ #catch all types #skip all exon arrays |
| 2220 | | $ADMIN_Xrefs{$pf_dbname}[10] = "\'Y\'"; # collected |
| 2221 | | if (!${$seen{Affy}{$pf_primary_id}}++){ |
| 2222 | | $$GeneTables{Affy}{$count.$dot.$subcount{Affy}} = [$pf_primary_id, $pf_dbname, $pf_release]; |
| 2223 | | $$Ensembl_GeneTables{Affy}{$count.$dot.$subcount{Affy}} = [$gene_stable_id, $pf_primary_id]; |
| | 2229 | } |
| | 2230 | $gene_stable_id = mysql_quotes($gene->stable_id()); |
| | 2231 | if (${$seen{Gene}{$gene_stable_id}}++){ |
| | 2232 | next; |
| | 2233 | } |
| | 2234 | |
| | 2235 | ## Collect info on first occurence |
| | 2236 | my $db_release = $p_dbname."-".$p_release; |
| | 2237 | if (!${$seen{DbRel}{$db_release}}++){ |
| | 2238 | my $p_description = mysql_quotes($array->description()); |
| | 2239 | my $p_status = mysql_quotes("XREF"); #enum |
| | 2240 | my $p_version = mysql_quotes($array->format()); |
| | 2241 | my $p_info_text = mysql_quotes($array->type()); |
| | 2242 | my $p_info_type = mysql_quotes("SEQUENCE_MATCH"); #enum |
| | 2243 | my $p_syns = mysql_quotes(""); |
| | 2244 | |
| | 2245 | $ADMIN_Xrefs{$db_release} = [$p_dbname, $p_primary_id, $p_primary_id, $p_description, $p_syns, |
| | 2246 | $p_release, $p_status, $p_version, $p_info_text, $p_info_type]; |
| | 2247 | } |
| | 2248 | |
| | 2249 | if ($p_dbname =~ /^\'AFFY/i #catch all types |
| | 2250 | && $p_release !~ /Ex-/ && $p_release !~ /U133/){ #skip all exon array and old arrays |
| | 2251 | $ADMIN_Xrefs{$db_release}[10] = "\'Y\'"; # collected |
| | 2252 | $$GeneTables{Affy}{$count.$dot.$subcount{Affy}} = [$p_primary_id, $p_dbname, $p_release]; |
| | 2253 | $$Ensembl_GeneTables{Affy}{$count.$dot.$subcount{Affy}} = [$gene_stable_id, $p_primary_id]; |
| 2227 | | elsif ($pf_dbname =~ /^\'Agilent/i){ #catch all types |
| 2228 | | $ADMIN_Xrefs{$pf_dbname}[10] = "\'Y\'"; # collected |
| 2229 | | if (!${$seen{Agilent}{$pf_primary_id}}++){ |
| 2230 | | $$GeneTables{Agilent}{$count.$dot.$subcount{Agilent}} = [$pf_primary_id, $pf_dbname, $pf_release]; |
| 2231 | | $$Ensembl_GeneTables{Agilent}{$count.$dot.$subcount{Agilent}} = [$gene_stable_id, $pf_primary_id]; |
| | 2256 | elsif ($p_dbname =~ /^\'Agilent/i){ #catch all types |
| | 2257 | $ADMIN_Xrefs{$db_release}[10] = "\'Y\'"; # collected |
| | 2258 | $$GeneTables{Agilent}{$count.$dot.$subcount{Agilent}} = [$p_primary_id, $p_dbname, $p_release]; |
| | 2259 | $$Ensembl_GeneTables{Agilent}{$count.$dot.$subcount{Agilent}} = [$gene_stable_id, $p_primary_id]; |
| 2235 | | elsif ($pf_dbname =~ /^\'Illumina/i){ #catch all types |
| 2236 | | $ADMIN_Xrefs{$pf_dbname}[10] = "\'Y\'"; # collected |
| 2237 | | if (!${$seen{Illumina}{$pf_primary_id}}++){ |
| 2238 | | $$GeneTables{Illumina}{$count.$dot.$subcount{Illumina}} = [$pf_primary_id, $pf_dbname, $pf_release]; |
| 2239 | | $$Ensembl_GeneTables{Illumina}{$count.$dot.$subcount{Illumina}} = [$gene_stable_id, $pf_primary_id]; |
| | 2262 | elsif ($p_dbname =~ /^\'Illumina/i){ #catch all types |
| | 2263 | $ADMIN_Xrefs{$db_release}[10] = "\'Y\'"; # collected |
| | 2264 | $$GeneTables{Illumina}{$count.$dot.$subcount{Illumina}} = [$p_primary_id, $p_dbname, $p_release]; |
| | 2265 | $$Ensembl_GeneTables{Illumina}{$count.$dot.$subcount{Illumina}} = [$gene_stable_id, $p_primary_id]; |