Página 1 de 1

Agregar glyph a la biblioteca Bio::Graphics::Glyph

NotaPublicado: 2012-02-17 11:09 @506
por jsgarcia
Hola a todos,

Estoy investigando cómo agregar nuevos Glyph para crear mis propios dibujos. He modificado los Glyph existentes pero no quisiera eliminar los dibujos predefinidos. Espero que alguien me pueda orientar para poder agregar nuevos Glyph.

Saludos
jsgarcia

Re: Agregar glyph a la biblioteca Bio::Graphics::Glyph

NotaPublicado: 2012-02-17 11:40 @528
por explorer
Bienvenido a los foros de Perl en español, jsgarcia.

La documentación de Bio::Graphics::Glyph dice que los desarrolladores de grilos deberían crear sus objetos a partir de Bio::Graphics::Glyph::generic, ya que este último incorpora las facilidades de etiquetado y dibujo de flechas.

En principio, podrías crear una nueva clase, que herede propiedades y métodos de las clases de dibujo de Bio::Graphics::Glyph::*.

En este Howto se muestra cómo crear los gráficos:
HOWTO:Graphics

Listado de glifos disponibles y sus opciones:
Ejemplo de gráficos hechos con estos módulos.

Re: Agregar glyph a la biblioteca Bio::Graphics::Glyph

NotaPublicado: 2012-02-17 12:10 @548
por jsgarcia
Muchas gracias,

Ya he realizado pruebas, he agregado un glyph en /usr/local/share/perl/5.12.4/Bio/Graphics/Glyph y éste hereda del generic, mi glifo agregado se llama prueba.pm, lo mando a llamar en el siguiente código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. # This is code example 1 in the Graphics-HOWTO
  4. use strict;
  5. use Bio::Graphics;
  6. use Bio::SeqFeature::Generic;
  7.  
  8. my $panel = Bio::Graphics::Panel->new(
  9.                                       -length => 1000,
  10.                                       -width  => 800
  11.                                      );
  12. my $track = $panel->add_track(
  13.                               -glyph => 'prueba',
  14.                               -label => 1
  15.                              );
  16.  
  17. while (<>) { # read blast file
  18.   chomp;
  19.   next if /^\#/;  # ignore comments
  20.   my($name,$score,$start,$end) = split /\t+/;
  21.   my $feature = Bio::SeqFeature::Generic->new(
  22.                                               -display_name => $name,
  23.                                               -score        => $score,
  24.                                               -start        => $start,
  25.                                               -end          => $end
  26.                                              );
  27.   $track->add_feature($feature);
  28. }
  29.  
  30. print $panel->png;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4



Al ejecutar genera el siguiente error
Can't locate object method "new" via package "Bio::Graphics::Glyph::prueba" at /usr/local/share/perl/5.12.4/Bio/Graphics/Glyph/Factory.pm line 324, <> line 2.
display: no decode delegate for this image format `/tmp/magick-XX3xLN4z' @ error/constitute.c/ReadImage/533.



Sin embargo si modifico un existente (por ejemplo broken_line.pm) ejecuta correctamente, no sé si se tenga que dar de alta el .pm en algún otro archivo de la librería.

Saludos
jsgarcia

Re: Agregar glyph a la biblioteca Bio::Graphics::Glyph

NotaPublicado: 2012-02-17 12:25 @559
por jsgarcia
Hola.

Ya logré ejecutar un glyph propio me faltaba agregar el paquete dentro del archivo del glyph:
package Bio::Graphics::Glyph::prueba;

Saludos,
jsgarcia