Le API di ensembl non sono troppo difficili da imparare... purtroppo però temo che esista solo il tutorial di ensembl.
Se vai su http://www.ensembl.org/info/using/api/core/index.html trovi anche gli schemi del database e la documentazione dei singoli moduli (ottenibile anche tramite perldoc, credo).
Essenzialmente si tratta di fare dei grandi copia e incolla.
La prima cosa da mettere in ogni script é inizializzare un registro, ovvero configurare una connessione al database:
use Bio::EnsEMBL::Registry;
my $registry = 'Bio::EnsEMBL::Registry';
$registry->load_registry_from_db(
-host => 'ensembldb.ensembl.org',
-user => 'anonymous'
);
Dopodiché, hai un oggetto di tipo B::E::Registry, da cui puoi ottenere degli adattatori:
my $slice_adaptor = $registry->get_adaptor( 'Human', 'Core', 'Slice' );
my $gene_adaptor = $registry->get_adaptor( 'Human', 'Core', 'Gene' );
Questi servono per indicare il tipo di oggetto su cui vuoi lavorare, per esempio geni, cromosomi o slices (sequenze, o meglio regioni).
Da questi puoi ottenere degli oggetti rappresentanti appunto geni, o sequenze, etc..:
$slice = $slice_adaptor->fetch_by_region( 'clone', 'AL359765.6' );
my $slice = $slice_adaptor->fetch_by_region( 'chromosome', '20', 10e6, 11e6 );
my $gene = $gene_adaptor->fetch_by_display_label('COG6');
Sono d'accordo sul fatto che la documentazione non sia esattamente una meraviglia.
Ti consiglio di lavorare con eclipse e il modulo PadWalker, che in modalità Debug ti permette di osservare il contenuto di ogni variabile durante l'esecuzione.
Se hai dubbi puoi chiedere pure, perché io le ho usate per un certo periodo.