#!/usr/bin/awk -f ###################################################################################### # convert | into and or for xplor ###################################################################################### BEGIN { a=b=0 } FILENAME==ARGV[1] { a++ resnumber1[a]=$3 resnumber2[a]=$9 atom2[a]=$12 dis1[a]=$14 dis2[a]=$15 dis3[a]=$16 atom1[a]=$6 char1[a]=substr($6,4,1) char2[a]=substr($6,5,1) char3[a]=substr($12,4,1) char4[a]=substr($12,5,1) } END { for (i=1; i<=a; i++) { if ((char1[i]=="|" || char2[i]=="|") && (char3[i]!="|" && char4[i]!="|")) { z=split(atom1[i],splitatom,"|") printf"assign (resid %3d and (name %s or name %s )) (resid %3d and name %s ) %2.1f %2.1f %2.1f\n", resnumber1[i], splitatom[1], splitatom[2], resnumber2[i], atom2[i], dis1[i], dis2[i], dis3[i] } if ((char3[i]=="|" || char4[i]=="|") && (char1[i]!="|" && char2[i]!="|")) { z=split(atom2[i],splitatom2,"|") printf"assign (resid %3d and name %s ) (resid %3d and (name %s or name %s )) %2.1f %2.1f %2.1f\n", resnumber1[i], atom1[i], resnumber2[i], splitatom2[1], splitatom2[2], dis1[i], dis2[i], dis3[i] } if ((char3[i]=="|" || char4[i]=="|") && (char1[i]=="|" || char2[i]=="|")) { z=split(atom2[i],splitatom2,"|") y=split(atom1[i],splitatom,"|") printf"assign (resid %3d and (name %s or name %s )) (resid %3d and (name %s or name %s )) %2.1f %2.1f %2.1f\n", resnumber1[i], splitatom[1], splitatom[2], resnumber2[i], splitatom2[1], splitatom2[2], dis1[i], dis2[i], dis3[i] } if (char1[i]!="|" && char2[i]!="|" && char3[i]!="|" && char4[i]!="|") { printf"assign (resid %3d and name %s ) (resid %3d and name %s ) %2.1f %2.1f %2.1f\n", resnumber1[i], atom1[i], resnumber2[i], atom2[i], dis1[i], dis2[i], dis3[i] } } }