perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 33
Click for quality!




10.02.2012 / 09:12

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragTextfragmente in jeweils neue Datei Speichern
Seitenanfang
Hallo Ich bin ein Perl Newbie und habe folgendes Problem:

Ich habe eine Datei deren Textinhalt so aussieht:

>gi|9629379|ref|NP_044600.1| neurovirulence factor (ICP34.5) [Human herpesvirus 1]
MARRRRHRGPRRPRPPPCLGPEARARALA
>gi|9629380|ref|NP_044601.1| RL2 [Human herpesvirus 1]
MEPRPGASTRRPERSLRSRHPWSGEQGASTR
DEGKQ

Die Zeichen zwischen > und ] sind der Name und die Großbuchstaben eine Sequenz.
Die einzelnen Sequenzen sollen in jeweils eine neue Datei als Text abgespeichert werden unter einem passenden Dateinamen (ich dachte da an den jeweiligen Namen).

Meine Lösungsidee :
1)öffnen der Datei und ersetzen der Zeichen > und ] durch , Zeichen
2)anfügen von ( und ) am Anfang und Ende des Kompleten Textes
3)den Text nun als array definieren
4)in einer schleife nun immer das zweite Element des arrays in eine neue Datei schiebt und unter dem Namen des ersten array Elements abspeichern anschließend werden diese beiden Elemente aus dem array rausgenommen mit dem shift befehl

Mein bisheriges Programm zeigt mehr als 10 fehler an die ich nicht korrigieren konnte (bin Anfänger).

Ist meine Programm idee überhaupt umsetzbar?
Wenn ja wie? wenn nein Wie dann?

Datum: 10.07.2005-12:54

Beitragre: Textfragmente in jeweils neue Datei Speichern
Seitenanfang
Hallo,

Newbie hin oder her. Aber die Frage ist einfach nur lächerlich. Es werden extrem viele dumme Fragen gestellt, aber die ist einfach mal der Gipfel.
Versuch mal $%"W anstelle von >gi| und schon geht das. Einfach nur mal kurz nachlesen...(*extremes kopfschütteln*)

Datum: 10.07.2005-15:19

Beitragre: Textfragmente in jeweils neue Datei Speichern
Seitenanfang
Also ich hab ein 160 Seiten tutorial durchgemacht. Ich kann jetzt trotzdem nicht
nachvollziehen wie oder wo ich das $%"W jetzt anstelle von >gi| einsetzten soll.

Das Textfile hab ich nicht selbst erstellt und es soll hier auch nicht eine neue Datei erstellt werden sondern die Przedur soll durch das ganze file gehen, was zu ca.200 neuen Dateien führt.

Datum: 10.07.2005-19:50

Beitragre: Textfragmente in jeweils neue Datei Speichern
Seitenanfang
Ich hab das Problem jetzt gelöst. Zwar nicht mit der "Hilfestellung" aber jetzt funktioniert es. Der Admin kann diesen Beitrag schließen.

@cybox: Wenn Du das nächste mal aus der Bank raus kommst und ein Afrikaner fragt Dich wo er denn sein Geld wechseln könnte. Sag ihm nicht das diese Frage eine Frechheit sei und er könne es ja im Fremdenführer nachlesen. Er weiß es nicht besser und ihm ausführlich zu helfen ist ja für Dich offensichlich kein Problem.

Datum: 12.07.2005-13:14

Beitragre: Textfragmente in jeweils neue Datei Speichern
Seitenanfang
Dafür kannst Du mein Modul Bio::FASTASequence benutzen (kannst Du von http://search.cpan.org runterladen)

#! /usr/bin/perl

use strict;
use warnings;
use Bio::FASTASequence;

my $file = '/path/to/file.fasta';

my @sequences = read_file($file);
foreach my $sequence(@sequences){
my $obj = Bio::FASTASequence->new($sequence);
my $new_file = '/path/to/directory/'.$obj->getAccessionNr().'.fasta';
open(my $fh,">$new_file") or die $!;
print $fh $obj->getSequence();
close $fh;
}

sub read_file{
my ($file) = @_;
my @sequences;
local $/ = "\n>";
open(my $fh2,"<$file") or die $!;
while(<$fh2>){
chomp;
$_ = '>'.$_ unless($_ =~ /^>/);
push(@sequences,$_);
}
close $fh2;
return @sequences;
}

ungetestet!

Datum: 13.07.2005-10:30

Beitragre: Textfragmente in jeweils neue Datei Speichern
Seitenanfang
Oh danke. Ich werds gleich mal umsetzten.

Datum: 13.07.2005-11:36

-






-
-