Guides
Lobster AI 1.2.1
What changed in Lobster AI 1.2.1, and its known limitations.
This page lists the changes in Lobster AI 1.2.1 and its known limitations.
Installation
uv pip install "lobster-ai[full]==1.2.1"Single-cell QC and filtering
- QC tools report the computed pre-filter medians, 95th percentiles (linear interpolation), the number of cells above each threshold, and the parameters that were actually applied.
- The
filter_and_normalizetool no longer applies a ribosomal filter by default. Setmax_ribo_percentto request one. The service/SDK default (50%) is unchanged. - Normalization requests that Lobster does not support are refused before the data is changed or stored.
Clustering
cluster_cellsuses then_neighborsandn_pcsyou request. When they are not set, the defaults stay 15 and 30, and any automatic adjustment is reported.- Without
use_rep,cluster_cellsruns the standard pipeline as before. Withuse_rep, it reuses a representation that is already in the dataset, for exampleX_pcaorX_scvi, instead of rerunning the upstream steps. - If you name a representation that is not in the dataset, or one that does not hold one row of finite numbers per cell, clustering stops with a message that says so. Previously it silently ran the full pipeline instead. Explicit values that cannot be honored are refused in the same way.
- Notebook replay follows the clustering branch that actually ran.
Marker genes
- Marker reports keep the original ranking and the specificity-filtered list separate, and label ranked, filtered and FDR-significant genes distinctly.
- Genes with |log2FC| ≥ 10 or a non-finite statistic are flagged in the report, not removed. The statistics themselves are unchanged.
- A dataset can be saved after marker ranking, including after later annotation. Previously, empty gene-name slots in the ranking could stop the save.
Saves
- Save failures that were previously reported as saved now report
Not saved:. - A MuData save of a backed modality now checks its backup location before loading any data.
Reading files
- Compressed CSV, TSV and TXT matrices loaded in single-cell mode are checked across the complete matrix to orient cells as observations and genes as variables. This applies to direct file loading, not to GEO candidate selection. Some GEO text matrices are still refused; see Known limitations.
- Integral matrices within 2^24 are stored exactly as float32; larger integral values are refused. Fractional matrices use float32 precision, which can differ from the source. The loader does not establish raw-count provenance.
- This compressed single-cell route reports fixed refusals when content, completeness or orientation cannot be established, or when its storage limits are exceeded.
Notebook export
- Exports show the client session ID, or
nullwhen it is unknown or ambiguous, instead of the provenance namespace. The namespace is recorded under its own key,provenance_namespace, in the export record and the notebook metadata. - Export hashes change. The input of
provenance.sha256now includes the session ID and the provenance namespace, so a notebook exported with 1.2.1 has a different hash from the same session exported with 1.2.0. The hash still covers only the session ID, the namespace and the activity and entity counts, not the content of the provenance record. - The export summary no longer describes the provenance JSON as an audit trail for regulatory compliance.
Exports outside the workspace
- Lobster's export tools (DE tables, annotation mappings, ML exports, scVI model files, pathway CSVs) refuse a target outside the session workspace, unless you listed the folder in
LOBSTER_EXPORT_ROOTS. You set it yourself in the environment. List existing absolute folders, separated by:(;on Windows); relative, missing or non-folder entries are ignored. Lobster reads the setting when it loads its export policy, so restart Lobster after changing it. The refusal names the setting, not the path. - This applies to the export tools. Save paths that you give as absolute paths are unchanged, and custom code is not limited by this setting.
- Auto-save skips a dataset whose target is outside the workspace and reports it as
Not saved:. The other datasets are still saved. - Dataset names must be one plain name: no
/,\, control characters,.or.., and at most 200 characters. - DE result names encode
%,/,\and control characters in group labels (percent-encoding), so different labels give different names.
Installation and dependencies
lobster-ai[full]now includeslobster-metadata, so the metadata assistant is available after a[full]install.- The HDF refusal test no longer requires PyTables. The HDF read policy is unchanged.
Known limitations
Omics-OS Cloud sign-in
lobster cloud loginin the Python package does not work with the current Omics-OS Cloud sign-in. Use the npm CLI@omicsos/lobsterto sign in; the Python package then uses that saved sign-in. This is planned for a later release.
Data import
- The GEO download does not yet pick the expression matrix of series that ship only a gene-by-cell text file, for example GSE109564. This is planned for a later release. Workaround: read the downloaded file yourself with pandas (
pd.read_csv(path, sep="\t", index_col=0), which gives genes × cells), build an AnnData with cells as observations (anndata.AnnData(X=scipy.sparse.csr_matrix(df.T.values.astype("float32")), obs=pd.DataFrame(index=df.columns), var=pd.DataFrame(index=df.index))), write it withwrite_h5ad, and load the.h5adfile in Lobster. We checked this for GSE109564 with Lobster's file-loading service (4,487 cells × 20,477 genes). - Some compressed GEO text matrices, for example the GSE109564 matrix, are refused when a few row labels are not recognized as gene names (such as
HGNC:12345,Y_RNAorMetazoa_SRP), even if the other labels are. Settingtransposeexplicitly does not change this. Loading these files is planned for a later release. - If saving a required GEO import fails (for example, disk full), that queue entry cannot be retried in the same session, and a partial file may remain in the workspace. Remove the partial file from the workspace and start a new session.
Metadata validation
- After metadata has been fetched and cached,
validate_dataset_metadatacan return "Already Validated" without running the metadata validation service. This cached-status reply does not confirm that the requested validation checks ran. This is planned for a later release.
Differential expression results
- DE results with "/" in a comparison group label can become unavailable through their saved result pointer after an H5AD save and reload. If two result keys differ only by "/" versus "__" (for example
de_results_A/B_vs_Candde_results_A__B_vs_C), saving collapses them to one key and only one result is kept. Use group labels without "/" before running DE; renaming a dataset or export file afterwards does not repair results that already exist, so rerun them from the original input with "/"-free labels. This is planned for a later release. - In cluster-versus-rest marker summaries, a "Top 10 Downregulated" heading can appear above genes with a positive fold change. The reported statistics are not affected. This is planned for a later release.
Notebook export
- After you resume a saved session, a pipeline exported with
/pipeline exportcan contain some steps twice, so the exported notebook may repeat filtering or normalization. Check the notebook before you run it again. This is planned for a later release.
Bulk differential expression
- The direct bulk DE tool (
run_bulk_de_direct) applies an out-group expression filter by default, which is designed for marker genes. On typical bulk data it can remove most genes; if it removes all of them, the tool refuses and says so. For bulk designs, userun_de_with_formula. The default will be revised in a later release.
Custom code
- Custom code (
execute_custom_code) runs locally with your own user permissions. Enable it only for agents you trust with your workspace. - The value your code returns as its result may be at most 16 MiB. If it is larger, Lobster reports that the result could not be read and saves no figure from that run. For large outputs, write them to a file in your workspace or store them as a dataset, and return a short summary instead.
Figures
- Creating the same HTML view twice at the same moment can leave a duplicate view.
- If Lobster cannot remove an old figure revision's file from disk, the file stays in place and keeps using disk space.
- Local figure deletion is not yet available as a CLI command or agent tool.
- The classic terminal plot dashboard does not list figures saved by custom code; the native figure listing does.