Buongiorno ragazzi,
sono nuovo nell'utilizzo del Perl e vorrei alcuni consigli.
Ho creato un programmino che mi permette di sostituire le T con le U ma ho qualche problema.
Naturalmente esisteranno gia degli script che fanno questa sostituzione ed anche in maniera piu semplice ma alla fine io l'ho fatto per esercitarmi e prendere un po la mano con il Perl.
#!C:/perl/bin/perl.exe
my $argc = $#ARGV + 1;
if ($argc < 1)
{
print "usage: sequenza.txt";
print "\n\n";
exit 1
}
#se non è verificata la condizione di prima e quindi il programma ha letto bene l'imput stampa OK
else
{
print "OK\n";
}
my $accFile = $ARGV[0];
my $a = 1;
open(DNA, $accFile) or die("infile non trovato");
while ($c = <DNA>) {
if ($c =~ /^>/){
$c = "sequenza $a\n";
$a++;
print $c;
}
else
{
print "DNA: $c\n";
($c =~ s/T/U/g);
$b = "AFTER SUBSTITUTION:\n RNA: $c\n";
print $b;
}
}
Il problema è che lo script ogni volta che nel file di input trova "l'accapo" la considera giustamente come una nuova stringa...non so come eliminare questa cosa..cioè:
>cane
ACCTATTATATATATCTCTCCTCTCT
>gatto
ACATATATTCCAGGA
ACCCGGTTA
Il risultato viene:
>sequenza 1
DNA: ACCTATTATATATATCTCTCCTCTCT
AFTER SUBSTITUTION:
RNA: ACCUAUUAUAUAUAUCUCUCCUCUCU
>sequenza 2
DNA: ACATATATTCCAGGA
AFTER SUBSTITUTION:
RNA: ACAUAUAUUCCAGGA
DNA: ACCCGGTTA
AFTER SUBSTITUITIO:
RNA: ACCCGGUUA
Naturalmente vorrei che "gatto" anche avendo gli accapo venisse considerata tutta la stessa stringa in modo da avere questo risultato
>sequenza 2
DNA: ACATATATTCCAGGAACCCGGTTA
AFTER SUBSTITUTION:
RNA: ACAUAUAUUCCAGGAACCCGGUUA
Grazie