#t2ac: EvidentialGene tr2aacds.pl VERSION 2014.05.15 #t2ac: app=blastn, path=/home/ux455375/bio/ncbi2227/bin/blastn #t2ac: app=makeblastdb, path=/home/ux455375/bio/ncbi2227/bin/makeblastdb #t2ac: app=lastz, path=/home/ux455375/bio/bin/lastz #t2ac: app=fastanrdb, path=/home/ux455375/bio/exonerate/bin/fastanrdb #t2ac: app=cd-hit-est, path=/home/ux455375/bio/cdhit/bin/cd-hit-est #t2ac: app=cd-hit, path=/home/ux455375/bio/cdhit/bin/cd-hit #t2ac: evigeneapp=cdna_bestorf.pl, path=/home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl #t2ac: evigeneapp=prot/traa2cds.pl, path=/home/ux455375/bio/evigene/scripts/prot/../prot/traa2cds.pl #t2ac: evigeneapp=rnaseq/asmrna_dupfilter2.pl, path=/home/ux455375/bio/evigene/scripts/prot/../rnaseq/asmrna_dupfilter2.pl #t2ac: evigeneapp=prot/aaqual.sh, path=/home/ux455375/bio/evigene/scripts/prot/../prot/aaqual.sh #t2ac: BEGIN with cdnaseq= evg2tribol.tr date= Mon Dec 8 23:32:51 PST 2014 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split1.fa -aaseq evg2tribol_split/evg2tribol.tr.split1.aa0 -cdsseq evg2tribol_split/evg2tribol.tr.split1.cds0 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split2.fa -aaseq evg2tribol_split/evg2tribol.tr.split2.aa1 -cdsseq evg2tribol_split/evg2tribol.tr.split2.cds1 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split3.fa -aaseq evg2tribol_split/evg2tribol.tr.split3.aa2 -cdsseq evg2tribol_split/evg2tribol.tr.split3.cds2 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split4.fa -aaseq evg2tribol_split/evg2tribol.tr.split4.aa3 -cdsseq evg2tribol_split/evg2tribol.tr.split4.cds3 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split5.fa -aaseq evg2tribol_split/evg2tribol.tr.split5.aa4 -cdsseq evg2tribol_split/evg2tribol.tr.split5.cds4 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split6.fa -aaseq evg2tribol_split/evg2tribol.tr.split6.aa5 -cdsseq evg2tribol_split/evg2tribol.tr.split6.cds5 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split7.fa -aaseq evg2tribol_split/evg2tribol.tr.split7.aa6 -cdsseq evg2tribol_split/evg2tribol.tr.split7.cds6 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split8.fa -aaseq evg2tribol_split/evg2tribol.tr.split8.aa7 -cdsseq evg2tribol_split/evg2tribol.tr.split8.cds7 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split9.fa -aaseq evg2tribol_split/evg2tribol.tr.split9.aa8 -cdsseq evg2tribol_split/evg2tribol.tr.split9.cds8 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split10.fa -aaseq evg2tribol_split/evg2tribol.tr.split10.aa9 -cdsseq evg2tribol_split/evg2tribol.tr.split10.cds9 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split11.fa -aaseq evg2tribol_split/evg2tribol.tr.split11.aa10 -cdsseq evg2tribol_split/evg2tribol.tr.split11.cds10 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split12.fa -aaseq evg2tribol_split/evg2tribol.tr.split12.aa11 -cdsseq evg2tribol_split/evg2tribol.tr.split12.cds11 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split13.fa -aaseq evg2tribol_split/evg2tribol.tr.split13.aa12 -cdsseq evg2tribol_split/evg2tribol.tr.split13.cds12 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split14.fa -aaseq evg2tribol_split/evg2tribol.tr.split14.aa13 -cdsseq evg2tribol_split/evg2tribol.tr.split14.cds13 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split15.fa -aaseq evg2tribol_split/evg2tribol.tr.split15.aa14 -cdsseq evg2tribol_split/evg2tribol.tr.split15.cds14 #t2ac: forkCMD= /home/ux455375/bio/evigene/scripts/prot/../cdna_bestorf.pl -nostop -minaa=30 -cdna evg2tribol_split/evg2tribol.tr.split16.fa -aaseq evg2tribol_split/evg2tribol.tr.split16.aa15 -cdsseq evg2tribol_split/evg2tribol.tr.split16.cds15 #t2ac: CMD= cat evg2tribol_split/evg2tribol.tr.split1.aa0 evg2tribol_split/evg2tribol.tr.split2.aa1 evg2tribol_split/evg2tribol.tr.split3.aa2 evg2tribol_split/evg2tribol.tr.split4.aa3 evg2tribol_split/evg2tribol.tr.split5.aa4 evg2tribol_split/evg2tribol.tr.split6.aa5 evg2tribol_split/evg2tribol.tr.split7.aa6 evg2tribol_split/evg2tribol.tr.split8.aa7 evg2tribol_split/evg2tribol.tr.split9.aa8 evg2tribol_split/evg2tribol.tr.split10.aa9 evg2tribol_split/evg2tribol.tr.split11.aa10 evg2tribol_split/evg2tribol.tr.split12.aa11 evg2tribol_split/evg2tribol.tr.split13.aa12 evg2tribol_split/evg2tribol.tr.split14.aa13 evg2tribol_split/evg2tribol.tr.split15.aa14 evg2tribol_split/evg2tribol.tr.split16.aa15 > evg2tribol.aa #t2ac: CMD= cat evg2tribol_split/evg2tribol.tr.split1.cds0 evg2tribol_split/evg2tribol.tr.split2.cds1 evg2tribol_split/evg2tribol.tr.split3.cds2 evg2tribol_split/evg2tribol.tr.split4.cds3 evg2tribol_split/evg2tribol.tr.split5.cds4 evg2tribol_split/evg2tribol.tr.split6.cds5 evg2tribol_split/evg2tribol.tr.split7.cds6 evg2tribol_split/evg2tribol.tr.split8.cds7 evg2tribol_split/evg2tribol.tr.split9.cds8 evg2tribol_split/evg2tribol.tr.split10.cds9 evg2tribol_split/evg2tribol.tr.split11.cds10 evg2tribol_split/evg2tribol.tr.split12.cds11 evg2tribol_split/evg2tribol.tr.split13.cds12 evg2tribol_split/evg2tribol.tr.split14.cds13 evg2tribol_split/evg2tribol.tr.split15.cds14 evg2tribol_split/evg2tribol.tr.split16.cds15 > evg2tribol.cds #t2ac: bestorf_cds= evg2tribol.cds nrec= 5800099 #t2ac: CMD= /home/ux455375/bio/evigene/scripts/prot/../prot/aaqual.sh evg2tribol.aa #t2ac: CMD= /home/ux455375/bio/exonerate/bin/fastanrdb evg2tribol.cds > evg2tribolnr.cds #t2ac: nonredundant_cds= evg2tribolnr.cds nrec= 3017999 #t2ac: CMD= touch evg2tribolnr.cds.isbest #t2ac: nonredundant_reassignbest= 190157 of 699926 #t2ac: CMD= /home/ux455375/bio/cdhit/bin/cd-hit-est -c 1.00 -T 15 -M 50000 -l 89 -d 0 -i evg2tribolnr.cds -o evg2tribolnrcd1.cds 1> evg2tribolnrcd1.log 2>&1 #t2ac: CMD= touch evg2tribolnrcd1.cds.isbest #t2ac: nofrag_reassignbest= 0 of 1724088 evg2tribolnrcd1.cds #t2ac: nofragments_cds= evg2tribolnrcd1.cds nrec= 1724088 #t2ac: CMD= /home/ux455375/bio/ncbi2227/bin/makeblastdb -in evg2tribolnrcd1.cds -dbtype nucl -out evg2tribolnrcd1_db -logfile evg2tribolnrcd1_db.log #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split1.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split1-self98.blastn1 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split2.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split2-self98.blastn2 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split3.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split3-self98.blastn3 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split4.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split4-self98.blastn4 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split5.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split5-self98.blastn5 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split6.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split6-self98.blastn6 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split7.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split7-self98.blastn7 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split8.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split8-self98.blastn8 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split9.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split9-self98.blastn9 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split10.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split10-self98.blastn10 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split11.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split11-self98.blastn11 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split12.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split12-self98.blastn12 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split13.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split13-self98.blastn13 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split14.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split14-self98.blastn14 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split15.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split15-self98.blastn15 #t2ac: forkCMD= /home/ux455375/bio/ncbi2227/bin/blastn -task megablast -perc_identity 98 -evalue 1e-19 -ungapped -dust no -outfmt 7 -db evg2tribolnrcd1_db -query evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split16.fa -out evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split16-self98.blastn16 #t2ac: CMD= cat evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split1-self98.blastn1 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split2-self98.blastn2 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split3-self98.blastn3 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split4-self98.blastn4 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split5-self98.blastn5 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split6-self98.blastn6 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split7-self98.blastn7 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split8-self98.blastn8 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split9-self98.blastn9 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split10-self98.blastn10 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split11-self98.blastn11 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split12-self98.blastn12 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split13-self98.blastn13 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split14-self98.blastn14 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split15-self98.blastn15 evg2tribolnrcd1_blsplit/evg2tribolnrcd1.cds.split16-self98.blastn16 > evg2tribolnrcd1-self98.blastn #t2ac: blastn_cds= evg2tribolnrcd1-self98.blastn #t2ac: CMD= /home/ux455375/bio/cdhit/bin/cd-hit -T 15 -M 50000 -l 30 -c 0.90 -d 0 -i evg2tribolnrcd1.aa -o evg2tribolnrcd1_cd90.aa 1> evg2tribolnrcd1_cd90.log 2>&1 #t2ac: CMD= /home/ux455375/bio/evigene/scripts/prot/../rnaseq/asmrna_dupfilter2.pl -debug -tinyaln 35 -aasize evg2tribol.aa.qual -CDSALIGN -blastab evg2tribolnrcd1-self98.blastn -acdhit evg2tribolnrcd1_cd90.aa.clstr -outeqtab evg2tribol.alntab -outclass evg2tribol.trclass >evg2tribol.adupfilt.log 2>&1 #t2ac: asmdupfilter_cds= evg2tribol.trclass # Class Table for evg2tribol.trclass class okay drop okay drop althi 2.9 5.5 50021 95581 althi1 14.6 32.3 251929 558120 althia2 0 0.3 0 5771 altmfrag 1.4 0.7 24169 13571 altmfraga2 0.1 0.2 3087 3644 altmid 1 0.5 18376 9820 altmida2 0 0 1214 656 main 1.1 2.5 20266 44573 maina2 0.1 0.1 2343 2945 noclass 0.3 4.6 6576 79591 noclassa2 0 0 22 324 parthi 0 16.2 0 280898 parthi1 0 11.8 0 204005 parthia2 0 2.6 0 46490 --------------------------------------------- total 21.9 78 378003 1345989 ============================================= # AA-quality for okay set of evg2tribol.aa.qual (no okalt): all and longest 1000 summary okay.top n=1000; average=1834; median=1491; min,max=1145,18274; sum=1834289; gaps=3507,3.5 okay.all n=29207; average=302; median=157; min,max=36,18274; sum=8842928; gaps=73490,2.5 #t2ac: asmdupfilter_fileset= evg2tribol.okay.tr evg2tribol.okalt.tr evg2tribol.drop.tr evg2tribol.okay.aa evg2tribol.okalt.aa evg2tribol.drop.aa evg2tribol.okay.cds evg2tribol.okalt.cds evg2tribol.drop.cds #t2ac: tidyup output folders: okayset dropset inputset tmpfiles #t2ac: CMD= mv evg2tribol.okay.tr okayset/evg2tribol.okay.tr #t2ac: CMD= mv evg2tribol.okalt.tr okayset/evg2tribol.okalt.tr #t2ac: CMD= mv evg2tribol.okay.aa okayset/evg2tribol.okay.aa #t2ac: CMD= mv evg2tribol.okalt.aa okayset/evg2tribol.okalt.aa #t2ac: CMD= mv evg2tribol.okay.cds okayset/evg2tribol.okay.cds #t2ac: CMD= mv evg2tribol.okalt.cds okayset/evg2tribol.okalt.cds #t2ac: CMD= mv evg2tribol.drop.tr dropset/evg2tribol.drop.tr #t2ac: CMD= mv evg2tribol.drop.aa dropset/evg2tribol.drop.aa #t2ac: CMD= mv evg2tribol.drop.cds dropset/evg2tribol.drop.cds #t2ac: CMD= mv evg2tribol.cds inputset/evg2tribol.cds #t2ac: CMD= mv evg2tribol.aa inputset/evg2tribol.aa #t2ac: CMD= mv evg2tribol.aa.qual inputset/evg2tribol.aa.qual #t2ac: CMD= mv evg2tribolnr.cds tmpfiles/evg2tribolnr.cds #t2ac: CMD= mv evg2tribolnr.cds.isbest tmpfiles/evg2tribolnr.cds.isbest #t2ac: CMD= mv evg2tribolnr.cds.old tmpfiles/evg2tribolnr.cds.old #t2ac: CMD= mv evg2tribolnrcd1.cds.isbest tmpfiles/evg2tribolnrcd1.cds.isbest #t2ac: CMD= mv evg2tribolnrcd1.cds tmpfiles/evg2tribolnrcd1.cds #t2ac: CMD= mv evg2tribolnrcd1.cds.clstr tmpfiles/evg2tribolnrcd1.cds.clstr #t2ac: CMD= mv evg2tribolnrcd1.log tmpfiles/evg2tribolnrcd1.log #t2ac: CMD= mv evg2tribolnrcd1-self98.blastn tmpfiles/evg2tribolnrcd1-self98.blastn #t2ac: CMD= mv evg2tribolnrcd1_db.log tmpfiles/evg2tribolnrcd1_db.log #t2ac: CMD= mv evg2tribolnrcd1.aa tmpfiles/evg2tribolnrcd1.aa #t2ac: CMD= mv evg2tribolnrcd1_cd90.aa tmpfiles/evg2tribolnrcd1_cd90.aa #t2ac: CMD= mv evg2tribolnrcd1_cd90.aa.clstr tmpfiles/evg2tribolnrcd1_cd90.aa.clstr #t2ac: CMD= mv evg2tribolnrcd1_cd90.log tmpfiles/evg2tribolnrcd1_cd90.log #t2ac: CMD= mv evg2tribol.alntab tmpfiles/evg2tribol.alntab #t2ac: CMD= mv evg2tribol.adupfilt.log tmpfiles/evg2tribol.adupfilt.log #t2ac: tidyup erase: n=83, evg2tribol_split/evg2tribol.tr.split1.fa evg2tribol_split/evg2tribol.tr.split2.fa evg2tribol_split/evg2tribol.tr.split3.fa evg2tribol_split/evg2tribol.tr.split4.fa evg2tribol_split/evg2tribol.tr.split5.fa .. #t2ac: DONE at date= Tue Dec 9 08:36:43 PST 2014 #t2ac: ======================================