Thread 2 Dateien vergleichen (7 answers)
Opened by gast at 2010-03-25 11:10

Gast gast
 2010-03-25 11:10
#135271 #135271
Hallo,
ich möchte gern 2 Dateien miteinander vergleichen.
Beide Dateien haben die Form
Code: (dl )
1
2
3
X	Y	A	B	Q	PA	PB
N r C T 0.936 0.057 0.936
...


jetzt möchte die Einträge vergleichen,
1. Welche sind gleich
2. welche sind nur in Datei 1
3. welche sind nur in Datei 2

Punkt 1 habe ich, aber für die Unterschiede habe ich keine Idee? Kann mir bitte jemand einen Tipp geben.Hier mein Code
Code: (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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/usr/bin/perl
use warnings;

my $file = "test.txt";
my @x;
my @id;
my @marker;
my @allelA;
my @allelB;
my @quality;
my @probA;
my @probB;
my $laenge_x;

my $file_mach = "test2.txt";
my @mach;
my @id_mach;
my @marker_mach;
my @allelA_mach;
my @allelB_mach;
my @quality_mach;
my @probA_mach;
my @probB_mach;
my $laenge_mach;


open( IN, "<$file" ) or die "Konnte Input nicht oeffnen!\n";
while (<IN>) {
chomp($_);
@x = split(/\t/, $_ );
push(@id, $x[0]);
push(@marker, $x[1]);
push(@allelA, $x[2]);
push(@allelB, $x[3]);
push(@quality, $x[4]);
push(@probA, $x[5]);
push(@probB, $x[6]);

}

close(IN);

open (IN2, "<$file_mach");
while (<IN2>) {
chomp($_);
@mach = split(/\t/, $_ );
push(@id_mach, $mach[0]);
push(@marker_mach, $mach[1]);
push(@allelA_mach, $mach[2]);
push(@allelB_mach, $mach[3]);
push(@quality_mach, $mach[6]);
push(@probA_mach, $mach[4]);
push(@probB_mach, $mach[5]);

}

close(IN2);

my $together = 0;
my $mach = 0;
my $x = 0;
for my $i (1..$#id){
for my $j (1..$#id_mach){
if ( $id[$i] eq $id_mach[$j] and
$marker[$i] eq $marker_mach[$j] and
$allelA[$i] eq $allelA_mach[$j] and
$allelB[$i] eq $allelB_mach[$j])
{
$together++;
}

}

}
print $together;

Last edited: 2010-03-25 11:22:55 +0100 (CET)

View full thread 2 Dateien vergleichen