IQTREE3(1)

πŸ“¦ version 3.1.1, in ubuntu stonking

πŸ¦‹ IQTREE3(1) β€” iqtree3 πŸ¦‹

πŸ’– NAME πŸ’–

iqtree3 β€” efficient phylogenetic software by maximum likelihood. Yes bestie, this is the IQTREE3(1) page and it is a lot, but we're gonna get through it together 🫢


✨ SYNOPSIS ✨

iqtree [-s ALIGNMENT] [-p PARTITION] [-m MODEL] [-t TREE] ...

🌸 DESCRIPTION 🌸

Okay so first things first, the receipts πŸ“‹: IQ-TREE version 3.1.1 for Linux x86 64-bit built Jul 28 2026. Developed by Bui Quang Minh, Thomas Wong, Nhan Ly-Trong, Huaiyan Ren. Contributed by Lam-Tung Nguyen, Dominik Schrempf, Chris Bielow, Olga Chernomor, Michael Woodhams, Diep Thi Hoang, Heiko Schmidt. Kings and queens, all of them πŸ‘‘ no cap.


πŸ’… GENERAL OPTIONS πŸ’…

The day-one basics, the main character options, the ones you'll actually type at 2am πŸŒ™

  • -h, --help β€” Print (more) help usages. She'll tell you more if you ask nicely ✨
  • -s FILE[,...,FILE] β€” PHYLIP/FASTA/NEXUS/CLUSTAL/MSF alignment file(s). Yes, you can pass several, comma-separated, go off πŸ’…
  • -s DIR β€” Directory of alignment files. Gimme the whole folder, I'll handle it πŸŽ€
  • --seqtype STRING β€” BIN, DNA, AA, NT2AA, CODON, MORPH (default: auto-detect). She's smart, she'll usually figure out your data type herself πŸ”
  • -t FILE|PARS|RAND β€” Starting tree (default: 99 parsimony and BIONJ)
  • -o TAX[,...,TAX] β€” Outgroup taxon (list) for writing .treefile
  • --prefix STRING β€” Prefix for all output files (default: aln/partition)
  • --seed NUM β€” Random seed number, normally used for debugging purpose
  • --safe β€” Safe likelihood kernel to avoid numerical underflow. Lowkey the seatbelt of likelihoods πŸ›‘οΈ
  • --mem NUM[G|M|%] β€” Maximal RAM usage in GB | MB | %. Watch your memory budget, bestie, don't go feral πŸ’€
  • --runs NUM β€” Number of indepedent runs (default: 1)
  • -v, --verbose β€” Verbose mode, printing more messages to screen. Give me ALL the lore πŸ“’
  • -V, --version β€” Display version number
  • --quiet β€” Quiet mode, suppress printing to screen (stdout). Shhh 🀫
  • -fconst f1,...,fN β€” Add constant patterns into alignment (N=no. states)
  • --epsilon NUM β€” Likelihood epsilon for parameter estimate (default 0.01)
  • -T NUM|AUTO β€” No. cores/threads or AUTO-detect (default: 1). Let her cook on every core πŸ”₯
  • --threads-max NUM β€” Max number of threads for -T AUTO (default: all cores)

πŸ”– CHECKPOINT πŸ”–

She saves her progress like a responsible queen πŸ’Ύ so you can pick up right where you left off.

  • --redo β€” Redo both ModelFinder and tree search
  • --redo-tree β€” Restore ModelFinder and only redo tree search
  • --undo β€” Revoke finished run, used when changing some options
  • --cptime NUM β€” Minimum checkpoint interval (default: 60 sec and adapt)

🧩 PARTITION MODEL 🧩

For when your alignment is actually a little ensemble cast, and each partition is a main character with her own vibe 🌈

  • -p FILE|DIR β€” NEXUS/RAxML partition file or directory with alignments. Edge-linked proportional partition model
  • -q FILE|DIR β€” Like -p but edge-linked equal partition model
  • -Q FILE|DIR β€” Like -p but edge-unlinked partition model
  • -S FILE|DIR β€” Like -p but separate tree inference
  • --subsample NUM β€” Randomly sub-sample partitions (negative for complement)
  • --subsample-seed NUM β€” Random number seed for --subsample

πŸ” LIKELIHOOD/QUARTET MAPPING πŸ”

  • --lmap NUM β€” Number of quartets for likelihood mapping analysis
  • --lmclust FILE β€” NEXUS file containing clusters for likelihood mapping
  • --quartetlh β€” Print quartet log-likelihoods to .quartetlh file

🌳 TREE SEARCH ALGORITHM 🌳

The actual tree-hunting part. This is where she shines, periodt ✨

  • --ninit NUM β€” Number of initial parsimony trees (default: 100)
  • --ntop NUM β€” Number of top initial trees (default: 20)
  • --nbest NUM β€” Number of best trees retained during search (default: 5)
  • -n NUM β€” Fix number of iterations to stop (default: OFF)
  • --nstop NUM β€” Number of unsuccessful iterations to stop (default: 100)
  • --perturb NUM β€” Perturbation strength for randomized NNI (default: 0.5)
  • --radius NUM β€” Radius for parsimony SPR search (default: 6)
  • --allnni β€” Perform more thorough NNI search (default: OFF)
  • -g FILE β€” (Multifurcating) topological constraint tree file
  • --fast β€” Fast search to resemble FastTree πŸƒβ™€οΈπŸ’¨
  • --polytomy β€” Collapse near-zero branches into polytomy
  • --tree-fix β€” Fix -t tree (no tree search performed)
  • --treels β€” Write locally optimal trees into .treels file
  • --show-lh β€” Compute tree likelihood without optimisation
  • --terrace β€” Check if the tree lies on a phylogenetic terrace

⚑ ULTRAFAST BOOTSTRAP/JACKKNIFE ⚑

The zoom-zoom version. Same support values, but make it fast πŸ’¨ obsessed.

  • -B, --ufboot NUM β€” Replicates for ultrafast bootstrap (>=1000)
  • -J, --ufjack NUM β€” Replicates for ultrafast jackknife (>=1000)
  • --jack-prop NUM β€” Subsampling proportion for jackknife (default: 0.5)
  • --sampling STRING β€” GENE|GENESITE resampling for partitions (default: SITE)
  • --boot-trees β€” Write bootstrap trees to .ufboot file (default: none)
  • --wbtl β€” Like --boot-trees but also writing branch lengths
  • --nmax NUM β€” Maximum number of iterations (default: 1000)
  • --nstep NUM β€” Iterations for UFBoot stopping rule (default: 100)
  • --bcor NUM β€” Minimum correlation coefficient (default: 0.99)
  • --beps NUM β€” RELL epsilon to break tie (default: 0.5)
  • --bnni β€” Optimize UFBoot trees by NNI on bootstrap alignment

πŸŽ€ NON-PARAMETRIC BOOTSTRAP/JACKKNIFE πŸŽ€

The classy, slower, extra-thorough route. She takes her time on purpose πŸ’…

  • -b, --boot NUM β€” Replicates for bootstrap + ML tree + consensus tree
  • -j, --jack NUM β€” Replicates for jackknife + ML tree + consensus tree
  • --jack-prop NUM β€” Subsampling proportion for jackknife (default: 0.5)
  • --bcon NUM β€” Replicates for bootstrap + consensus tree
  • --bonly NUM β€” Replicates for bootstrap only
  • --tbe β€” Transfer bootstrap expectation

πŸ”¬ SINGLE BRANCH TEST πŸ”¬

One branch at a time, lookin' at her specifically πŸ‘€

  • --alrt NUM β€” Replicates for SH approximate likelihood ratio test
  • --alrt 0 β€” Parametric aLRT test (Anisimova and Gascuel 2006)
  • --abayes β€” approximate Bayes test (Anisimova et al. 2011)
  • --lbp NUM β€” Replicates for fast local bootstrap probabilities

🧠 MODEL-FINDER 🧠

She'll try on every model like it's a fitting room and tell you which one ate πŸ‘‘

  • --use-nn-model β€” Use neural network for tree inference
  • --nn-path-model β€” Neural network file for substitution model (onnx format)
  • --nn-path-rates β€” Neural network file for alpha value (onnx format)
  • -m TESTONLY β€” Standard model selection (like jModelTest, ProtTest)
  • -m TEST β€” Standard model selection followed by tree inference
  • -m MF β€” Extended model selection with FreeRate heterogeneity
  • -m MFP β€” Extended model selection followed by tree inference
  • -m ...+LM β€” Additionally test Lie Markov models
  • -m ...+LMRY β€” Additionally test Lie Markov models with RY symmetry
  • -m ...+LMWS β€” Additionally test Lie Markov models with WS symmetry
  • -m ...+LMMK β€” Additionally test Lie Markov models with MK symmetry
  • -m ...+LMSS β€” Additionally test strand-symmetric models
  • --mset STRING β€” Restrict search to models supported by other programs (raxml, phyml, mrbayes, beast1 or beast2). If mrbayes is selected, will output a MrBayes Block File if Data Type is supported.
  • --mset STR,... β€” Comma-separated model list (e.g. -mset WAG,LG,JTT)
  • --msub STRING β€” Amino-acid model source (nuclear, mitochondrial, chloroplast or viral)
  • --mfreq STR,... β€” List of state frequencies
  • --mrate STR,... β€” List of rate heterogeneity among sites (e.g. -mrate E,I,G,I+G,R is used for -m MF)
  • --cmin NUM β€” Min categories for FreeRate model [+R] (default: 2)
  • --cmax NUM β€” Max categories for FreeRate model [+R] (default: 10)
  • --merit AIC|AICc|BIC β€” Akaike|Bayesian information criterion (default: BIC)
  • --mtree β€” Perform full tree search for every model
  • --madd STR,... β€” List of mixture models to consider
  • --mdef FILE β€” Model definition NEXUS file (see Manual)
  • --modelomatic β€” Find best codon/protein/DNA models (Whelan et al. 2015)

🧡 PARTITION-FINDER 🧡

Merging partitions so the model fit goes up and the chaos goes down 🌈

  • --merge β€” Merge partitions to increase model fit
  • --merge greedy|rcluster|rclusterf β€” Set merging algorithm (default: rclusterf)
  • --merge-model 1|all β€” Use only 1 or all models for merging (default: 1)
  • --merge-model STR,... β€” Comma-separated model list for merging
  • --merge-rate 1|all β€” Use only 1 or all rate heterogeneity (default: 1)
  • --merge-rate STR,... β€” Comma-separated rate list for merging
  • --rcluster NUM β€” Percentage of partition pairs for rcluster algorithm
  • --rclusterf NUM β€” Percentage of partition pairs for rclusterf algorithm
  • --rcluster-max NUM β€” Max number of partition pairs (default: 10*partitions)

🧬 SUBSTITUTION MODEL 🧬

  • -m STRING β€” Model name string (e.g. GTR+F+I+G)

Okay now the big model menu bestie, take a deep breath, she has range πŸ’–

DNA

HKY (default), JC, F81, K2P, K3P, K81uf, TN/TrN, TNef, TIM, TIMef, TVM, TVMef, SYM, GTR, or 6-digit model specification (e.g., 010010 = HKY)

Protein

LG (default), Poisson, cpREV, mtREV, Dayhoff, mtMAM, JTT, WAG, mtART, mtZOA, VT, rtREV, DCMut, PMB, HIVb, HIVw, JTTDCMut, FLU, Blosum62, GTR20, mtMet, mtVer, mtInv, FLAVI,

Q.LG, Q.pfam, Q.pfam_gb, Q.bird, Q.mammal, Q.insect, Q.plant, Q.yeast

Protein mixture

C10,...,C60, EX2, EX3, EHO, UL2, UL3, EX_EHO, LG4M, LG4X

Binary

JC2 (default), GTR2

Empirical codon

KOSI07, SCHN05

Mechanistic codon

GY (default), MG, MGK, GY0K, GY1KTS, GY1KTV, GY2K, MG1KTS, MG1KTV, MG2K

Semi-empirical codon

XX_YY where XX is empirical and YY is mechanistic model

Morphology/SNP

MK (default), ORDERED, GTR

Lie Markov DNA

