macro=; log %7.tnt.log; /*Arguments*/ if ( (argnumber == 0) | (argnumber >7) ) silent -console; quote - /----------------------------------------------------\; quote - | GUOYI TNT SCRIPT 2022-2023 MIT |; quote - | You need to give your filename |; quote - | shell> tnt run guoyi.tnt filename, (Linux & Mac) |; quote - | shell> tnt run guoyi.run filename(semicolon) (Win) |; quote - | ============================== |; quote - | === Parameters Details === |; quote - | ============================== |; quote - | filename type weight K cons resamp prefix |; quote - | - type should be 32, dna, prot, num |; quote - | num=number, dna=DNA, prot=protein |; quote - | 32=max number allowed (default) |; quote - | - weight should be iw, ew, eiw |; quote - | iw=implied weight, ew=equal weight |; quote - | eiw=extended implied weight (default) |; quote - | N.B. K of ew must followed 0 (=NA) |; quote - | - K is 12 (default) following Goloboff |; quote - | et al. 2017 (Cladistics 34: 407–437) |; quote - | it must more than 0 |; quote - | - cons should be str, mjr, hlf |; quote - | mjr=majority rule, hlf=half |; quote - | str=strict (default) |; quote - | - resamp should be sum of what you want |; quote - | jak=1, boot=2, relative bremer=4 sym=8 |; quote - | i.e. jak+boot+sym+bremer=15 (default) |; quote - | - prefix can be empty, or a string |; quote - | default is empty |; quote - \----------------------------------------------------/; proc/; end /*Basic settings*/ taxname+100; taxname=; mxram 500; if(argnumber>=2) nstates %2; else nstates 32; end nstates NOGAPS; /*Set K*/ if(argnumber>2 ) if (eqstring [ %3 ew ]) quote Equal weighting is used; if (argnumber>=4) if (%4!=0) quote Warning: equal weighting %4 should be fullfilled with 0; end end end if ((eqstring [ %3 iw ]) | (eqstring [ %3 eiw ])) if (argnumber>=4) piwe=%4; else piwe=12; end end else piwe=12; end /*Reopen tnt*/ procedure %1; hold 10000; /*Report what will be done*/ quote - /-----------------------------------------------\; if(argnumber>2) if (eqstring [ %3 iw ]) if (argnumber>3) quote - | Implied weighting will be used, K is %4. |; else quote - | Implied weighting will be used, K is 12. |; end end if (eqstring [ %3 eiw ]) if (argnumber>3) quote - | Ex-implied weighting will be used, K is %4. |; else quote - | Ex-implied weighting will be used, K is 12. |; end end if (eqstring [ %3 ew ]) quote - | Equal weighting will be used. |; end else quote - | Ex-implied weighting will be used, K is 12. |; end if (ntax<=25) quote - | Implicit enumeration will be performed. |; end if ((ntax>25) && (ntax < 75)) quote - | TBR Mult will be performed. |; end if (ntax>=75) quote - | Xmult will be performed. |; end if (argnumber>=5) if (eqstring [ %5 mjr ]) quote - | Majority-rule consensus will be used. |; end if (eqstring [ %5 hlf ]) quote - | Half strict consensus will be used. |; end if(eqstring [ %5 str ]) quote - | Strict consensus will be used. |; end end if (argnumber<5) quote - | Strict consensus will be used. |; end if (argnumber>=6) if (%6==1) quote - | Jackknifing |; end if (%6==2) quote - | Bootstrap |; end if (%6==3) quote - | Jackknifing and bootstrap |; end if (%6==4) quote - | Relative bremer support |; end if (%6==5) quote - | Jackknifing and relative bremer support |; end if (%6==6) quote - | Bootstrap and relative bremer support |; end if (%6==7) quote - | Jackknifing, bootstrap and relative bremer |; end if (%6==8) quote - | Symmetric resampling |; end if (%6==9) quote - | Jackknifing and symmetric resampling |; end if (%6==10) quote - | Bootstrap and symmetric resampling |; end if (%6==11) quote - | Jackknifing, bootstrap and symmetric |; quote - | resampling |; end if (%6==12) quote - | Symmetric resampling and relative bremer |; end if (%6==13) quote - | Jackknifing, symmetric resampling and |; quote - | relative bremer |; end if (%6==14) quote - | Bootstrap, symmetric resampling and |; quote - | relative bremer |; end if (%6==15) quote - | Jackknifing, bootstrap, symmetric |; quote - | resampling and relative bremer support |; end end if (argnumber<6) quote - | Jackknifing, bootstrap, symmetric |; quote - | resampling and relative bremer support |; end quote - | will be shown on the resample.svg. |; quote - | Apomorphic characters mapping will be shown |; quote - | on the apo.svg and saved to apo*.tre. |; quote - | TL, CI and RI will be calculated finally. |; quote - \------------------------------------------------/; /*Implied weighting settings*/ if(argnumber>2) if (eqstring [ %3 iw ]) piwe&; end if (eqstring [ %3 eiw ]) xpiwe(*; piwe&; end else xpiwe(*; piwe&; end /*Search trees*/ if(argnumber>2) if(eqstring [ %3 ew ] | eqstring [ %3 iw ] ) if (ntax<=25) ienum; else if (ntax<=74) mult=replic 1000 tbr hold 1000; bbreak=tbr fill; end if (ntax>74) sect: slack 40; xmult=hit 50 replications 20 drift 10 ratchet 10 fuse 10 hold 10 keepall; end end else if (ntax<=74) mult=replic 1000 tbr hold 1000; bbreak=tbr fill; else sect: slack 40; xmult=hit 50 replications 20 drift 20 ratchet 10 fuse 10 hold 10 keepall; end end else mult=replic 1000 tbr hold 1000; bbreak=tbr fill; if (ntax>74) sect: slack 1000; xmult=hit 50 replications 20 drift 10 ratchet 10 fuse 10 hold 10 keepall; end end /*Export trees*/ export= %7.trees.tre; taxname-; export= %7.trees_no.tre; taxname=; tsave = %7.trees.ctf; tsave *= %7.trees.tnt.tre; /*Consensus tree*/ if (argnumber<=4) nelsen *; else if (eqstring [ %5 str ]) nelsen *; end if (eqstring [ %5 mjr ]) majority *; end if (eqstring [ %5 hlf ]) comcomp *; end end /*Tree vault store*/ hold /+0; tvault >/; /*Export consensus tree*/ tchoose /; export - %7.original.tre; taxname-; export - %7.original_no.tre; tsave = %7.original.ctf; tsave *= %7.original.tnt.tre; /*Caulculate TL/CI/RI score*/ report-; var-; var = 0 themin 1 themax 2 CI 3 RI 4 TL ; set themin minsteps; set themax maxsteps; set TL length[0]; set CI 'themin'/'TL'; /*CI=1 means no homoplasy*/ set RI ('themax'-'TL')/('themax'-'themin'); /*RI=1 character fits perfetcly*/ report=; /*Apomorphic characters*/ export = %7.winclada.tre; taxname =; ttags=; apo >0; quote - /----------------------------------------------\; quote - apomorphy tags start ; ttags/; quote - apomorphy tags stop ; quote - \----------------------------------------------/; ttags & %7.apo.svg thickness 7 italics fontsize 15; export < %7.apo.tre; taxname-; export - %7.apo_no.tre; ttags-; /*Get jak/boot/relative-bremer support*/ tchoose/; ttags=; ttags]; /*in one line*/ /* jak=1, boot=2, bremer=4, */ /* jak+boot=3, */ /* jak+brember=5, boot+bremer=6, */ /* jak+boot+bremer=7, */ /* sym=8, */ /* jak+sym=9, boot+sym=10, bremer+sym=12 */ /* jak+boot+sym=11, jak+bremer+sym=13, */ /* boot+bremer+sym=14, */ /* jak+sym+boot+bremer=15 */ if (argnumber<=5) /*jakknifing*/ resample jak replications 1000 from 0; /*bootstrap*/ resample boot replications 1000 from 0; /*symmetric resampling*/ resample sym replications 1000 from 0; /*relative bremer*/ sub 1; hold +1000; bbreak=fill; sub 3; hold +3000; bbreak=fill; sub 5; hold +5000; bbreak=fill; sub 7; hold +7000; bbreak=fill; bsupport[; else if((%6==1) | (%6==3) | (%6==5) | (%6==7) | (%6==9) | (%6==11) | (%6==13) | (%6==15)) resample jak replications 1000 from 0; end if((%6==2) | (%6==3) | (%6==6) | (%6==7) | (%6==10) | (%6==11) | (%6==14) | (%6==15)) resample boot replications 1000 from 0; end if((%6==8) | (%6==9) | (%6==10) | (%6==11) | (%6==12) | (%6==13) | (%6==14) | (%6==15)) resample sym replications 1000 from 0; end if((%6==4) | (%6==5) | (%6==6) | (%6==7) | (%6==12) | (%6==13) | (%6==14) | (%6==15)) sub 1; hold +1000; bbreak=fill; sub 3; hold +3000; bbreak=fill; sub 5; hold +5000; bbreak=fill; sub 7; hold +7000; bbreak=fill; bsupport[; end end /*Export consensus tree with supports*/ ttags & %7.resample.svg thickness 7 italics fontsize 15; quote - /----------------------------------------------\; quote - resample tags start ; ttags/; quote - resample tags stop ; quote - \----------------------------------------------/; export < %7.resample.tre; taxname-; export - %7.resample_no.tre; ttags-; /*Report CI/RI/TL */ macfloat 3; quote Consistency Index (CI) is 'CI'; quote Retention Index (RI) is 'RI'; quote Tree Length (TL) is 'TL'; /*Report*/ quote - /----------------------------------------------\; quote - | The analysis has been finished. |; quote - | The file `tnt.log` contains |; quote - | K, TL, CI and RI |; quote - | The file `trees*.tre` contain |; quote - | trees found by mult and xmult |; quote - | The file `original*.tre` contain |; quote - | strict consensus tree without label |; quote - | The file `resample*.tre` contain |; quote - | consensus tree with support |; quote - | The file `apo*.tre` contain |; quote - | tree with apomorphic character |; quote - | The file `*_no.tre` contain |; quote - | tree with `taxname-` |; quote - | The file `*.ctf` tree file is |; quote - | only readable for TNT |; quote - | The file `*.tnt.tre` contain |; quote - | is the ctf file with taxname |; quote - | The file `resample.svg` contain |; if (argnumber>=5) if(eqstring [ %5 mjr ]) quote - | majority rule consensus tree with |; end if(eqstring [ %5 hlf ]) quote - | half strict consensus tree with |; end if(eqstring [ %5 str ]) quote - | strict consensus tree with |; end else quote - | strict consensus tree with |; end if (argnumber>=6) if (%6==1) quote - | jackknifing |; end if (%6==2) quote - | bootstrap |; end if (%6==3) quote - | jackknifing and bootstrap |; end if (%6==4) quote - | relative bremer support |; end if (%6==5) quote - | jackknifing and relative bremer |; quote - | support |; end if (%6==6) quote - | bootstrap and relative bremer |; quote - | support |; end if (%6==7) quote - | jackknifing, bootstrap and |; quote - | relative bremer support |; end if (%6==8) quote - | symmetric resampling |; end if (%6==9) quote - | Jackknifing and symmetric resample |; end if (%6==10) quote - | Bootstrap and symmetric resample |; end if (%6==11) quote - | jackknifing, bootstrap and |; quote - | symmetric resample |; end if (%6==12) quote - | relative bremer support and |; quote - | symmetric resampling |; end if (%6==13) quote - | Jackknifing, symmetric resample and |; quote - | relative bremer support |; end if (%6==14) quote - | bootstrap, symmetric resmaple and |; quote - | relative bremer support |; end if (%6==15) quote - | jackknifing, bootstrap, symmetric |; quote - | resample and relative bremer support|; end else quote - | jackknifing, bootstrap, symmetric |; quote - | resample and relative bremer support|; end quote - | The file `apo.svg` contain the |; quote - | tree with apomorphy mapping |; quote - | The file `winclada.tre` can be |; quote - | converted by tnt2winclada |; quote - \----------------------------------------------/; /*Quit*/ zzz;