IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bioinformatique Perl Discussion :

OO méthode multiple_digest de Bio::Restriction::Analysis


Sujet :

Bioinformatique Perl

  1. #1
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut OO méthode multiple_digest de Bio::Restriction::Analysis
    Bio::Restriction::Analysis
    mulitple_digest

    Title : multiple_digest
    Function : perform a multiple digest on a sequence
    Returns : $self so you can go and get any of the other methods
    Arguments : An enzyme collection

    Multiple digests can use 1 or more enzymes, and the data is stored
    in as if it were an enzyme called multiple_digest. You can then
    retrieve information about multiple digests from any of the other
    methods.

    You can use this method in place of $re->cut('multiple', $enz_coll);

    Bio::Restriction::EnzymeCollection
    # Get a Bio::Restriction::Enzyme object for a particular enzyme by name.
    my $enz = $default_collection->get_enzyme( 'EcoRI' );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    my @enz_obj;
     
    foreach my $enz_name ('Alu', 'EcoR1'){
     
      # Get a Bio::Restriction::Enzyme object for a particular enzyme by name.
      push @enz_obj, $default_collection->get_enzyme( $enz_name );
     
    }



    Si ensuite j'ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $self = $ra->cut('multiple', @enz_obj);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $self = $ra->cut('multiple', $default_collection->get_enzyme('Alu') );
    j'ai l'erreur :
    ------------- EXCEPTION -------------
    MSG: You must supply a separate enzyme collection for multiple digests
    STACK Bio::Restriction::Analysis::cut C:/Perl/site/lib/Bio/Restriction/Analysis.pm:356
    STACK toplevel Restriction_analysis.pl:71

    --------------------------------------
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $self = $ra->mulitple_digest(@enz_obj);
    c'est
    Can't locate object method "mulitple_digest" via package "Bio::Restriction::Analysis" at Restriction_analysis.pl line 71, <DATA> line 1064.
    J'ai essayé ces méthodes avec des références d'array mais ça ne fonctionne pas non plus. Avez-vous une idée? Quel doit être l'argument quand on veut utiliser plusieurs enzymes?

    Voici un code qui peut directement être testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #!/usr/bin/perl -w
     
    use strict;
     
    use Bio::Restriction::Analysis;
     
     
     
    # liste des enzymes diponibles
    my $default_collection = Bio::Restriction::EnzymeCollection->new();
     
     
    # get a DNA sequence from somewhere
    my $seq = Bio::PrimarySeq->new
    (-seq =>'AGCTTAATTCATTAGCTCTGACTGCAACGGGCAATATGTCTC',
    -primary_id => 'synopsis',
    -molecule => 'dna');
     
     
    # now start an analysis.
    # this is using the default set of enzymes
    my $ra = Bio::Restriction::Analysis->new(-seq=>$seq, -is_circular => 1);
     
     
    my @enz_obj;
     
    foreach my $enz_name ('Alu', 'EcoR1'){
     
      # Get a Bio::Restriction::Enzyme object for a particular enzyme by name.
      push @enz_obj, $default_collection->get_enzyme( $enz_name );
     
    }
     
    my $self = $ra->mulitple_digest(@enz_obj);

    Merci pour votre aide;
    -- Jasmine --

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    J'arrive à ne plus avoir d'erreur en utilisant la méthode cutters au lieu de get_enzyme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    foreach my $enz_name ('Alu', 'EcoR1'){
     
     
      # Get a Bio::Restriction::EnzymeCollection object containing the enzymes
      # that have the equivalent of 6-bp recognition sequences.  
      my $six_cutters = $default_collection->cutters( 6 );
     
     
      my $self = $ra->cut('multiple', $six_cutters);
     
    }
    J'aimerais obtenir le même résultat mais en utilisant le nom de l'enzyme comme argument.


    Que signifie
    Returns : $self so you can go and get any of the other methods
    On peut utiliser sur $self toutes les autres méthodes de quoi?
    -- Jasmine --

  3. #3
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Voila, j'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      # See 'CUSTOM COLLECTIONS' below for an example of creating a
      # Bio::Restriction::EnzymeCollection object with a specified subset of
      # enzymes using methods provided by the Bio::RestrictionEnzyme class.
     
      my $complete_collection =
          Bio::Restriction::EnzymeCollection->new();
      my $type_ii_collection  =
          Bio::Restriction::EnzymeCollection->new( -empty => 1 );
      $type_ii_collection->enzymes(
          grep { $_->type() eq 'II' } $complete_collection->each_enzyme() );
    -- Jasmine --

  4. #4
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Voila ce que je voulais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    my $new_collection =
        Bio::Restriction::EnzymeCollection->new( -empty => 1 );
     
     
    foreach my $enz_name ('EcoR1', 'AluI' ){	 
      $new_collection->enzymes(
          grep { $_->name() eq $enz_name } $default_collection->each_enzyme() );	
    }
     
    # Bio::Restriction::Analysis 
    my $self = $ra->cut('multiple', $new_collection);
     
     
    my @frags = $self->fragments;
     
    print "fragment lengths: ", join(' & ', map {length $_} @frags), "\n";

    ... mais cela semble impossible à obtenir :
    If passes an enzyme collection it will return the result of a multiple digest. This : will also cause the special enzyme 'multiple_digest' to be created so you can get : other information about this multiple digest. (TMTOWTDI).

    There is a minor problem with this and $self->fragments that I haven't got a good answer for (at the moment). If the sequence is not cut, do we return undef, or the whole sequence?

    For linear fragments it would be good to return the whole sequence. For circular fragments I am not sure.

    At the moment it returns the whole sequence with start of 1 and end of length of the sequence. For example:
    -- Jasmine --

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/11/2014, 13h37
  2. Problème avec le module Bio::Restriction::Analysis
    Par Jasmine80 dans le forum Modules
    Réponses: 6
    Dernier message: 01/09/2009, 13h18
  3. Afficher la zone de données du BIOS
    Par foussa dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 20/01/2003, 16h47
  4. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26
  5. Cryptage en C selon la méthode de césat
    Par shenron dans le forum C
    Réponses: 2
    Dernier message: 31/05/2002, 08h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo