Skip to content

Repository files navigation

Omicslog

Importing packages

fromomicslogimportlog_startimportnumpyasnpimportpandasaspdimportanndataasadfromscipy.sparseimportcsr_matrix
📝 Note
The AnnData object were generated using code from the original AnnData documentation.
counts=csr_matrix(np.random.poisson(1, size=(100, 2000)), dtype=np.float32)
adata=ad.AnnData(counts)
adata.obs_names= [f"Cell_{i:d}"foriinrange(adata.n_obs)]
adata.var_names= [f"Gene_{i:d}"foriinrange(adata.n_vars)]
logdata=log_start(adata)
print(logdata)
ct=np.random.choice(["B", "T", "Monocyte"], size=(logdata.n_obs,))
logdata.obs["cell_type"] =pd.Categorical(ct) # Categoricals are preferred for efficiencyprint(logdata)
logdata.uns["_omicslog"]
AnnData object with n_obs × n_vars = 100 × 2000
uns: '_omicslog'
AnnData object with n_obs × n_vars = 100 × 2000
obs: 'cell_type'
uns: '_omicslog'
Operation log:
[2026-05-20 13:49:41] obs: 'cell_type' added
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
TimeOperationMessage
02026-05-20 13:49:41obs'cell_type' added

Fltrating by Cells (.obs)

logdata=logdata[logdata.obs.cell_type=="B"]
print(logdata)
logdata.uns["_omicslog"]
AnnData object with n_obs × n_vars = 27 × 2000
obs: 'cell_type'
uns: '_omicslog'
Operation log:
[2026-05-20 13:49:41] obs: 'cell_type' added
[2026-05-20 13:49:43] subset: removed 73 samples (73%), 27 samples remaining
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
TimeOperationMessage
02026-05-20 13:49:41obs'cell_type' added
12026-05-20 13:49:43subsetremoved 73 samples (73%), 27 samples remaining

Filtering by Genes (.var)

logdata=logdata[:,logdata.var_names.str.endswith("1")]
print(logdata)
logdata.uns["_omicslog"]
AnnData object with n_obs × n_vars = 27 × 200
obs: 'cell_type'
uns: '_omicslog'
Operation log:
[2026-05-20 13:49:41] obs: 'cell_type' added
[2026-05-20 13:49:43] subset: removed 73 samples (73%), 27 samples remaining
[2026-05-20 13:49:46] subset: removed 1800 genes (90%), 200 genes remaining
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
TimeOperationMessage
02026-05-20 13:49:41obs'cell_type' added
12026-05-20 13:49:43subsetremoved 73 samples (73%), 27 samples remaining
22026-05-20 13:49:46subsetremoved 1800 genes (90%), 200 genes remaining

Adding observatons and variables

logdata.obsm["X_umap"] =np.random.normal(0, 1, size=(logdata.n_obs, 2))
logdata.varm["gene_stuff"] =np.random.normal(0, 1, size=(logdata.n_vars, 5))
print(logdata)
logdata.uns["_omicslog"]
AnnData object with n_obs × n_vars = 27 × 200
obs: 'cell_type'
uns: '_omicslog'
obsm: 'X_umap'
varm: 'gene_stuff'
Operation log:
[2026-05-20 13:49:41] obs: 'cell_type' added
[2026-05-20 13:49:43] subset: removed 73 samples (73%), 27 samples remaining
[2026-05-20 13:49:46] subset: removed 1800 genes (90%), 200 genes remaining
[2026-05-20 13:49:48] obsm: 'X_umap' added
[2026-05-20 13:49:48] varm: 'gene_stuff' added
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
TimeOperationMessage
02026-05-20 13:49:41obs'cell_type' added
12026-05-20 13:49:43subsetremoved 73 samples (73%), 27 samples remaining
22026-05-20 13:49:46subsetremoved 1800 genes (90%), 200 genes remaining
32026-05-20 13:49:48obsm'X_umap' added
42026-05-20 13:49:48varm'gene_stuff' added

Adding layers

logdata.layers["log_transformed"] =np.log1p(logdata.X)
print(logdata)
logdata.uns["_omicslog"]
AnnData object with n_obs × n_vars = 27 × 200
obs: 'cell_type'
uns: '_omicslog'
obsm: 'X_umap'
varm: 'gene_stuff'
layers: 'log_transformed'
Operation log:
[2026-05-20 13:49:41] obs: 'cell_type' added
[2026-05-20 13:49:43] subset: removed 73 samples (73%), 27 samples remaining
[2026-05-20 13:49:46] subset: removed 1800 genes (90%), 200 genes remaining
[2026-05-20 13:49:48] obsm: 'X_umap' added
[2026-05-20 13:49:48] varm: 'gene_stuff' added
[2026-05-20 13:49:50] layers: 'log_transformed' added
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
TimeOperationMessage
02026-05-20 13:49:41obs'cell_type' added
12026-05-20 13:49:43subsetremoved 73 samples (73%), 27 samples remaining
22026-05-20 13:49:46subsetremoved 1800 genes (90%), 200 genes remaining
32026-05-20 13:49:48obsm'X_umap' added
42026-05-20 13:49:48varm'gene_stuff' added
52026-05-20 13:49:50layers'log_transformed' added

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages