Releases: cafferychen777/mLLMCelltype
Release list
mLLMCelltype 2.0.8
Reliability fixes
- Disabled DeepSeek V4 thinking mode for cell-type annotation requests in both
the R and Python packages. This prevents the response budget from being
exhausted before final cell-type labels are returned. - Increased API response timeouts for slower non-streaming DeepSeek requests:
the R default is now 120 seconds and the Python DeepSeek timeout is 120
seconds. - Unified R prompt preparation across plain and structured reasoning modes.
The DeepSeek fixes were validated against the current API behavior and by a
real mLLMCelltype user who confirmed that annotation now completes normally.
Validation
- R: 690 tests passed; 4 integration tests skipped by default.
- Python: 569 tests passed; 1 integration test skipped by default.
- R and Python source distributions built successfully.
- Python wheel and source distribution passed
twine check.
Installation
install.packages("mLLMCelltype")Until CRAN publishes 2.0.8, install the R package directly from GitHub:
remotes::install_github("cafferychen777/mLLMCelltype", subdir = "R", force = TRUE)pip install --upgrade mllmcelltypeFull changelog: v2.0.7...v2.0.8
mLLMCelltype 2.0.7
mLLMCelltype 2.0.7
New Features
- Kimi (Moonshot AI) provider with dual-protocol support. Models prefixed with
kimi-/moonshot-(defaultkimi-k2.6) resolve automatically and authenticate viaMOONSHOT_API_KEY(orKIMI_API_KEY); the Moonshot Open Platform uses OpenAI-compatible Chat Completions, and Kimi Code/messagesendpoints auto-select the Anthropic Messages protocol. return_reasoningoption forannotate_cell_types()(R) /annotate_clusters()(Python), returning a structured per-clustercell_type/marker_genes/gene_expressionrecord instead of a plain label.
Bug Fixes
- Annotation parsing corrected so common LLM output shapes no longer produce wrong or shifted annotations on 0-based (Seurat/Scanpy) clusters: numbered lists (
1.,2., …), preamble/header lines, annotation-internal colons, a mid-listUnknown, a straySummary:-style line, and out-of-order explicit labels. - MiniMax transient in-body errors (rate limits / timeouts reported as HTTP 200 + non-zero
base_resp.status_code) are now retried instead of silently dropping the model from the consensus panel. - Anthropic responses that lead with a non-text (thinking) block no longer discard the answer — every text block is concatenated and non-text blocks skipped.
is_error_responseno longer discards a valid multi-cluster response over a singleError:line.- A warning is emitted when a provider response is truncated at
max_tokens.
This release also ships the previously-unreleased 2.0.6 reliability work (unified validation, centralized retries, deterministic parsing/caching, normalized usage telemetry).
The Kimi provider is verified against the Moonshot/Kimi API documentation and covered by mocked tests; a live smoke test against the real API is recommended for Kimi-specific usage.
mLLMCelltype 2.0.5
Summary
- Release R and Python package metadata for version 2.0.5.
- Include discussion parsing, Qwen endpoint cache scoping, and custom provider configuration fixes from the latest main branch.
- Publish Python 2.0.5 artifacts and attach the R source package prepared for CRAN submission.
Verification
- Python:
python -m ruff check . - Python:
python -m pytest— 318 passed, 1 skipped - R:
devtools::test()— 207 passed, 4 skipped - R:
R CMD check --as-cran mLLMCelltype_2.0.5.tar.gz— completed with 2 NOTEs
mLLMCelltype v2.0.4
mLLMCelltype v2.0.4
Release archived on Zenodo for citation in:
Yang, C., Zhang, X. & Chen, J. Large Language Model Consensus Substantially Improves the Cell Type Annotation Accuracy for scRNA-seq Data. Communications Biology (2026).
Changes since v2.0.0
- Hardened consensus and report paths
- Fixed report metadata model normalization
- Aligned direct discussion flow with consensus-model key autoload
- Improved missing-value handling and discussion seed sanitization
mLLMCelltype v2.0.0
mLLMCelltype v2.0.0
Breaking Changes
- Logger defaults changed:
UnifiedLoggerconsole output is now disabled by default. Useconfigure_logger(console_output = TRUE)to enable.
New Model Support
- OpenAI: GPT-5.2, GPT-5.1, GPT-5, o3-pro, o4-mini
- Anthropic: Claude Opus 4.6, Claude Opus 4.5, Claude Sonnet 4.5
- Google: Gemini 3 Pro, Gemini 3 Flash, Gemini 2.5 Pro/Flash
- X.AI: Grok 4, Grok 4.1, Grok 4 Heavy
- DeepSeek: DeepSeek R1
- Alibaba: Qwen 3 Max
- Zhipu: GLM-4.7
- MiniMax: MiniMax M2.1
Architecture Improvements
- Unified logging: consolidated dual debug mechanisms into single
log_debug()approach - Complete audit trail: all
warning()calls paired withlog_warn(); LLM consensus decisions logged - NAMESPACE fix:
QwenProcessorcorrectly exported;.qwen_endpoint_cacheremoved from public API - Cluster ID preservation throughout annotation pipeline
Bug Fixes
- Fixed
@exportmisplacement exporting internal state instead ofQwenProcessorclass - Fixed missing
tissue_nameparameter in API integration tests - Fixed
print()bypassing logging system in model comparison - Fixed trailing newlines causing double-spaced console output
- Improved NA handling in API key validation
Package Info
- R Package: mLLMCelltype_2.0.0.tar.gz
- Tests: 174 PASS, 0 FAIL, 0 WARN
mLLMCelltype v1.2.9: Cache System Fix and Improvements
mLLMCelltype v1.2.9 Release Notes
🎉 Major Updates
Cache System Fix (#65)
- Fixed critical cache isolation issue: OpenRouter models were incorrectly reusing cache from regular models
- Solution: Modified
create_cache_key()function to properly normalize provider for OpenRouter models (models containing '/') - Impact: Prevents cache pollution and ensures accurate cell type annotations when switching between providers
New Features
- Cache Management Module: Added
cache_manager.pywith utilities for cache inspection and managementget_cache_info(): Get information about current cache stateclear_mllmcelltype_cache(): Interactive cache clearing- CLI interface:
python -m mllmcelltype.cache_manager
- Comprehensive Documentation: Added detailed cache system documentation in
docs/CACHE_SYSTEM.md - Example Scripts: Added cache management examples in
examples/cache_management_example.py
Code Quality Improvements
- Fixed all ruff linting errors across the Python package
- Added
.gitignoreto exclude temporary test files - Updated import ordering and removed unused imports
- Added comprehensive test suite for cache system validation
📦 Package Information
Python Package
- Version: 1.2.9
- Files:
mllmcelltype-1.2.9.tar.gz- Source distributionmllmcelltype-1.2.9-py3-none-any.whl- Wheel distribution
R Package
- Version: 1.2.9
- File:
mLLMCelltype_1.2.9.tar.gz
🐛 Bug Fixes
- Cache isolation between regular and OpenRouter models
- Import order issues in examples
- Unused variable warnings
- F-string formatting issues
📚 Documentation Updates
- Added comprehensive cache system documentation
- Updated examples to demonstrate proper model usage
- Added API key configuration example (
.env.example)
🧪 Testing
- Added extensive test suite for cache system
- Verified cache isolation with real API calls
- Tested edge cases including tissue context variations
Installation
Python
pip install mllmcelltype==1.2.9R
install.packages("mLLMCelltype_1.2.9.tar.gz", repos = NULL, type = "source")Acknowledgments
Thanks to @eason-analytics for reporting the cache issue (#65) and providing detailed reproduction steps!
mLLMCelltype v1.2.8
Release of mLLMCelltype v1.2.8 (R package) and v1.2.3 (Python package)
v1.2.4 - Critical Bug Fix Release
Critical Bug Fixes
Fixed Major as.logical(from) Error
- Resolved critical error that occurred when processing large numbers of clusters (60+ clusters)
- This error was caused by non-character data being passed to
strsplit()functions - Users can now successfully process datasets with many clusters without encountering type coercion errors
Enhanced API Response Handling
- Added comprehensive
tryCatch()blocks around allstrsplit()operations in API processing functions - Improved response validation to prevent function/closure types from being processed as character strings
- Enhanced error handling for all API processing functions:
process_openrouter.Rprocess_anthropic.Rprocess_openai.Rprocess_deepseek.Rprocess_qwen.Rprocess_stepfun.Rprocess_minimax.Rprocess_zhipu.Rprocess_gemini.Rprocess_grok.R
Improvements
- Better NULL value handling: Improved
unlist()operations to filter out NULL values and handle errors gracefully - Enhanced logging: Added more detailed error logging for debugging API response issues
- Improved consensus checking: Enhanced
check_consensus.Rto handle edge cases with malformed responses
Technical Details
- Fixed issue where large cluster datasets could cause type coercion errors in response parsing
- Added validation for function/closure types in API responses to prevent downstream errors
- Improved error messages to provide better diagnostics for API response issues
Installation
# Install from GitHub
devtools::install_github("cafferychen777/mLLMCelltype", subdir = "R")What's Changed
- Enhanced robustness when processing large datasets
- Improved error handling across all API integrations
- Better debugging capabilities with enhanced logging
Full Changelog: v1.2.3...v1.2.4
mLLMCelltype 1.2.0
1.2.0 (2025-04-28)
Improvements
- First CRAN release
- Updated documentation and vignettes
- Improved package structure for CRAN compliance
- Fixed CITATION file format
- Updated URL to https://cafferyang.com/mLLMCelltype/
v1.1.4 Release
mLLMCelltype v1.1.4 (2025-04-24)
New Features & Improvements
- Expanded OpenRouter models list to support free models
- Resolved inconsistency issues between international and mainland China versions of Qwen models
Bug Fixes
- Fixed OpenRouter model handling in the consensus check process
- Fixed undefined current_clusters variable in README files by adding explicit variable definition and comments
Other Updates
- Updated DESCRIPTION file
This version improves model compatibility and fixes several key issues. We recommend all users to update to this version.