if ( !argnumber ) errmsg This script first calculates strict consensus for the entire data set, and then calculates the bremer support for each partition of the data set. You have to give the name of the data set as argument. Once the script finishes running (it may take a while), then you process the results by calling (on the Windows version) the file procbremers.run. The search is sufficient for a data set with 300-500 taxa., change it in case you feel the search is inadequate! Note that the script uses as temporary file(s): trees.tre --- trees of minimum length (parents) consensus.ctf --- consensus tree (compact) taggedtre.out --- tree with labels All the resulting files must be in the same folder for processing with procbremers.run. ; end taxna + 1200 ; p %1 ; macro=; var : doasch[100] withgroup without daroot todo done daval i ; sec : xss6-2+6-1 god 80 goco 70 combsta 5 fuse 4 drif 6 ; drift : fitd 3 rfit 0.15 numsu 50 nogive ; xmu = hit 20 drift 10 xss norss rep 5 ; tsave * trees.tre ; save ; tsav / ; p trees.tre ; collapse tbr ; nelsen * ; tchoose { strict } ; tsave consensus.ctf ; save ; tsave / ; collapse rule 1; sho consensus.ctf ; set todo nnodes[0] - root ; set doasch $xmu=hit1 drif 6 rep 5 nogiveup ; set daroot root ; ttag = ; naked = ; tplot ; loop (root+1) nnodes[0] ttag +#1 (; stop report - ; sil = all ; loop 1 nblocks ccode ! ; taxco +. ; block = #1 ; keep 0 ; ra 1 ; set i tsize[0] ; sil - all ; quote Running block #1 - 'i' taxa ; sil = all ; keep 0 ; sho consensus.ctf ; set done 0 ; loop (root+1) nnodes[0] progress 'done' 'todo' Block #1 ; set done ++ ; keep 0 ; sho consensus.ctf ; if ( anc[ 0 #2 ] == root ) continue ; end conde /0 .-#2 ; pruntax /! ; reroot ; if ( nnodes[0] == root ) /*** i.e. group is irrelevant ****/ ttag +#2 ?,; continue ; end force =&0 ; const - ; $doasch ; set withgroup length[0] ; const=; keep 0 ; $doasch ; set without length[0] ; set daval 'without' - 'withgroup' ; ttag +#2 '/+.0daval',; stop progress/ ; stop keep 0 ; sho consensus.ctf ; loop (root+1) nnodes[0] ttag +#1 ); stop sil - all ; log taggedtre.out ; ttag / ; quote proc/.,; log / ; ttag ; proc/;