Finding Minimum value per Row range of data

Here is an example of a file I am working with:

C  4704   CB 1318   ASP    115    BGRF 1  weak    0.0%  4.33
C  4720   OD 1322   ASP    115    BGRF 1  weak    0.0%  3.71
O  4723   OD 1322   ASP    115    BGRF 1  weak    0.0%  3.48
O  4723   CG 1321   ASP    115    BGRF 1  weak    0.0%  4.34
C  4731   CB 1318   ASP    115    BGRF 1  weak    0.0%  4.28
O  4734   CB 1318   ASP    115    BGRF 1  weak    0.0%  4.19
O  4734   CA 1314   ASP    115    BGRF 1  weak    0.0%  4.15
C  4690   CD 1374   TRP    118    BGRF 1  weak    0.0%  4.37
C  4691   NE 1377   TRP    118    BGRF 1  weak    0.0%  3.99
C  4691   CD 1374   TRP    118    BGRF 1  weak    0.0%  4.16
C  4697   CE 1379   TRP    118    BGRF 1  weak    0.0%  4.27
C  4697   NE 1377   TRP    118    BGRF 1  weak    0.0%  3.13
C  4697   CD 1374   TRP    118    BGRF 1  weak    0.0%  3.61
C  4686   CE 4107   PHE    284    BGRF 1  weak    0.0%  4.07
C  4692   CE 4107   PHE    284    BGRF 1  weak    0.0%  3.90
C  4692   CD 4103   PHE    284    BGRF 1  weak    0.0%  3.89
C  4692   O  4098   PHE    284    BGRF 1  weak    0.0%  3.68
C  4693   CZ 4111   PHE    284    BGRF 1  weak    0.0%  3.98
C  4693   CE 4107   PHE    284    BGRF 1  weak    0.0%  3.30
C  4693   CD 4103   PHE    284    BGRF 1  weak    0.0%  3.69
C  4693   O  4098   PHE    284    BGRF 1  weak    0.0%  3.71
O  4695   CE 4107   PHE    284    BGRF 1  weak    0.0%  3.81
O  4695   CD 4103   PHE    284    BGRF 1  weak    0.0%  3.31
O  4695   CG 4102   PHE    284    BGRF 1  weak    0.0%  4.14
O  4695   CB 4099   PHE    284    BGRF 1  weak    0.0%  4.43
O  4695   C  4097   PHE    284    BGRF 1  weak    0.0%  3.73
O  4695   CA 4095   PHE    284    BGRF 1  weak    0.0%  3.78
C  4690   O  4156   ALA    287    BGRF 1  weak    0.0%  3.83
C  4691   O  4156   ALA    287    BGRF 1  weak    0.0%  3.01
C  4691   C  4155   ALA    287    BGRF 1  weak    0.0%  4.18
C  4692   O  4156   ALA    287    BGRF 1  weak    0.0%  3.01
C  4686   CG 4171   THR    288    BGRF 1  weak    0.0%  3.81
C  4692   CG 4171   THR    288    BGRF 1  weak    0.0%  4.25
C  4693   CG 4171   THR    288    BGRF 1  weak    0.0%  3.54

I want to print out the smallest value in column 11 for each set of unique column 5 and 6 given the data file above.

For instance, from the data file above, I want the following output:

ASP 115 3.48
TRP 118 3.13
PHE 284 3.30
ALA 287 3.01
THR 288 3.54

Basically, for each group of identical column 5 and 6, it finds the smallest value for that set and prints it out. Thanks for any help.

Something like this:

$
$ awk '{print $5,$6,$11}' input.txt | sort | uniq | awk '{if ($1 != prev_1 && $2 != prev_2){print}; prev_1=$1; prev_2=$2}'
ALA 287 3.01
ASP 115 3.48
PHE 284 3.30
THR 288 3.54
TRP 118 3.13
$

tyler_durden

if you have Python and able to use it

#!/usr/bin/env python
d={}
for line in open("file"):
    line=line.strip().split()
    d.setdefault(''.join(line[4:6]),[])
    d[''.join(line[4:6])].append(line[-1])
for i,j in d.iteritems():
    print i, min(j)

output:

# ./test.py
TRP118 3.13
ALA287 3.01
ASP115 3.48
THR288 3.54
PHE284 3.30

awk '{
if($11<_[$5" "$6] || _[$5" "$6]=="")
_[$5" "$6]=$11
}
END{
for(i in _)
print i" "_
}' a.txt