ルート化されていないツリーを構築し、 outgroup を明示的に指定することでルート化できるようにする他のパッケージ、特にape for R があります。
対照的に、BioPython ではルートを指定せずにルート付きツリーを直接作成できるため、たとえば次のコードからルートがどのように決定されているのか気になります。
from Bio import AlignIO
alignment = AlignIO.read('mulscle-msa-aligned-105628a58654.fasta', 'fasta')
from Bio.Phylo.TreeConstruction import DistanceCalculator
calculator = DistanceCalculator('ident')
dm = calculator.get_distance(alignment)
from Bio.Phylo.TreeConstruction import DistanceTreeConstructor
constructor = DistanceTreeConstructor()
tree = constructor.upgma(dm)
from Bio import Phylo
Phylo.write(tree, 'phyloxml-7016bed7d42.xml', 'phyloxml')
ツリーが構築された後にここでシーケンスを作成しましたが、それでもこれはそのプロセスから構築された根付きツリーです。