#!/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 \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"