PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : splitten mehrdimensionales array



anou
28-10-2010, 17:53
Hallo,
ich hab das Problem das ich zwei arrays habe und eins in dem anderen ausgeben möchte um genau so eine Datei zu erstellen:

NC_010109.1 NTRFinder motif_small_b 789 799 . . . ID=NTR-a1;Parent=NTR-a;Name=motif_small_b
NC_010109.1 NTRFinder motif_small_a 811 821 . . . ID=NTR-a2;Parent=NTR-a;Name=motif_small_a
NC_010109.1 NTRFinder motif_small_j 822 832 . . . ID=NTR-a3;Parent=NTR-a;Name=motif_small_j
NC_010109.1 NTRFinder motif_tall_a 833 880 . . . ID=NTR-a4;Parent=NTR-a;Name=motif_tall_a
NC_010109.1 NTRFinder motif_small_a 881 891 . . . ID=NTR-a5;Parent=NTR-a;Name=motif_small_a
NC_010109.1 NTRFinder motif_small_b 892 902 . . . ID=NTR-a6;Parent=NTR-a;Name=motif_small_b

Das Problem ist halt mein erstes array beinhaltet die 3,4,5 spalte (also motifname und die start und endregion) und das zweite array die restlichen spalten. Und die 9te spalte bezieht sich auf die 3te ("Name" und die "ID" wird hochgezählt). Ich dachte jetzt ich könnte 2 strings erstellen und die hinterher zusammenführen, ist das möglich? azu müst ich mein array (das die spalte 3-4-5 enthält) aufsplitten.
Weiß jemand wie ich das am einfachsten realisieren kann?

LG,
anou

John W
28-10-2010, 18:28
Welche Sprache denn?

anou
28-10-2010, 18:32
sorry, perl

anou
28-10-2010, 21:40
ich kann jetzt mit folgendem code eine zeile generieren:



for my $pos (0..$#gff)
{
my @l=split(/\t/,$gff[$pos],3);
splice(@l,2,0,$var[$pos]);
chomp(@gff);
$gff[$pos]=join(' ',@l);
}

print Dumper(\@gff);


allerdings ist der output nicht so schön:

$VAR1 = [
'NC_010109.1 NTRFinder small_motif_a 811 821
. . . ID=NTR-a1;Parent=NTR-a;Name=motif_small_b
'
];
ich hab versucht die zeilenumbrüche mit chomp zu entfernen- erfolglos

ich bräuchte jetzt noch eine schleife die das "ID" hochzählt und mir genauso viele zeilen ausgibt wie ich in meinem array habe

Irgendjemand eine idee bitte?

Gruß