#!/usr/bin/python
import os,sys,re
from program import program
import common

class arpwarp(program):
  name="ARP/wARP"
  binary="warp_tracing.sh"
  labelout_prefix="ARP_"
  references = ( "Perrakis A, Morris RM & Lamzin VS (1999) Automated protein "+
                 "model building combined with iterative structure refinement. "+
                 "Nature Struct. Biol. 6, 458-463)", )

  def TreatInput(self):
    self.par=self.inp.Get('datafile',typ='par')
    if not self.par:
      common.Error('No par file inputted to {0}'.format(self.name))
    self.SetArg(self.par.GetFileName())
    self.SetArg('1')

  def DefineOutput(self):
    with open(self.par.GetFileName()) as f:
      content=f.read()
      arp_dir=re.findall('set\s+WORKDIR\s+=\s+\'?(.+)\'?',content)[-1].strip()
      job=re.findall('set\s+JOB_ID\s+=\s+\'?(.+)\'?',content)[-1].strip()
    pdbfname=job+'_warpNtrace.pdb'
    out_model = self.out.AddNew( 'model', os.path.join(arp_dir,pdbfname), typ='partial', xname=self.fsf.xname )
