[Bioperl-l] Finding all human paralogues

Yuval Itan y.itan at ucl.ac.uk
Tue Mar 14 16:01:11 UTC 2006


Hello,

I need to find the number of duplications for each human gene using Bioperl. I 
would be grateful for your advice about my following problem:
I have retrieved one sequence for a running test:

$human_genes->[$i]->get_longest_peptide_Member()->sequence

 and would like to Blastp it against the whole human database. I have 
installed the Blast rpm on my computer, but I get this error message:

linux:/home/Yuval # perl test7

-------------------- WARNING ---------------------
MSG: cannot find path to blastall
---------------------------------------------------
Can't call method "next_result" on an undefined value at test7 line 50.

Can you suggest how to solve that?
Also, I would like to have the Blastp function inside my own programme. Is 
there any available source code for that?

Thank you very much for any help. In case it might help, here is my whole 
short programme:

#!/usr/local/bin/perl -w

use lib "/home/Yuval/ensembl/modules";
use lib "/home/Yuval/bioperl-live";
use lib "/home/Yuval/ensembl-compara/modules";

use Bio::EnsEMBL::Compara::DBSQL::DBAdaptor;

use Bio::EnsEMBL::DBSQL::DBAdaptor;
use Bio::EnsEMBL::Utils::Slice qw(split_Slices);

use Bio::EnsEMBL::Registry;

use Bio::Seq;
use Bio::Tools::Run::StandAloneBlast;

my $host = 'ensembldb.ensembl.org';
my $user = 'anonymous';
my $dbname = 'ensembl_compara_37';

my $comparadb= new Bio::EnsEMBL::Compara::DBSQL::DBAdaptor(
    -host	=> $host,
    -user	=> $user,
    -dbname => $dbname);

use strict;
use Bio::EnsEMBL::Registry;
use Bio::EnsEMBL::Utils::Exception qw(throw);
use Bio::SimpleAlign;
use Bio::AlignIO;
use Bio::LocatableSeq;
use Getopt::Long;

my $human_genes = $comparadb->get_MemberAdaptor->fetch_by_source_taxon(
        'ENSEMBLGENE', 9606); # getting all human genes
	
my $i = 0;

#print  $human_genes->[$i]->get_longest_peptide_Member()->sequence, "\n\n";
#print  $human_genes->[$i+1]->get_longest_peptide_Member()->sequence, "\n\n";

my @params = (program  => 'blastp', database => $human_genes, _READMETHOD => 
'SearchIO' );

my $blast_obj = Bio::Tools::Run::StandAloneBlast->new(@params);

my $seq_obj = Bio::Seq->new(-id  =>"test query", -seq 
=>$human_genes->[$i]->get_longest_peptide_Member()->sequence);

my $report_obj = $blast_obj->blastall($seq_obj);

my $result_obj = $report_obj->next_result;

print $result_obj->num_hits;



More information about the Bioperl-l mailing list