name="2Q80" awk '$0~/^ATOM/ || $0~/^HETATM/' $name.pdb > pdb.tmp tot_chain=$(awk '$0~/^ATOM/ || $0~/^HETATM/' $name.pdb | cut -c22 | sort -u | wc -l) chain_id=$(awk '$0~/^ATOM/ || $0~/^HETATM/' $name.pdb | cut -c22 | sort -u) tot=$((($tot_chain * 2) - 1)) #echo ${chain}_id #echo $tot for (( i=0; i <= $tot; i=i+2 )) do chain=${chain_id:$i:1} ## File with separated chain ids awk -v var="$chain" 'BEGIN{ FIELDWIDTHS="6 5 1 4 1 3 1 1 4 1 3 8 8 8 6 6 6"} $8~var' pdb.tmp > ${name}_${chain}.tmp ## Convert PDB to fasta sequence echo '>'${name}_${chain} >> sequence.fasta awk '$0~/^ATOM/ && $3=="CA" {print $4}' ${name}_${chain}.tmp | tr '\n' ' ' |sed 's/ALA/A/g;s/CYS/C/g;s/ASP/D/g;s/GLU/E/g;s/PHE/F/g;s/GLY/G/g;s/HIS/H/g;s/ILE/I/g;s/LYS/K/g;s/LEU/L/g;s/MET/M/g;s/ASN/N/g;s/PRO/P/g;s/GLN/Q/g;s/ARG/R/g;s/SER/S/g;s/THR/T/g;s/VAL/V/g;s/TRP/W/g;s/TYR/Y/g;s/MSE/M/g' | sed 's/ //g' | fold -w 60 >> sequence.fasta echo '' >> sequence.fasta ## BEGIN Calculate the ligand Mol wt awk 'BEGIN{ FIELDWIDTHS="6 5 1 4 1 3 1 1 4 1 3 8 8 8 6 6 6"} $0~/^HETATM/ {print $6}' ${name}_${chain}.tmp | sort -u | grep -v 'HOH' | grep -v 'MSE' > lig.tmp #grep -v 'HETATM' ${name}_${chain}.tmp > ${name}_${chain}_1.tmp tot_lig=$(wc -l lig.tmp | awk '{print $1}') mol_wt=0 for ((j=1; j<=tot_lig; j++)) do ligand=$(awk 'NR==xx {print $0}' xx="$j" lig.tmp) #echo $ligand grep $ligand ${name}_${chain}.tmp | cut -c77-78 > lig_atm.tmp lig_len=$(wc -l lig_atm.tmp | awk '{print $1}') #echo $lig_len grep -v $ligand ${name}_${chain}.tmp > ${name}_${chain}_1.tmp for ((k=1; k<=$lig_len; k++)) do atom=$(awk -v xx="$k" 'NR==xx {print $1}' lig_atm.tmp) atom_wt=0 if [[ $atom == 'C' ]] then atom_wt=12 elif [[ $atom == 'N' ]] then atom_wt=14 elif [[ $atom == 'O' ]] then atom_wt=16 elif [[ $atom == 'S' ]] then atom_wt=32 elif [[ $atom == 'P' ]] then atom_wt=32 elif [[ $atom == 'F' ]] then atom_wt=19 elif [[ $atom == 'CL' ]] then atom_wt=35 elif [[ $atom == 'BR' ]] then atom_wt=80 elif [[ $atom == 'I' ]] then atom_wt=127 fi mol_wt=$(($mol_wt + $atom_wt)) done if [[ $mol_wt > 180 && $mol_wt < 500 ]] then #cp ${name}_${chain}.tmp ${name}_${chain}_${ligand}_${mol_wt}.pdb grep $ligand ${name}_${chain}.tmp > ligand_$mol_wt.tmp cat ${name}_${chain}_1.tmp ligand_$mol_wt.tmp > ${name}_${chain}_${ligand}_${mol_wt}.pdb fi mol_wt=0 done ### Mol wt cal END ##### done rm *.tmp