• Publicidad

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

Perl aplicado a la bioinformática

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

Notapor jsgarcia » 2012-02-17 11:09 @506

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
jsgarcia
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2012-02-17 11:01 @501

Publicidad

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

Notapor explorer » 2012-02-17 11:40 @528

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.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

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

Notapor jsgarcia » 2012-02-17 12:10 @548

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
jsgarcia
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2012-02-17 11:01 @501

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

Notapor jsgarcia » 2012-02-17 12:25 @559

Hola.

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

Saludos,
jsgarcia
jsgarcia
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2012-02-17 11:01 @501


Volver a Bioinformática

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron