Skip to content

📦 Request to Update Formula: kallisto (--pseudobam support) #313

Description

@BenjaminDEMAILLE

Hi Homebrew Science team,

I’d like to request updating the kallisto formula to build from the bam branch of the PachterLab/kallisto repository.

This branch adds the powerful --pseudobam feature, enabling pseudoalignment output in BAM format — highly useful for downstream compatibility with genome browsers and alignment-based tools.

🔍 Summary
Tool: kallisto
Repository: https://github.com/pachterlab/kallisto
Target branch: bam
License: BSD 2-Clause
Key addition: --pseudobam (outputs pseudoalignments in BAM format)
Change requested: compile with -DUSE_BAM=ON

🚀 Why this matters
The --pseudobam mode enables:

Direct visualization of pseudoalignments in genome browsers like IGV
Generation of BAM-formatted pseudoalignments for quality control
Use of kallisto in pipelines that expect BAM input/output stages
The branch is actively used and has no breaking changes; it retains all previous kallisto functionality.

⚙️ Build Instructions
The following CMake flag is required:

cmake .. -DUSE_BAM=ON

This enables linking to HTSlib and builds BAM output support.

🧱 Dependencies
cmake
zlib
htslib (now required)
libomp (optional, multithreading)

✅ Suggested Formula Changes

class Kallisto < Formula
  desc "Quantification of transcript expression from RNA-Seq data (with --pseudobam support)"
  homepage "https://pachterlab.github.io/kallisto/"
  url "https://github.com/pachterlab/kallisto/archive/refs/heads/bam.tar.gz"
  sha256 "<INSERT_SHA256_HERE>"
  license "BSD-2-Clause"

  depends_on "cmake" => :build
  depends_on "htslib"
  depends_on "zlib"

  def install
    mkdir "build" do
      system "cmake", "..", "-DUSE_BAM=ON", *std_cmake_args
      system "make"
      bin.install "kallisto"
    end
  end

  test do
    assert_match "kallisto", shell_output("#{bin}/kallisto --version")
    system "#{bin}/kallisto", "quant", "--help"
  end
end

💬 Additional Notes
This update is backward-compatible with existing kallisto usage.
--pseudobam is only enabled with -DUSE_BAM=ON, hence critical to include in the formula.
No renaming of the binary — fully drop-in replacement.
Let me know if you'd prefer a side-by-side formula like kallisto-pseudobam, but from a maintenance and user perspective, this improved version makes sense as the default.

Thanks a lot for maintaining such a crucial collection for the bioinformatics community!

Best regards,

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions