Hi my name is Andrew Evans and I work at a lab at Vanderbilt University and
we're trying to use Biomart to query databases for gene data.  However, I
have been unable to run the queries effectively and I was hoping you could
help.

I want to be able to query the Biomart Central portal without using the Web
Interface manually.  I have been able to generate queries in Perl and XML
format via the Martview at biomart.org.

When I try to run this perl script:

# An example script demonstrating the use of BioMart API.
# This perl API representation is only available for configuration versions
>=  0.5
use strict;
use BioMart::Initializer;
use BioMart::Query;
use BioMart::QueryRunner;

my $confFile = "http://www.biomart.org/biomart/martservice?type=registry";;
#
# NB: change action to 'clean' if you wish to start a fresh configuration
# and to 'cached' if you want to skip configuration step on subsequent runs
from the same registry
#

my $action='clean';
my $initializer = BioMart::Initializer->new('registryFile'=>$confFile,
'action'=>$action);
my $registry = $initializer->getRegistry;

my $query =
BioMart::Query->new('registry'=>$registry,'virtualSchemaName'=>'default');


    $query->setDataset("mmusculus_gene_ensembl");
    $query->addFilter("refseq_dna",
["NM_016894","NM_177410","NM_145506","NM_001114662","NM_001159649","NM_026500","NM_178052","NM_001111316","NM_011210","NM_001039511","NM_001039512","NM_054102","NM_172843","NM_022329","NM_138314","NM_178071","NM_001113391","NM_001160262"]);
    $query->addAttribute("ensembl_gene_id");
    $query->addAttribute("ensembl_transcript_id");
    $query->addAttribute("external_gene_id");
    $query->addAttribute("name_1006");
    $query->addAttribute("go_cellular_component__dm_name_1006");
    $query->addAttribute("go_molecular_function__dm_name_1006");
    $query->addAttribute("refseq_dna");
    $query->addAttribute("refseq_peptide");

$query->formatter("TSV");

my $query_runner = BioMart::QueryRunner->new();
############################## GET COUNT ############################
# $query->count(1);
# $query_runner->execute($query);
# print $query_runner->getCount();
#####################################################################


############################## GET RESULTS ##########################
# to obtain unique rows only
# $query_runner->uniqueRowsOnly(1);

$query_runner->execute($query);
$query_runner->printHeader();
$query_runner->printResults();
$query_runner->printFooter();
#####################################################################


I get this message:

Can't locate BioMart/Initializer.pm in @INC (@INC contains:
/Library/Perl/Updates/5.10.0/darwin-thread-multi-2level
/Library/Perl/Updates/5.10.0
/System/Library/Perl/5.10.0/darwin-thread-multi-2level
/System/Library/Perl/5.10.0 /Library/Perl/5.10.0/darwin-thread-multi-2level
/Library/Perl/5.10.0 /Network/Library/Perl/5.10.0/darwin-thread-multi-2level
/Network/Library/Perl/5.10.0 /Network/Library/Perl
/System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.10.0 .) at query.pl line 4.
BEGIN failed--compilation aborted at query.pl line 4.


When i try to run wget -O results.txt '
http://www.biomart.org/biomart/martservice?query=Query.xml using query.xml i
created from Martview this is the results.txt:

Query ERROR: caught BioMart::Exception: non-BioMart die(): File does not
exist: Query.xml at /srv/biomart_server/
biomart.org/biomart-perl/lib/BioMart/Query.pm line 1935

When I try to run the Webexample.pl from the scripts directory using the xml
I got from martview (saved as query.xml) the terminal window says:

Usage: perl webExample.pl Query.xml
and there is no results.txt file.

Not sure If maybe I installed the Biomart-Perl API wrong or if I am not
configuring my perl or xml files correctly.  Any help would be greatly
appreciated.

Thanks
Andrew Evans
_______________________________________________
Users mailing list
[email protected]
https://lists.biomart.org/mailman/listinfo/users

Reply via email to