#!/usr/bin/perl # Randal R. Ketchem, Ph.D. 619.784.9879 (voice1) # Department of Molecular Biology, MB-9 619.784.8754 (voice2) # The Scripps Research Institute 619.784.9985 (FAX) # 10550 N. Torrey Pines Road ketchemr@scripps.edu (email) # La Jolla, CA 92037-1027 http://www.scripps.edu/~ketchemr #Melanie Nelson: modified so that medium range is NOEs between i and #i+2 to i+4, long range is NOEs between i and i+5 or greater if($#ARGV < 1 || $#ARGV > 2) { $prgName = `basename $0`; chop($prgName); die < out] EOHELP } require "getopt.pl"; &Getopt('r'); $lastRes = $opt_r; $| = 1; while(<>) { print if(/^\s*#/); next if(/^\s*#/); next if(/^\s*$/); chomp; @words = split(' '); $rNum1 = $words[0]; $rName1 = $words[1]; $aName1 = $words[2]; $rNum2 = $words[3]; $rName2 = $words[4]; $aName2 = $words[5]; if($rNum1 == $rNum2) { push(@intrares, $_); } elsif(($rNum1 <= $lastRes && $rNum2 > $lastRes) || ($rNum2 <= $lastRes && $rNum1 > $lastRes)) { push(@intermol, $_); } elsif(abs($rNum1 - $rNum2) == 1) { push(@sequential, $_); } elsif(abs($rNum1 - $rNum2) <= 4) { push(@medium, $_); } else { push(@long, $_); } } printf("# %4d intra residue\n", scalar(@intrares)); printf("# %4d sequential\n", scalar(@sequential)); printf("# %4d medium range\n", scalar(@medium)); printf("# %4d long range\n", scalar(@long)); printf("# %4d intermolecular\n", scalar(@intermol)); open(SORTOUT, "|sort +0 -1n +3 -4n") || die("Can't open sorted out.\n: $!"); print SORTOUT "# intra residue\n"; foreach (@intrares) { print SORTOUT "$_\n"; } close(SORTOUT); open(SORTOUT, "|sort +0 -1n +3 -4n") || die("Can't open sorted out.\n: $!"); print SORTOUT "# sequential\n"; foreach (@sequential) { print SORTOUT "$_\n"; } close(SORTOUT); open(SORTOUT, "|sort +0 -1n +3 -4n") || die("Can't open sorted out.\n: $!"); print SORTOUT "# medium range\n"; foreach (@medium) { print SORTOUT "$_\n"; } close(SORTOUT); open(SORTOUT, "|sort +0 -1n +3 -4n") || die("Can't open sorted out.\n: $!"); print SORTOUT "# long range\n"; foreach (@long) { print SORTOUT "$_\n"; } close(SORTOUT); open(SORTOUT, "|sort +0 -1n +3 -4n") || die("Can't open sorted out.\n: $!"); print SORTOUT "# intermolecular\n"; foreach (@intermol) { print SORTOUT "$_\n"; } close(SORTOUT);