#!/bin/csh if ($#argv < 2) then echo "Create a PDB File with Protons from an Existing PDB File," echo "Multi-Model Version. Uses addH.com for each MODEL/ENDMDL or END." echo "Arguments are the same as for addH.com:" echo "" addH.com exit 0 endif set inPDBName = $argv[1] set outPDBName = $argv[2] set inPDBTitle = (`getArgD $argv -inTitle $inPDBName`) set tmpPDBName = (`getArgD $argv -inTitle addHMulti_tmp.pdb`) set splitInDir = (`getArgD $argv -splitInDir splitIn`) set splitOutDir = (`getArgD $argv -splitOutDir splitOut`) set remFlag = 0 if (`flagLoc $argv -remark`) then set remFlag = 1 endif if (`flagLoc $argv -noremark`) then set remFlag = 0 endif if (!(-e $inPDBName)) then echo "AddH (Multi-Model) Error Finding PDB Input $inPDBTitle" exit 1 endif set modelCount = (`splitPDB.tcl -in $inPDBName -probe`) if ($modelCount == 0) then echo "AddH (Multi-Model) Error: No MODELs Found in PDB Input $inPDBTitle" exit 1 endif if ($modelCount == 1) then echo "AddH: Processing 1 Model in PDB $inPDBTitle ..." addH.com $* exit 0 endif echo "AddH: Processing $modelCount Models in PDB $inPDBTitle ..." if (-e $splitInDir) then /bin/rm -rf $splitInDir endif if (-e $splitOutDir) then /bin/rm -rf $splitOutDir endif mkdir $splitInDir mkdir $splitOutDir splitPDB.tcl -in $inPDBName -out $splitInDir/split%05d.pdb -nomodel -noverb if (!(-e $splitInDir/split00001.pdb)) then echo "AddH (Multi-Model) Error Splitting PDB Input $inPDBTitle" exit 1 endif set id = 0 foreach thisInName ($splitInDir/split*.pdb) @ id++ echo "" echo "Processing Model $id ..." set thisOutName = (`nmrPrintf $splitOutDir/split%05d.pdb $id`) if ($#argv == 2) then addH.com $thisInName $thisOutName -addHMulti else addH.com $thisInName $thisOutName $argv[3-] -addHMulti endif end if (!(-e $splitOutDir/split00001.pdb)) then echo "AddH (Multi-Model) Error Creating PDB Result from $inPDBTitle" exit 1 endif joinPDB.tcl -in $splitOutDir/split*.pdb -out $outPDBName -noend -noremark if ($remFlag != 0) then if (-e $tmpPDBName) then /bin/rm -rf $tmpPDBName endif if ($remFlag != 0) then echo "AddH: Restoring REMARKs from $inPDBTitle ..." splitPDB.tcl -in $inPDBName -rem stdout -out None -clean > $tmpPDBName cat $outPDBName >> $tmpPDBName cat $tmpPDBName > $outPDBName endif endif echo "END" >> $outPDBName exit 0