#!/bin/sh

NAME=$1
SMIRKS=$2
RGROUPS=4

# diazepines example
if [ "_$NAME" = '_diazepine' ]; then
    SMIRKS='[*,*:1][N;R1:11]1C(=O)[C:12]([*,*:2])N=C([*,*:3])c3cc([*,*:4])ccc31>>[H][N;R1:11]1C(=O)[C:12]([H])N=Cc3ccccc31.[1*][*,*:1].[2*][*,*:2].[3*][*,*:3].[4*][*,*:4]'
    RGROUPS=4
# 2-amino-thiozole example
elif [ "_$NAME" = '_thiozole' ]; then
    SMIRKS='[*,*:1][N;!R;X3:11]([*,*:2])c1n[c;R1:12]([*,*:3])[c;R1:13]([*,*:4])s1>>[H][N;!R;X3:11]([H])c1n[c;R1:12]([H])[c;R1:13]([H])s1.[1*][*,*:1].[2*][*,*:2].[3*][*,*:3].[4*][*,*:4]'
    RGROUPS=3
fi

if [ "_$1" = '_-help' -o "_$SMIRKS" = '_' ]; then
    printf "Usage: $0 <TDT basename> <SMIRKS>\n"
    exit 1
fi
printf "NAME=$NAME\n"
printf "SMIRKS=$SMIRKS\n"

SMILES=`cat $NAME.tdt | sed -e s/'$SMI<'// -e s/'>|'//`
PARTS=`printf "$SMILES\n" | $DY_ROOT/contrib/src/c/reaction/react -u $SMIRKS`

R1s=`printf "$PARTS\n" | cut -d'.' -f2`
R2s=`printf "$PARTS\n" | cut -d'.' -f3`
R3s=`printf "$PARTS\n" | cut -d'.' -f4`
R4s=`printf "$PARTS\n" | cut -d'.' -f5`

R1u=`printf "$R1s\n" | sort -u`
R2u=`printf "$R2s\n" | sort -u`
R3u=`printf "$R3s\n" | sort -u`
R4u=`printf "$R4s\n" | sort -u`

cat /dev/null > $NAME.rgroups

GTOTAL=0
i=1
while [ $i -le $RGROUPS ]
do
    if [ $i = 1 ]; then
	ALL=$R1s
	UNI=$R1u
    elif [ $i = 2 ]; then
	ALL=$R2s
	UNI=$R2u
    elif [ $i = 3 ]; then
	ALL=$R3s
	UNI=$R3u
    else
	ALL=$R4s
	UNI=$R4u
    fi
    SET_SIZE=0
    TOTAL=0
    for RGROUP in $UNI
    do
	COUNT=0
	for ITEM in $ALL
	do
	    if [ "$RGROUP" = "$ITEM" ]; then
		COUNT=`expr $COUNT + 1`
	    fi
	done
	printf "$RGROUP $COUNT\n" >> $NAME.rgroups
	printf "$RGROUP $COUNT\n"
	SET_SIZE=`expr $SET_SIZE + 1`
	TOTAL=`expr $TOTAL + $COUNT`
    done
    printf "R%d-groups=$SET_SIZE count=$TOTAL\n" $i
    GTOTAL=`expr $GTOTAL + $TOTAL`
    i=`expr $i + 1`
done
printf "Total R-groups=$GTOTAL\n"
