Thread Array zeilenweise auslesen (4 answers)
Opened by azib at 2015-10-28 18:49

azib
 2015-10-28 18:49
#182724 #182724
User since
2015-10-28
5 articles
BenutzerIn
[default_avatar]
Hallo,
da ich neu hier bin, möchte ich erst einmal "Hallo" sagen und mich vorweg für eure Geduld bedanken. Ich bin "blutiger Anfänger" und hoffe, hier bei den ersten Schritten und vielen Fallstricken Hilfe zu erhalten.

Und damit falle ich denn auch mit der Tür ins Haus.

Ich habe eine Liste (.txt) mit 14 definierten Feldern. Aus dieser Liste möchte ich nun die Felder 2 und 13 auslesen und in eine neue Datei schreiben. Hierfür habe ich das folgende Skript begonnen (das ist vielleicht recht umständlich und vieles für den o.g. Zweck unnötig, aber ich habe mit dem Skript noch weitere Sachen vor):

Code (perl): (dl )
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
#usr\bin\perl -w
my $file="Test.txt";
my @a;
my @neu;
my @idx;
my @gene;
my @transcript;
my @name;
my @location;
my @position;
my @type;
my @nuc;
my @cov;
my @aa;
my @cond;
my @hint;
my @web;
my @hgvs;

open (IN,$file) or die "Datei $file konnte nicht gefunden werden\n"; 
while (<IN>){
chomp ($_);   
@a=split(/\t/, $_ );  #
push (@idx, $a[0]);
push (@gene, $a[1]);
push (@transcript, $a[2]);
push (@name, $a[3]);
push (@location, $a[4]);
push (@position, $a[5]);
push (@type, $a[6]);
push (@nuc, $a[7]);
push (@cov, $a[8]);
push (@aa, $a[9]);
push (@cond, $a[10]);
push (@hint, $a[11]);
push (@web, $a[12]);
push (@hgvs, $a[13]);
}
close IN;

foreach (1..$#a){
@neu=($a[1],"\t", $a[13],"\n");
}

open (DATEI, ">>Neu.txt");
print DATEI @neu;
close DATEI;


In die neue Datei soll nun das Feld gene und das Feld hgvs geschrieben werden in der Form: gene \t hgvs\n
Das tut das Script auch, aber leider nur den letzten von 851 Einträgen. Der Fehler liegt sicher in dem Überschreiben der Einträge durch den jeweils nächsten Eintrag und ich weiß beim besten Willen nicht, wo hier der Fehler liegt.

Ich bin sicher, das Problem ist ganz einfach zu lösen.
Schon einmal vielen Dank!

modedit Editiert von GwenDragon: Perl-Code formatiert
Last edited: 2015-10-28 19:06:10 +0100 (CET)

View full thread Array zeilenweise auslesen