[ensembl-dev] gene to coords code issue
William Spooner
william.spooner at eaglegenomics.com
Fri Apr 20 09:45:21 BST 2012
Hi Sean,
You are connecting on the wrong port to useastdb. Try the following;
mysql -h useastdb.ensembl.org -P 5306 -u anonymous
Best,
Will
On 20 Apr 2012, at 05:49, Javier Herrero wrote:
> Dear Sean
>
> The method fetch_all_by_external_name returns a reference to an array of Bio::EnsEMBL::Gene objects. All the methods named "fetch_all_by..." return a reference to an array. The array might be empty or contain just one entry, but you will always get a reference to an array. Contrarily, all the methods named "fetch_by..." return either undef or 1 single object.
>
> Typically, you would use a foreach loop to go through all possible returned object:
>
> open OUT, ">$gene_file.coords";
> for my $geneid ( @unique ) {
> chomp $geneid;
> ensembl_coords($geneid);
> }
>
> sub ensembl_coords {
> my ($id) = @_;
>
> my $adaptor = $registry->get_adaptor( 'Human', 'Core', 'gene' );
>
> my $all_genes = $adaptor->fetch_all_by_external_name($id);
>
> foreach my $gene (@$all_genes) {
> $chr = $gene->seq_region_name();
> $start = $gene->seq_region_start();
> $end = $gene->seq_region_end();
> print OUT join("\t", $chr,$start,$end,$id),"\n"; #I have added the original $id here
> }
>
> }
>
>
> I hope the helps
>
> Javier
>
>
>
> On 20/04/12 04:49, Sean O'Keeffe wrote:
>> Hi,
>> I've used the code below on multiple occasions to convert external gene names to chromosome coords and it worked fine.
>> However when I tried it just now I get the error for the very first gene DNAI2 and the script crashes:
>>
>> Can't call method "seq_region_name" on unblessed reference
>>
>> When I tried fetch_by_display_label($id) - I get:
>>
>> Can't call method "seq_region_name" on an undefined value
>>
>> Have I missed something?
>> Thanks for any help,
>> Sean.
>>
>> p.s. I tried connecting to the useastdb.ensembl.org, as I'm in the states, but It gave the following (maybe the 2 issues are related):
>>
>> DBI connect('host=useastdb.ensembl.org;port=3306','anonymous',...) failed: Can't connect to MySQL server on 'useastdb.ensembl.org' (111) at /home/sean/tools/ensembl_53/modules/Bio/EnsEMBL/Registry.pm line 1329
>> Can't call method "selectall_arrayref" on an undefined value at /home/sean/tools/ensembl_53/modules/Bio/EnsEMBL/Registry.pm line 1332.
>>
>> ==============
>>
>> #!/usr/bin/perl
>>
>> use strict;
>> use lib '/home/sean/tools/ensembl_53/modules';
>>
>> use Bio::SeqIO;
>> use Bio::Root::IO;
>> use Bio::EnsEMBL::DBSQL::BaseAdaptor;
>> use Bio::EnsEMBL::Registry;
>>
>> my $registry = 'Bio::EnsEMBL::Registry';
>> #$registry->load_registry_from_db(-host => 'useastdb.ensembl.org',-user => 'anonymous');
>> $registry->load_registry_from_db(-host => 'ensembldb.ensembl.org',-user => 'anonymous');
>>
>> open OUT, ">$gene_file.coords";
>> for my $geneid ( @unique ) {
>> chomp $geneid;
>> ($chr,$start, $end) = ensembl_coords($geneid);
>> print OUT join("\t", $chr,$start,$end,$geneid),"\n";
>> }
>>
>> sub ensembl_coords {
>> my ($id) = @_;
>>
>> my $adaptor = $registry->get_adaptor( 'Human', 'Core', 'gene' );
>>
>> my $gene = $adaptor->fetch_all_by_external_name($id);
>> # my $gene = $adaptor->fetch_by_display_label($id);
>>
>> $chr = $gene->seq_region_name();
>> $start = $gene->seq_region_start();
>> $end = $gene->seq_region_end();
>> return ($chr,$start,$end);
>>
>> }
>>
>>
>> _______________________________________________
>> Dev mailing list
>> Dev at ensembl.org
>>
>> List admin (including subscribe/unsubscribe):
>> http://lists.ensembl.org/mailman/listinfo/dev
>>
>> Ensembl Blog:
>> http://www.ensembl.info/
>
> --
> Javier Herrero, PhD
> Ensembl Coordinator and Ensembl Compara Project Leader
> European Bioinformatics Institute (EMBL-EBI)
> Wellcome Trust Genome Campus, Hinxton
> Cambridge - CB10 1SD - UK
>
> _______________________________________________
> Dev mailing list Dev at ensembl.org
> List admin (including subscribe/unsubscribe): http://lists.ensembl.org/mailman/listinfo/dev
> Ensembl Blog: http://www.ensembl.info/
---
William Spooner http://eaglegenomics.com
M:07779-663045 E:william.spooner at eaglegenomics.com
More information about the Dev
mailing list