#! /bin/bash -l ####/bin/sh # aadrosblast.sh # blast a bunch of genomes # sample script for bioinformatics data-grid methods (parallelize by data splitting) # using ibm LoadLeveler SHARED=$HOME/scratch ACCOUNT=TG-xxx blbin=$HOME/bio/blast/bin jalib=$HOME/bio/blast/lib/java ncbibin=$HOME/bio/ncbi/bin # or ncbibin=/N/soft/linux-sles9-ppc64/ncbi-2.2.16/bin/ # mpiblast=$HOME/bio/iuparblast/ncbi/bin # gilbertd@BigRed:~/bio/blast/drostand> ls dsec*aa.gz # dsec_bren_nsc.aa.gz dsec_caf1_NCBI_GNO.aa.gz dsec_glean1.aa.gz # dsec_caf1_DGIL_SNO.aa.gz dsec_genewise1.aa.gz dsec_gleanr.aa.gz ## about 16k to 30k prots/predictor : split about 10x each, vs all together in target db qsplist="dsec_caf1_NCBI_GNO dsec_genewise1 dsec_gleanr dsec_bren_nsc dsec_caf1_DGIL_SNO dsec_glean1" protdir="$SHARED/prots/aadros/" outdir="$SHARED/prots/aadros/" targetnm="dsecdb" targetdb="$SHARED/prots/aadros/dsec_all.aa" # gunzip -c dsec*.aa.gz > $targetdb # $ncbibin/formatdb -p T -i $targetdb # == 51 MB .psq database # job size: one part 2000q x target 150,000 =~ 15 min? npart=5 for qspp in $qsplist { qfasta="${qspp}.aa" $blbin/dgfasplit.pl -JA $jalib -n $npart -in $protdir/$qfasta for qpart in $protdir/$qfasta-* { [ -f $qpart ] || continue; qp=`echo $qpart| sed -e's/.*a-//;'` ## [ $qp == "01" ] && continue; ## [ $qp != "01" ] && continue; jobn=run-${qspp}-${targetnm}.$qp outn=$outdir/${qspp}-${targetnm}.$qp cat > $jobn < llclass # Name MaxJobCPU MaxProcCPU Free Max Description # d+hh:mm:ss d+hh:mm:ss Slots Slots # --------------- -------------- -------------- ----- ----- --------------------- # FAST 04:00:00 00:15:00 15 16 Fast Queue for Debuging # PU_LOW 448+00:00:00 7+00:00:00 252 252 Low queue for Purdue for up to 16 nodes # PU_MED 1792+00:00:00 7+00:00:00 252 252 Med queue for Purdue for up to 64 nodes # BIG 2048+00:00:00 2+00:00:00 191 1544 Big Queue for up to 256 nodes # PU_HIGH 3584+00:00:00 7+00:00:00 512 512 High queue for Purdue for up to 128 nodes # MED 3584+00:00:00 14+00:00:00 87 1432 Intermediate Queue for up to 64 nodes # PU_WIDE 7168+00:00:00 7+00:00:00 1016 1016 Wide queue for Purdue for up to 256 nodes # -------------------------------------------------------------------------------- # "Maximum Slots" value of the class "FAST" is constrained by the MAX_STARTERS limit(s). # "Free Slots" values of the classes "FAST", "BIG", "MED" are constrained by the MAX_STARTERS limit(s). # llclass -l # =============== Class FAST =============== # Class_comment: Fast Queue for Debuging # Wall_clock_limit: 00:15:00, undefined (900 seconds, undefined) # Def_wall_clock_limit: 00:15:00, undefined (900 seconds, undefined) # Job_cpu_limit: 04:00:00, undefined (14400 seconds, undefined) # Cpu_limit: 00:15:00, undefined (900 seconds, undefined) # Maximum_slots: 16 # =============== Class MED =============== # Class_comment: Intermediate Queue for up to 64 nodes # Wall_clock_limit: 14+00:00:00, undefined (1209600 seconds, undefined) # Def_wall_clock_limit: 02:00:00, undefined (7200 seconds, undefined) # Job_cpu_limit: 3584+00:00:00, undefined (309657600 seconds, undefined) # Cpu_limit: 14+00:00:00, undefined (1209600 seconds, undefined) # Maximum_slots: 1432