Revision history for Bioinf-Basic

0.01 2026-09-30 CDT

 [First release]

 - fasta2hash, hash2fasta_file, get_best_alignment_hit, msa_quality_table
   and clustal_view_residues, taken from the maintainer's bioinf.pm.
   fasta2hash and hash2fasta_file are now XS: on a 928 MB FASTA, reading
   went from 3.83 s to 0.80 s and writing from 44.44 s to 0.97 s.

 - bioinf.pm's msa_phylo_plot is split in two. plot_msa aligns sequences
   with Clustal Omega and draws the alignment; plot_phylo draws the guide
   tree, either aligning the sequences itself or drawing a tree file that
   plot_msa kept, so the two images need only one alignment.

 - clustalo, BLAST+ and the plotting Python come from Alien::Bioinf, never
   from PATH. Alien::Bioinf is recommended rather than required, since it
   installs only where NCBI builds BLAST+; the functions that need it say so
   when it is missing, and t/msa.t is skipped without it.

 - Fixed before release: a truncated .gz now dies rather than being read
   in part; residue numbers below 1 in active.site.aa and color.residues die
   rather than counting from the last residue; row.width or split of 0 dies
   rather than looping forever; msa_quality_table's normalize no longer
   divides by 0 when every e-value is 0, and divides by the largest value
   plus logscale.add; get_best_alignment_hit dies on two queries of one
   title rather than dropping one; plot_msa dies on two sequences given one
   label; and clustal_view_residues escapes every LaTeX special character in
   a protein name.

 - fasta2hash with a key no longer keeps every other defline it passes, to
   warn about their repeats: finding the last of 400,000 records went from
   87 MB and 0.25 s to 8 MB and 0.06 s.
