Bonjour à tous,
Je suis novice en Perl et je rencontre une difficulté :
J'ai un fichier qui ressemble à ceci :Et je souhaiterai obtenir le nombre d'occurence pour chaque position start (2é colonne).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 chr2L 5123 5153 AACC_1 0 + chr2L 5506 5523 CTCA_1 0 + chr2L 5506 5520 ATCC_1 0 + chr2L 5552 5581 GAGT_3 0 + chr2L 5552 5580 GAGT_378 0 + chr2L 5719 5746 TACA_3 0 - chr2L 11135 11173 ATGT_227 0 - chr2L 11325 11340 TCCC_57 0 - chr2L 11935 11977 CACA_17 0 - chr2L 11934 11977 CACA_353 0 -
Par exemple, je voudrais obtenir une 7é colonne avec un chiffre correspondant au nombre de fois où j'ai la meme position start (2é colonne) dans mon fichier.
J'ai donc écrit ce petit script dans le but d'avoir pour chaque position start le nombre d'occurence dans le fichier :
Mais cela ne fonctionne pas; quelqu'un pourrait m'aider ?
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 #!/usr/bin/perl use strict; use warnings; my $fichier = 'monfichier.txt'; open my $fh, '<', $fichier or die "Impossible de lire le fichier $fichier\n"; while ( my $ligne = <$fh> ) { chomp $ligne; my ($chromosome,$start,$stop,$ID,$else,$sens ) = split "\t", $ligne; my @texte = $start; my %comptage = (); foreach my $mot (@texte) { if( exists( $comptage{$mot} ) ) { $comptage{$mot}++; } else { $comptage{$mot} = 1 ; } } } close $fh;
Partager