1.1, 2.2b, 3.3a, 3.3b, 3.3c, 3.4, 4.4a, 4.4b, 4.5a, 4.5b, 5.6a, 5.6b, 5.7a, 5.7b, 5.7c, 5.11a, 5.11b, 5.11c, 5.16, 6.6, 6.7a, 6.7b, 6.8a, 6.8b, 6.17a, 6.17b, 8.8, 8.10a, 8.10b, 8.16, 8.17, 8.18, 9.20a, 9.20b, 10.12, 10.34, 12.12 (optionally prefixed by RY, WS or MK)

Non-reversible

STRSYM (strand symmetric model, equiv. WS6.6), NONREV, UNREST (unrestricted model, equiv. 12.12) NQ.pfam, NQ.bird, NQ.mammal, NQ.insect, NQ.plant, NQ.yeast

Otherwise

Name of file containing user-model parameters


πŸ“ STATE FREQUENCY πŸ“

How often each state shows up β€” the whole personality of your model, honestly πŸŽ€

  • -m ...+F β€” Empirically counted frequencies from alignment
  • -m ...+FO β€” Optimized frequencies by maximum-likelihood
  • -m ...+FQ β€” Equal frequencies
  • -m ...+FRY β€” For DNA, freq(A+G)=1/2=freq(C+T)
  • -m ...+FWS β€” For DNA, freq(A+T)=1/2=freq(C+G)
  • -m ...+FMK β€” For DNA, freq(A+C)=1/2=freq(G+T)
  • -m ...+Fabcd β€” 4-digit constraint on ACGT frequency (e.g. +F1221 means f_A=f_T, f_C=f_G)
  • -m ...+FU β€” Amino-acid frequencies given protein matrix
  • -m ...+F1x4 β€” Equal NT frequencies over three codon positions
  • -m ...+F3x4 β€” Unequal NT frequencies over three codon positions

🌈 RATE HETEROGENEITY AMONG SITES 🌈

Because not every site evolves at the same speed and we respect that πŸ’œ

  • -m ...+I β€” A proportion of invariable sites
  • -m ...+G[n] β€” Discrete Gamma model with n categories (default n=4)
  • -m ...*G[n] β€” Discrete Gamma model with unlinked model parameters
  • -m ...+I+G[n] β€” invariable sites plus the Gamma model, with n categories ✨
  • -m ...+R[n] β€” FreeRate model, n categories (and if you don't say, n=4 πŸ’…)
  • -m ...*R[n] β€” FreeRate model but with unlinked model parameters
  • -m ...+I+R[n] β€” invariable sites plus FreeRate model, n categories
  • -m ...+Hn β€” Heterotachy model with n classes
  • -m ...*Hn β€” Heterotachy model with n classes, parameters unlinked
  • --alpha-min NUM β€” the minimum Gamma shape parameter for site rates (default: 0.02)
  • --gamma-median β€” use the median approximation for +G site rates (default is mean, bestie)
  • --rate β€” write those empirical Bayesian site rates out to a .rate file
  • --mlrate β€” write maximum likelihood site rates to a .mlrate file

🧬 POLYMORPHISM AWARE MODELS (PoMo)

  • -s FILE β€” input counts file (peep the manual for this one)
  • -m ...+P β€” a DNA substitution model (like the ones above) used together with PoMo
  • -m ...+N<POPSIZE> β€” virtual population size (default: 9)
  • -m ...+WB|WH|S] β€” weighted binomial sampling
  • -m ...+WH β€” weighted hypergeometric sampling
  • -m ...+S β€” sampled sampling
  • -m ...+G[n] β€” discrete Gamma rate with n categories (default n=4)

🧩 COMPLEX MODELS

  • -m "MIX{m1,...,mK}" β€” mixture model with K components
  • -m "FMIX{f1,...fK}" β€” frequency mixture model with K components
  • --mix-opt β€” optimize the mixture weights (default: detect)
  • -m ...+ASC β€” ascertainment bias correction
  • --tree-freq FILE β€” input tree used to infer the site frequency model
  • --site-freq FILE β€” input site frequency model file
  • --freq-max β€” posterior maximum instead of the mean approximation

