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 :

Afficage Séquence en Fasta ds Script CGI


Sujet :

Bioinformatique Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Points : 37
    Points
    37
    Par défaut Afficage Séquence en Fasta ds Script CGI
    Bonjour,

    J'aimerais pouvoir faire l'affichage de ma séquence sous la forme d'un fichier FASTA.
    J'ai vu qu'avec le module SeqIO, il était possible d'écrire sa séquence dans un fichier sous la forme d'un FASTA.
    Hors je voudrais le faire dans mon interface crée avec perl cgi.
    Voila un exemple de ce que je voudrais réaliser :
    Lien

    Si quelqu'un peut me conseiller c'est pas de refus!
    Merci

  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
    Sous quel format est ta séquence? Est-elle dans un fichier fasta?
    Quand tu récupère ta séquence via le module Bio::seqIO, elle se retrouve sans espace. Tu dois donc la découper comme tu le souhaites.


    Exemple de script :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    #!/usr/bin/perl
     
     
    use strict;
    use warnings;
     
     
    use Bio::SeqIO;
     
    my $file = 'sequence.txt';
    my $in  = Bio::SeqIO->new(-file => $file , '-format' => 'fasta');
     
     
    # nombre de nucléotides à afficher par ligne
    my $nuc_per_line = 50;
     
    while ( my $seq = $in->next_seq() ) {
     
    	# affichage id et description
    	print '>'.$seq->primary_id.$seq->desc."\n";
     
    	my $start = 1;
     
    	# somme des lignes entières de nucléotides
    	# indicateur de la dernière ligne entière à écrire
    	my $end = int(length($seq->seq)/$nuc_per_line) * $nuc_per_line;
     
    	# découpage de la séquence en tronçons de $nuc_per_line nucléotides
    	while ( $seq->subseq($start, $start+$nuc_per_line) ){ 
     
    		# indice des positions où on coupe
    		#print "$start\t".($start+$nuc_per_line-1)."\n";
     
    		print $seq->subseq($start, $start+$nuc_per_line-1), "\n";
    		$start += $nuc_per_line;
     
     
    		# fn de la séquence, dernière ligne pouvant être plus courte
    		if ( ($start > $end) && ($start <= length($seq->seq)) ){
     
    			# indice de la dernière position où on coupe
    			# print "$start\t".length($seq->seq)."\n";
     
    			print $seq->subseq($start, length($seq->seq) ), "\n";
     
    			# on quitte le while, évite le message d'erreur
    			# prévenant qu'on est en dehors de la séquence
    			last;
    		}
    	}
    }
    -- Jasmine --

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Points : 37
    Points
    37
    Par défaut
    Salut, merci pour ta réponse.

    En fait la séquence provient d'une base de données en local et est stockée dans une variable sous la forme d'une chaîne de caractère.
    Et je ne veux pas l'imprimer dans un fichier mais dans le flux de ma page html codé avec Perl CGI.

    J'arrive à avoir une visualisation avec 20 nucléotides sur chaque ligne mais j'ai cependant un petit décalage à chaque fin de ligne en fonction de la composition des lignes en nucléotides.
    Faut -il utiliser un tableau? Bon après je pense que c'est plus une question de html qu'un problème de module de bioinfo...mais bon si quelqu'un a une idée, elle sera toujours la bienvenue. Merci.

    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
     
    my $seq1 = Bio::Seq->new ( -seq  => $sequence, -id   => 'my seq',-desc => 'this is a new Seq');
     
    		my $len = $seq1->length();
    		my $substring='';		
    		my $start =1;
    		my $end=20;
     
    		for (my $i=0; $i <= int($len/20); $i++ ){
     
    		if ($i != int($len/20)){
     
    	  		print $substring = $seq1->subseq($start,$end)."<br></br>";
     
    			$start=$start+20;
    			$end=$end+20;
    		}
     
    		else { print $substring = $seq1->subseq($end-4,$len)."<br></br>";  }
     
    		}

  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
    Citation Envoyé par Jane Home Voir le message
    J'arrive à avoir une visualisation avec 20 nucléotides sur chaque ligne mais j'ai cependant un petit décalage à chaque fin de ligne en fonction de la composition des lignes en nucléotides.
    Faut -il utiliser un tableau? Bon après je pense que c'est plus une question de html qu'un problème de module de bioinfo...mais bon si quelqu'un a une idée, elle sera toujours la bienvenue.
    Je ne m'y connais pas très bien en html mais je sais qu'une solution afin que les nucléotides de différentes lignes s'alignent est d'utiliser une des polices courrier.
    -- Jasmine --

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Points : 37
    Points
    37
    Par défaut
    Ca c'est de la bidouille ! Mais super c'est exactement ce que je voulais et ça marche comme dans mon exemple plus haut.
    Un grand merci.
    Bon weekend!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/02/2006, 14h14
  2. [Apache] Erreur dans mes scripts CGI
    Par GLDavid dans le forum Apache
    Réponses: 2
    Dernier message: 28/08/2004, 06h14
  3. [web] afficher le résultat d'un script cgi en perl
    Par Leishmaniose dans le forum Web
    Réponses: 8
    Dernier message: 10/06/2004, 18h36
  4. [web] Lancer un script CGI
    Par Calou20 dans le forum Web
    Réponses: 10
    Dernier message: 01/03/2004, 16h48
  5. Réponses: 2
    Dernier message: 19/06/2003, 13h48

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