Bonjour à tous,
Le script ci dessous fonctionne très bien lorsque je l'applique à un exemple :
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
52 #!/usr/bin/perl # Input file: a fasta file # Output file: a unique fasta file # Command line: perl test.pl infile.fasta use strict; use warnings; #read the file into a hash my %seq; my $title; my $infile=shift or die "give me a infile\n"; open (IN,"$infile"); while (<IN>){ $_=~s/\n//; $_=~s/\r//; if ($_=~/>/){ $title=$_; $title=~s/>//; } else{ $seq{$_}=$title; } } close IN; print "bonjour"; #remove the abundant sequences my @seq=keys (%seq); my @uniqueseq; my $find=0; foreach (@seq){ $find=0; my $seq=uc($_); #uppercase (retourne la chaine en majuscule) foreach (@uniqueseq){ if ($seq=~m/$_/){ $_=$seq;#replace with longer seq $find=1; } if ($_=~/$seq/){ $find=1; } } if ($find==0){ push @uniqueseq,$seq; } } #outout the final result open (OUT,">output.fasta"); foreach (@uniqueseq){ print OUT ">$seq{$_}\n$_\n"; } close OUT;En revanche, dès que je l'applique à ce fichier : http://filez.univmed.fr/download.php?ad=7987f4zJuw
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 >dme_pi_0_22_21 TACAGGTGAAAAACATAGCCAG >dme_pi_1_23_77 TCCACAACGATGGAAGATGATGA >dme_pi_2_24_10 CCAGGGCTAGCCCAAGATGTTGCT >dme_pi_3_25_1 GACGACAAGGGATTGGCATTGTTGG >dme_pi_4_28_1 TCTGAGAAGTCAGCCCTCTCCACGACCG >dme_pi_5_26_1 CATCTATCACCAGCATAAGCGGTCTT >dme_pi_6_24_1 CACTGTTCTTGCAAGACGCAGCTG >dme_pi_7_25_1 TGGGAACAACGCGTGTTGTTGGCCC >dme_pi_8_27_1 TATGGACGGACTCTAAGACGGTGCTGA >dme_pi_9_25_2 TTGCAGCCACTCTGGTCCGTGCCAC
J'obtiens le message d'erreur suivant en arrêtant le programme prématurément :
Je ne comprends pas le problème, 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 perl remove_redondance.pl fasta.fa Can't coerce UNKNOWN to string in iter at remove_redondance.pl line 34. Use of uninitialized value $seq in pattern match (m//) at remove_redondance.pl l ine 34. Use of uninitialized value $seq in regexp compilation at remove_redondance.pl li ne 38. Use of uninitialized value $_ in pattern match (m//) at remove_redondance.pl lin e 38. panic: pp_iter at remove_redondance.pl line 38. bonjour
Merci d'avance, et bonne journée![]()
Partager