Sono nuovo di perl e vorrei fare ciò che ritengo sia una manipolazione di stringa di base alle sequenze di DNA memorizzate in un file rtf.regex di base e manipolazione di stringhe per l'analisi del DNA utilizzando perl
In sostanza, il mio file legge (file è in formato FASTA):
>LM1
AAGTCTGACGGAGCAACGCCGCGTGTATGAAGAAGGTTTTCGGATCGTAA
AGTACTGTCCGTTAGAGAAGAACAAGGATAAGAGTAACTGCTTGTCCCTT
GACGGTATCTAACCAGAAAGCCACGGCTAACTACGTGCCAGCAGCCGCGG
TAATACGTAGGTGGCAAGCGTTGTCCGGATTTATTGGGCGTAAAGCGCGC
GCAGGCGGTCTTTTAAGTCTGATGTGAAAGCCCCCGGCTTAACCGGGGAG
GGTCATTGGAAACTGGAAGACTGGAGTGCAGAAGAGGAGAGTGGAATTCC
ACGTGTAGCGGTGAAATGCGTAGATATGTGGAGGAACACCAGTGGCGAAG
GCGACTCTCTGGTCTGTAACTGACGCTGAGGCGCGAAAGCGTGGGGAGCA
AACAGGATTAGATACCCTGGTAGTCCACGCCGT
Quello che vorrei fare è leggere nel mio file e stampare l'intestazione (intestazione è> LM1) poi abbinare il seguente DNA sequenza GTGCCAGCAGCCGC
e quindi stampare la sequenza di DNA precedente.
Così la mia uscita sarebbe simile a questa:
>LM1
AAGTCTGACGGAGCAACGCCGCGTGTATGAAGAAGGTTTTCGGATCGTAA
AGTACTGTCCGTTAGAGAAGAACAAGGATAAGAGTAACTGCTTGTCCCTT
GACGGTATCTAACCAGAAAGCCACGGCTAACTAC
Ho scritto il seguente programma:
#!/usr/bin/perl
use strict; use warnings;
open(FASTA, "<seq_V3_V6_130227.rtf") or die "The file could not be found.\n";
while(<FASTA>) {
chomp($_);
if ($_ =~ m/^>/) {
my $header = $_;
print "$header\n";
}
my $dna = <FASTA>;
if ($dna =~ /(.*?)GTGCCAGCAGCCGC/) {
print "$dna";
}
}
close(FASTA);
Il problema è che il mio programma legge il file riga per riga e l'output che sto ricevendo è la seguente:
>LM1
GACGGTATCTAACCAGAAAGCCACGGCTAACTAC
Fondamentalmente io non so come assegnare l'intera sequenza del DNA per la mia variabile $ DNA e in ultima analisi, non so come per evitare di leggere la sequenza del DNA riga per riga. Sto ricevendo questo avviso: Uso del valore non inizializzato $ dna nella corrispondenza del modello (m //) nella riga stacked.pl 14, riga 1113.
Se qualcuno potrebbe darmi un aiuto con la scrittura di codice migliore o punto me nella direzione corretta sarebbe molto apprezzato.
Non sei bioinformatico i ragazzi hanno già delle librerie già esistenti per fare queste cose? Riceviamo molte domande di regex sul DNA + e penserei che ci sarebbero già delle librerie testate per far fronte a questo già. –
Prova a cercare StackOverflow per "fasta perl". Ci sono molte domande che sembrano essere da persone che si occupano esattamente dei tuoi problemi. http://stackoverflow.com/search?q=fasta+perl –
@AndyLester È vero che esistono biblioteche che si occupano di questa roba ma tanta parte della bioinformatica deve essere adattata alle tue esigenze specifiche, il che rende difficile trovare il programma ottimale. Grazie per il tuo suggerimento, guarderò sotto Fasta Perl. – cebach561