🌳 TREE TOPOLOGY TEST

  • --trees FILE β€” a set of trees whose log-likelihoods you wanna evaluate
  • --test NUM β€” number of replicates for the topology test
  • --test-weight β€” do weighted KH and SH tests
  • --test-au β€” the approximately unbiased (AU) test (Shimodaira 2002) πŸ‘‘
  • --au-epsilon NUM β€” epsilon for the AU test: if |deltaL| < NUM, keep the tree no matter what the p-value says (default: 0.001)
  • --sitelh β€” write site log-likelihoods to a .sitelh file

πŸ‘» ANCESTRAL STATE RECONSTRUCTION

  • --ancestral β€” ancestral state reconstruction via empirical Bayes
  • --asr-min NUM β€” minimum probability of an ancestral state (default: equil freq)

βš–οΈ TEST OF SYMMETRY

  • --symtest β€” run three tests of symmetry
  • --symtest-only β€” do --symtest then exist
  • --symtest-remove-bad β€” do --symtest and remove the bad partitions
  • --symtest-remove-good β€” do --symtest and remove the good partitions
  • --symtest-type MAR|INT β€” use the MARginal (MAR) or INTernal (INT) test when removing partitions
  • --symtest-pval NUMER β€” p-value cutoff (default: 0.05)
  • --symtest-keep-zero β€” keep the NAs in the tests

