FORUM Tom's Hardware » Programmation » Autre » Probleme dans pgme perl :lecture fichier FASTA
 

Probleme dans pgme perl :lecture fichier FASTA

Il y a 452 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici



Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Probleme dans pgme perl :lecture fichier FASTA
 
Plus d'informations

Coucou :)
Voilà j'ai un programme qui traite un gros fichier de séquences d'ADN au format FASTA, il permet de trier les séquences dans 3 tableaux associatifs différents (%tab5, %tab3 et %tabref) en fonction du type de séquence .
Ces tableaux associatifs contiennent la ligne de commentaire (commencant par un > ) en clé et la séquence correspondante en valeur.

Le soucis est que le fichier de séquence n'est pas véritablement au format FASTA il possede des lignes vides et des lignes commentées (commencant par un #), ce qui explique la présence du :

Code :
  1. if ($_ =~ /^[^\s+\#]/



Ce programme fonctionne correctement sur chacun des quatres quarts du fichier et ceci rapidement (de ll'ordre de 2 minutes) mais quand j'essaye sur le fichier entier je n'en ai jamais vu la fin en sachant que j'ai attendu pratiquement 2heures d'execution...
Ce fichier contient 507 629 sequences...

Je met le code ci dessous:

Code :
  1. my (%tab5, %tab3, %tabref);
  2. my ($defline, $seq, $defline5, $defline3, $deflineref);
  3. my $numtot=0;
  4. my $num5=0;
  5. my $num3=0;
  6. my $numref=0;
  7. #=========================================================================================================================================
  8. #                                                        Lecture du fichier à traiter (UNIGENE)
  9. #=========================================================================================================================================
  10. my $seq_file = $ARGV[0];
  11. my $seq_res = $ARGV[1];
  12. chomp ($seq_file);
  13. # ouvrir le fichier en lecture
  14. open (SEQ,"$seq_file" ) || die "cannot open '$seq_file' : $!";
  15. open (RES,">$seq_res" ) || die "cannot open '$seq_res' : $!";
  16. #=========================================================================================================================================
  17. #                                                          Repartition des sequences
  18. #=========================================================================================================================================
  19. # lire le fichier
  20. while (<SEQ> ) {
  21.     chomp;
  22.  
  23.     # prendre la defline: elle devient la clef de chacun des tableaux associatifs %tab5, %tab3 et %tabref
  24.   if ($_ =~ /^[^\s+\#]/){ #evite les lignes vides et les lignes commencant par un #
  25.       if ($_ =~ /^>.*/x) { #si la ligne commence par un >
  26.       $numtot++;
  27.       $defline = $_;
  28.      
  29.      
  30.       if ($defline =~ "clone_end=5'" ) {      #selection des sequences 5'
  31.           #  put_tab(\%tab5, $defline);
  32.           $num5++;
  33.           $defline5 = $defline;
  34.           $tab5{$defline5} ="";
  35.       }
  36.      
  37.       elsif ($defline =~ "clone_end=3'" ) {    #selection des sequences 3'
  38.           $num3++;
  39.           $defline3 = $defline;
  40.           $tab3{$defline3}="";
  41.       }
  42.      
  43.       else {
  44.           $numref++;
  45.           $deflineref = $defline;            #selection des sequences ref
  46.           $tabref{$deflineref}="";
  47.       }
  48.       }
  49.      
  50.       # attibuer la séquence pour sa defline correspondante
  51.      
  52.       elsif ($defline =~ "clone_end=5'" ) {
  53.      
  54.       $tab5{$defline} .= $_;
  55.       }
  56.      
  57.       elsif ($defline =~ "clone_end=3'" ) {
  58.       $tab3{$defline} .= $_;
  59.       }
  60.      
  61.       elsif ($defline)  {
  62.      
  63.       $tabref{$defline} .=$_;
  64.       }
  65.   }
  66.     print1 "$numtot\n";
  67. }
  68. print2 "$numtot\n";
  69. close (SEQ);



Si je fais le print1 je vois bien l'evolution du traitement...mais le print2 je ne le vois pas en attendant pratiquement 2heures ... j'estime que c'est pas normal et donc je peux pas savoir si ca bug a un endroit ou si le pgme tourne tjs...

Merci d'avance pour votre aide,

:wahoo: Perlgirl :wahoo:

Profil : Pointeur
Plus d'informations

alors la, aucune idée...
je connais pas perl mais si tu mets plus de print de debug, tu pourrais voir ou il cale...


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u

  FORUM Tom's Hardware » Programmation » Autre » Probleme dans pgme perl :lecture fichier FASTA

Aller à :
 

Annonces Google
Publicité
Offres partenaires
Actualités relatives

Bogue avec le téléchargement d&#039;Internet Explorer

Publié le 30 January 2004

Secunia, une entreprise de sécurité informatique a découvert l'existence d'un bogue avec Internet Explorer 6.0 jugée "modérément critique" permettant à un webmestre avec de mauvaises intentions de camoufler l'extension réelle d'un fich Lire la suite

Des SSD chez GreenHouse

Publié le 13 February 2008

GreenHouse propose des SSD au Japon, ce qui peut être une bonne nouvelle. Mais en pratique, ils sont lents et chers. Lire la suite

Le Surfeur d'Argent n'est pas fantastique sur tous les lecteurs Blu-ray

Publié le 08 October 2007

Les Américains possesseurs d’une ancienne platine Blu-ray (comprendre, pas le dernier modèle) ont eu une surprise en voulant lire le blockbuster Les 4 Fantastiques et le Surfeur d’Argent : ce dernier est incompatible avec plusieurs lecteurs. Un méf ... Lire la suite

Un téléchargement pour les supprimer tous

Publié le 31 July 2004

Microsoft vient de mettre en ligne un patch destiné à éradiquer les virus et troyens suivants des machines qui en sont affectées : Mydoom.A, Mydoom.B, Mydoom.E, Mydoom.F, Mydoom.G, Mydoom.J, Mydoom.L, Mydoom.O, Zindos.A, Doomjuice.A, et Doomjuice.B. Une Lire la suite

Les derniers tests

Comparatif ADSL et internet haut débit

Publié le 08 October 2008

Après un mois de Septembre très dynamique, période pendant laquelle nombre d'étudiants et de familles souscrivent à une nouvelle offre d'accès à Internet, le mois d'octobre s'annonce plus calme. Vraiment plus calme ? Lire la suite

Test Panasonic LX3 : un vrai compact pour les experts

Publié le 07 October 2008

Successeur du LX2, les caractéristiques techniques du le Panasonic lx3 impressionnantes sur le papier. Reste à voir s’il tient ses promesses sur le terrain. Pour cela nous l’avons mesuré au Canon Powershot G9. Lire la suite

Nano vs Atom vs Athlon : la guerre des Watts

Publié le 06 October 2008

Nous avons comparé l'Atom 230 d'Intel, le Nano L2100 de VIA afin de savoir quel processeur était le plus performant pour des machines très économes en énergie. VIA promet des performances exceptionnelles. Est-ce assez pour battre l'Atom ? Lire la suite

Le Home Cinema avec un graphique intégré ?

Publié le 03 October 2008

Le Radeon HD 3200 (chipset 780G) et le GeForce 8200 (chipset MCP78S) sont les premiers circuits vidéo intégrés à pouvoir accélérer la lecture du Blu-ray. Nous examinons en détail les performances de ces deux solutions. Lire la suite