view peptide_prophet_wrapper.rb @ 2:418f42b34049 draft

Reuploading
author iracooke
date Mon, 23 Jul 2012 00:20:58 -0400
parents a929e27eb203
children
line wrap: on
line source

require 'pathname'

$VERBOSE=nil

peptide_prophet_path=%x[which peptide_prophet.rb]

actual_output_path_string=ARGV.shift

# Second argument is the original input file name ... we'll change this below
original_input_file=ARGV[0]

# Before doing anything we append create a link to the input file in our working dir with ".pep.xml" appended to the input 
# name because peptide prophet can't handle anything else

wd= Dir.pwd

original_input_path=Pathname.new("#{original_input_file}")
actual_input_path_string="#{wd}/#{original_input_path.basename}.pep.xml"
full_tmp_output_path_string="#{wd}/peptide_prophet_output.pep.xml"

cmd = "ln -s #{original_input_file} #{actual_input_path_string};"

cmd << peptide_prophet_path.chomp


ARGV[0]="#{actual_input_path_string}"

ARGV.each { |a|    
  cmd << " #{a}" 
}

cmd << " -o peptide_prophet_output.pep.xml"

# Finally we need to fix up the output file so any references to the temporary working file are changed to refs to the original input file
cmd << ";ruby -pi -e \"gsub('#{actual_input_path_string}', '#{original_input_file}')\" peptide_prophet_output.pep.xml"
cmd << ";ruby -pi -e \"gsub('#{full_tmp_output_path_string}', '#{actual_output_path_string}')\" peptide_prophet_output.pep.xml"

%x[#{cmd}]