πŸŽ€ CONCORDANCE FACTOR ANALYSIS

  • -t FILE β€” reference tree, used to assign the concordance factor
  • --gcf FILE β€” set of source trees for the gene concordance factor (gCF)
  • --df-tree β€” write out the discordant trees associated with gDF1
  • --scf NUM β€” number of quartets for the site concordance factor (sCF)
  • --scfl NUM β€” same as --scf but using likelihood (this one's recommended, bestie πŸ’–)
  • -s FILE β€” sequence alignment for --scf
  • -p FILE|DIR β€” partition file or directory for --scf
  • --cf-verbose β€” write CF per tree/locus into cf.stat_tree / cf.stat_loci
  • --cf-quartet β€” write sCF for all the resampled quartets into .cf.quartet

🧚 ALISIM: ALIGNMENT SIMULATOR

Usage:

iqtree --alisim <OUTPUT_PREFIX> [-m MODEL] [-t TREE] ...
  • --alisim OUTPUT_ALIGNMENT β€” activate AliSim and set the output alignment filename
  • -t TREE_FILE β€” set the input tree file name
  • --length LENGTH β€” set the length of the root sequence
  • --num-alignments NUMBER β€” set how many output datasets you want
  • --seqtype STRING β€” BIN, DNA, AA, CODON, MORPH{NUM_STATES} (default: auto-detect). For morphological data, 0<NUM_STATES<=32
  • --m MODEL_STRING β€” specify the evolutionary model. See the Manual for more detail
  • --mdef FILE β€” name of a NEXUS model file that defines new models (see Manual)
  • --fundi TAXA_LIST,RHO β€” specify a list of taxa, and Rho (the Fundi weight) for the FunDi model
  • --indel <INS>,<DEL> β€” set the insertion and deletion rate of the indel model, relative to the substitution rate
  • --indel-size <INS_DIS>,<DEL_DIS> β€” set the insertion and deletion size distributions
  • --sub-level-mixture β€” enable the feature that simulates substitution-level mixture models
  • --no-unaligned β€” disable outputting a file of unaligned sequences when you're using indel models
  • --root-seq FILE,SEQ_NAME β€” specify the root sequence from an alignment
  • -s FILE β€” specify the input sequence alignment
  • --no-copy-gaps β€” disable copying gaps from the input alignment (default: false)
  • --site-freq <OPTION> β€” specify how to mimic the site-frequencies for mixture models from the input alignment: MEAN (default), or SAMPLING, or MODEL (see Manual)
  • --site-rate <OPTION> β€” specify how to mimic the discrete rate heterogeneity from the input alignment: MEAN (default), or SAMPLING, or MODEL (see Manual)
  • -t RANDOM{MODEL,NUM_TAXA} β€” specify the model and the number of taxa used to generate a random tree
  • -rlen MIN MEAN MAX β€” specify three numbers: minimum, mean and maximum branch lengths when generating a random tree
  • -p FILE β€” NEXUS/RAxML partition file; edge-linked proportional partition model
  • -q FILE β€” like -p but edge-linked equal partition model
  • -Q FILE β€” like -p but edge-unlinked partition model
  • --distribution FILE β€” supply a definition file of distributions, which can be used to generate random model parameters
  • --branch-distribution DIS β€” specify a distribution, from which branch lengths of the input trees are randomly generated and overridden
  • --branch-scale SCALE β€” specify a value to scale all branch lengths
  • --single-output β€” output all alignments into one single file
  • --write-all β€” enable outputting internal sequences
  • --seed NUM β€” random seed number (default: CPU clock). Be careful: to make AliSim reproducible, you should specify the seed number
  • -gz β€” enable output compression, but it takes longer to run
  • -af phy|fasta β€” set the output format (default: phylip)

The User Manual is available at http://www.iqtree.org/doc/AliSim


🌈 ANALYSIS WITH GENTRIUS ALGORITHM

  • --gentrius FILE β€” the file must contain either a single species-tree or a set of subtrees
  • -pr_ab_matrix FILE β€” presence-absence matrix of loci coverage
  • -s FILE β€” PHYLIP/FASTA/NEXUS/CLUSTAL/MSF alignment file(s)
  • -p FILE β€” NEXUS/RAxML partition file
  • -g_stop_t NUM β€” stop after NUM species-trees were generated, or use 0 to turn this stopping rule off. Default: 1MLN trees
  • -g_stop_i NUM β€” stop after NUM intermediate trees were visited, or use 0 to turn this stopping rule off. Default: 10MLN trees
  • -g_stop_h NUM β€” stop after NUM hours (CPU time), or use 0 to turn this stopping rule off. Default: 7 days
  • -g_non_stop β€” turn all the stopping rules off
  • -g_query FILE β€” species-trees to test for an identical set of subtrees
  • -g_print β€” write all the generated species-trees. WARNING: there might be millions of trees πŸ’€
  • -g_print_lim NUM β€” limit on the number of species-trees to be written
  • -g_print_induced β€” write induced partition subtrees
  • -g_print_m β€” write the presence-absence matrix
  • -g_rm_leaves NUM β€” invoke reverse analysis for complex datasets

🦠 GENOMIC EPIDEMIOLOGICAL ANALYSIS

  • --pathogen β€” apply the CMAPLE tree search algorithm if sequence divergence is low, otherwise apply the IQ-TREE algorithm
  • --pathogen-force β€” apply the CMAPLE tree search algorithm no matter what the sequence divergence is
  • --alrt <num_rep> β€” specify the number of replicates for computing SH-aLRT
  • --sprta β€” compute SPRTA (DeMaio et al., 2024) branch supports
  • --sprta-zero-branch β€” compute SPRTA supports for zero-length branches
  • --sprta-other-places β€” output alternative SPRs and their SPRTA supports
  • -T <num_thread> β€” specify the number of threads used for computing branch supports (SH-aLRT or SPRTA)

⏳ TIME TREE RECONSTRUCTION

  • --date FILE β€” file containing the dates of tips or ancestral nodes
  • --date TAXNAME β€” extract dates from taxon names after the last '|'
  • --date-tip STRING β€” tip dates as a real number or YYYY-MM-DD
  • --date-root STRING β€” root date as a real number or YYYY-MM-DD
  • --date-ci NUM β€” number of replicates for computing the confidence interval
  • --clock-sd NUM β€” standard deviation for the lognormal relaxed clock (default: 0.2)
  • --date-no-outgroup β€” exclude the outgroup from the time tree
  • --date-outlier NUM β€” Z-score cutoff to remove outlier tips/nodes (e.g. 3)
  • --date-options ".." β€” extra options, passed directly to LSD2
  • --dating STRING β€” dating method: LSD for least square dating (default)

and that's a wrap, bestie 🫢 this page is from iqtree3 version 3.1.1+dfsg, dated July 2026, and it's the IQTREE3(1) manual β€” go forth and phylogenize, you absolute icon πŸ‘‘βœ¨

πŸ“¦ where this page comes from