#!/usr/bin/perl -w # save_server_dir -server T08 -target T0403 # looks for a prediction for servers@predictioncenter org for # in the log file for the server, and rsyncs the directory to # /projects/compbio/experiments/protein-predict/casp9/decoys/SAM_T08 # Options: # -server T08 T02, T06, or T08 (default T08) # -target T0403 default (name of current directory) # -email servers@predictioncenter.org # -dir /projects/compbio/experiments/predict-protein/casp9 use strict; use Getopt::Long; my $server="T08"; my $here= `pwd`; chomp($here); my @path = split('/', $here); my $target=$path[scalar(@path)-1]; my $email = "servers\@predictioncenter.org"; my $root_dir = "/projects/compbio/experiments/protein-predict/casp9"; GetOptions( "server=s" => \$server , "target=s" => \$target , "email=s" => \$email , "dir=s" => \$root_dir ); # subscript in logfile for the name of the a2m file my %field_in_log = ( "T02" => 7 , "T06" => 8 , "T08" => 8 ); my $email_expression = qr/^${email}/; my $target_expression = qr/${target}[.]a2m/; my $logfile = "/projects/compbio/.html/SAM_$server/log/logfile"; open(LOGFILE, "<$logfile") || die "ERROR: can't read $logfile\n"; while () { next if ! /${email_expression}/; # found a line for the casp server my @fields = split /\s+/; my $a2m = $fields[$field_in_log{$server}]; next if $a2m !~ /${target_expression}/; # found a line for this target for the casp server $a2m =~ /^(.+)${target_expression}/; my $from_dir = $1; my $to_dir = "$root_dir/$target/decoys/SAM_$server"; print STDERR "Rsyncing $from_dir to $to_dir\n"; system("ssh silo \"rsync -axu $from_dir $to_dir\" < /dev/null"); } close LOGFILE;