#!/usr/bin/expect -f set MZEF "/usr/local/mzef"; # SET THE FIRST LINE TO POINT TO YOUR COPY OF EXPECT # SET THE SECOND LINE TO THE FULL PATH TO YOUR MZEF ROOT DIRECTORY set VERSION .20 set DEFAULT_ORG "human" set DEFAULT_PROBABILITY .04 set DEFAULT_OVERLAPPING 0 proc usage {} { puts "usage: There are 3 ways to run mzef.expect" puts "mzef.expect FASTA" puts "mzef.expect FASTA ORGANISM" puts "mzef.expect FASTA ORGANISM PROBABILITY OVERLAPPING" } proc run_mzef {SEQ_FILE FORWARD_REVERSE PROBABILITY OVERLAPPING} { set timeout -1 spawn ./mzef expect *SEQUENCE* send "'$SEQ_FILE'\n" expect *REVERSE* send "$FORWARD_REVERSE\n" expect *PROBABILITY* send "$PROBABILITY\n" expect *LAPPING* send "$OVERLAPPING\n" expect *prompt* } proc get_full_path_to_seq {SEQ_FILE} { set cwd [pwd] set first_char [string index $SEQ_FILE 0] if {[string match $first_char /]} { return $SEQ_FILE; } elseif {[string match $first_char ~]} { return $env(HOME)/$SEQ_FILE"; } else { return "$cwd/$SEQ_FILE"; } } proc chdir_to_org_directory {ORG MZEF} { if {[string match human $ORG]} { cd "$MZEF/human"; } elseif {[string match mouse $ORG]} { cd "$MZEF/mouse"; } elseif {[string match arab $ORG]} { cd "$MZEF/arab"; } else { cd "$MZEF/human"; } } if {$argc < 1} { usage exit } elseif {$argc == 3} { usage exit } elseif {$argc > 4} { usage exit } set SEQ_FILE [lindex $argv 0] set ORG [lindex $argv 1] set PROBABILITY $DEFAULT_PROBABILITY set OVERLAPPING $DEFAULT_OVERLAPPING set prob [lindex $argv 2] set over [lindex $argv 3] if {$prob == ""} { set PROBABILITY $DEFAULT_PROBABILITY set OVERLAPPING $DEFAULT_OVERLAPPING } else { set PROBABILITY $prob set OVERLAPPING $over } set SEQ_FILE [get_full_path_to_seq $SEQ_FILE] chdir_to_org_directory $ORG $MZEF run_mzef $SEQ_FILE 1 $PROBABILITY $OVERLAPPING run_mzef $SEQ_FILE 2 $PROBABILITY $OVERLAPPING