species="0" first_conc="0" last_conc="0" factor="1" while [ $# -gt 0 ] do case $1 in -c) shift species="$1";shift first_conc="$1";shift last_conc="$1";shift factor="$1";shift;; *) break;; esac done egrep -v 'e\-3[8-9]|e\-[4-9][0-9]' $* | awk -v awkvar1="$species" -v awkvar2="$first_conc" \ -v awkvar3="$last_conc" -v awkvar4="$factor" ' BEGIN { species = awkvar1 + 0 first_conc = awkvar2 + 0 last_conc = awkvar3 + 0 factor = awkvar4 + 0 number = "^[-+]?([0-9]+[.]?[0-9]*|[.][0-9]+)" \ "([eE][-+]?[0-9]+)?$" if (species > 0) { printf "bottom ticks 100000 10000 1000 100 10 1 .1 .01 .001 .0001 .00001 .000001 .0000001 .00000001 .000000001 .0000000001\n" printf "left ticks .01 .001 .0001 .00001 .000001 .0000001 .00000001 .1 .2 .3 .4 .5 .6 .7 .8 .9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -.1 -.2 -.3 -.4 -.5 -.6 -.7 -.8 -.9 -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20\n" } else { printf "log scale x\n" printf "bottom ticks .1 .2 .3 .4 .5 .6 .7 .8 .9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -.1 -.2 -.3 -.4 -.5 -.6 -.7 -.8 -.9 -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20\n" printf "left ticks .01 .001 .0001 .00001 .000001 .0000001 .00000001 .1 .2 .3 .4 .5 .6 .7 .8 .9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -.1 -.2 -.3 -.4 -.5 -.6 -.7 -.8 -.9 -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20\n" } } /rate constant/ { getline gsub(/\t+/, " ") label = sprintf("%g\t", $2) $1 = ""; $2 = "" label = label $0 getline gsub(/\t+/, " ") while (NF > 0) { label = sprintf("%s;%g\t", label, $2) $1 = ""; $2 = "" label = label $0 getline gsub(/\t+/, " ") } gsub(/ +/, "", label) gsub(/\t+/, ",", label) gsub(/;/, " ", label) print "label " label next } /^[ ]*time/ { flag = 1 next } flag == 0 { next } $1 ~ number && $1 > 0 { j=species if (j > 0 ) { if (($j - first_conc)/(last_conc - first_conc) > factor) exit print $1 "\t" $j "\t" (j - 1) } else { for (i = 2; i <= NF; i++) { if ($i > 0) print $1 "\t" $i "\t" (i - 1) else print $1 "\t" -$i "\t" (i - 1) } } }' -