Galaxy ToolShed
The Galaxy ToolShed hosts thousands of community-contributed tools for the Galaxy platform, spanning genomics, proteomics, transcriptomics, and more. BioLang provides read-only browsing access via 4 built-in functions — search repositories, browse popular tools, list categories, and inspect tool details. No import needed.
Searching Repositories
Use galaxy_search() to find repositories by name or keyword.
Results include the repository name, owner, description, download count,
and ToolShed URL:
# Search for bwa repositories
let results = galaxy_search("bwa")
results |> print()
# => [{ name: "bwa", owner: "devteam", description: "...",
# downloads: 48230, url: "https://toolshed.g2.bx.psu.edu/..." }, ...]
# Search with a result limit
galaxy_search("bwa", 5) |> print()
# Search for variant-related tools
galaxy_search("variant") |> print()
Returns a List of Records: {name, owner, description, downloads, url}.
Default limit is 25.
Popular Tools
Browse the most popular tools in the ToolShed with galaxy_popular():
# Get top 20 most popular tools (default)
let popular = galaxy_popular()
popular |> print()
# Get top 10 and extract name + downloads
galaxy_popular(10)
|> map(|t| { name: t.name, downloads: t.downloads })
|> print()
Returns a List of Records: {name, owner, description, downloads, url}.
Default limit is 20.
Tool Categories
List all available tool categories in the ToolShed with galaxy_categories():
# List all categories
let categories = galaxy_categories()
categories |> print()
# => [{ name: "Assembly", description: "Tools for genome assembly" },
# { name: "Variant Analysis", description: "..." }, ...]
# Count total categories
categories |> len() |> print()
Returns a List of Records: {name, description}.
Repository Details
Get detailed metadata for a specific repository with galaxy_tool(),
specifying the owner and repository name:
# Get full details for devteam's bwa repository
let info = galaxy_tool("devteam", "bwa")
print(info)
# Access specific fields
print("Name:", info.name)
print("Owner:", info.owner)
print("Downloads:", info.downloads)
print("Approved:", info.approved)
print("Last updated:", info.last_updated)
Returns a Record: {name, owner, description, downloads, approved, url, created, last_updated}.
Configuration
The Galaxy ToolShed API URL is configurable via ~/.biolang/apis.yaml
or the BIOLANG_GALAXY_TOOLSHED_URL environment variable.
Builtin Reference
| Function | Args | Returns | Description |
|---|---|---|---|
galaxy_search |
query, limit? | List<Record> | Search repositories by name or keyword (default limit 25) |
galaxy_popular |
limit? | List<Record> | List most popular tools by downloads (default limit 20) |
galaxy_categories |
List<Record> | List all tool categories | |
galaxy_tool |
owner, name | Record | Detailed repository info with metadata |
Practical Examples
Find Alignment Tools
# Search for alignment tools and sort by download count
galaxy_search("alignment", 50)
|> sort(.downloads)
|> reverse()
|> map(|t| { name: t.name, owner: t.owner, downloads: t.downloads })
|> take(10)
|> print()
Explore Categories
# List all categories
let categories = galaxy_categories()
categories |> map(|c| c.name) |> print()
# Pick a category and search within it
galaxy_search("Assembly")
|> map(|t| { name: t.name, owner: t.owner, downloads: t.downloads })
|> sort(.downloads)
|> reverse()
|> print()
Compare Tools Across Registries
# Search for samtools in both Galaxy ToolShed and BioContainers
let galaxy_results = galaxy_search("samtools", 5)
let bc_results = biocontainers_search("samtools", 5)
print("Galaxy ToolShed results:")
galaxy_results
|> map(|t| { name: t.name, owner: t.owner, downloads: t.downloads })
|> print()
print("BioContainers results:")
bc_results
|> map(|t| { name: t.name, versions: t.version_count, image: t.latest_image })
|> print()