biopipen 0.27.7__py3-none-any.whl → 0.27.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of biopipen might be problematic. Click here for more details.

biopipen/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.27.7"
1
+ __version__ = "0.27.9"
biopipen/ns/scrna.py CHANGED
@@ -1769,13 +1769,18 @@ class SeuratMap2Ref(Proc):
1769
1769
  sobjfile: The seurat object
1770
1770
 
1771
1771
  Output:
1772
- outfile: The rds file of seurat object with cell type annotated
1772
+ outfile: The rds file of seurat object with cell type annotated.
1773
+ Note that the reduction name will be `ref.umap` for the mapping.
1774
+ To visualize the mapping, you should use `ref.umap` as the reduction name.
1773
1775
 
1774
1776
  Envs:
1775
1777
  ncores (type=int;order=-100): Number of cores to use.
1776
- Used in `future::plan(strategy = "multicore", workers = <ncores>)`
1778
+ When `split_by` is used, this will be the number of cores for each object to map to the reference.
1779
+ When `split_by` is not used, this is used in `future::plan(strategy = "multicore", workers = <ncores>)`
1777
1780
  to parallelize some Seurat procedures.
1778
- See also: <https://satijalab.org/seurat/articles/future_vignette.html>
1781
+ See also: <https://satijalab.org/seurat/archive/v3.0/future_vignette.html>
1782
+ mutaters (type=json): The mutaters to mutate the metadata.
1783
+ This is helpful when we want to create new columns for `split_by`.
1779
1784
  use: A column name of metadata from the reference
1780
1785
  (e.g. `celltype.l1`, `celltype.l2`) to transfer to the query as the
1781
1786
  cell types (ident) for downstream analysis. This field is required.
@@ -1787,16 +1792,29 @@ class SeuratMap2Ref(Proc):
1787
1792
  `Seurat::LoadH5Seurat()`.
1788
1793
  The file type is determined by the extension. `.rds` or `.RDS` for
1789
1794
  RDS file, `.h5seurat` or `.h5` for h5seurat file.
1795
+ refnorm (choice): Normalization method the reference used. The same method will be used for the query.
1796
+ - NormalizeData: Using [`NormalizeData`](https://satijalab.org/seurat/reference/normalizedata).
1797
+ - SCTransform: Using [`SCTransform`](https://satijalab.org/seurat/reference/sctransform).
1798
+ - auto: Automatically detect the normalization method.
1799
+ If the default assay of reference is `SCT`, then `SCTransform` will be used.
1800
+ split_by: The column name in metadata to split the query into multiple objects.
1801
+ This helps when the original query is too large to process.
1790
1802
  SCTransform (ns): Arguments for [`SCTransform()`](https://satijalab.org/seurat/reference/sctransform)
1791
1803
  - do-correct-umi (flag): Place corrected UMI matrix in assay counts layer?
1792
1804
  - do-scale (flag): Whether to scale residuals to have unit variance?
1793
1805
  - do-center (flag): Whether to center residuals to have mean zero?
1794
1806
  - <more>: See <https://satijalab.org/seurat/reference/sctransform>.
1795
1807
  Note that the hyphen (`-`) will be transformed into `.` for the keys.
1808
+ NormalizeData (ns): Arguments for [`NormalizeData()`](https://satijalab.org/seurat/reference/normalizedata)
1809
+ - normalization-method: Normalization method.
1810
+ - <more>: See <https://satijalab.org/seurat/reference/normalizedata>.
1811
+ Note that the hyphen (`-`) will be transformed into `.` for the keys.
1796
1812
  FindTransferAnchors (ns): Arguments for [`FindTransferAnchors()`](https://satijalab.org/seurat/reference/findtransferanchors)
1797
1813
  - normalization-method (choice): Name of normalization method used.
1798
1814
  - LogNormalize: Log-normalize the data matrix
1799
1815
  - SCT: Scale data using the SCTransform method
1816
+ - auto: Automatically detect the normalization method.
1817
+ See `envs.refnorm`.
1800
1818
  - reference-reduction: Name of dimensional reduction to use from the reference if running the pcaproject workflow.
1801
1819
  Optionally enables reuse of precomputed reference dimensional reduction.
1802
1820
  - <more>: See <https://satijalab.org/seurat/reference/findtransferanchors>.
@@ -1822,14 +1840,19 @@ class SeuratMap2Ref(Proc):
1822
1840
  "ncores": config.misc.ncores,
1823
1841
  "use": None,
1824
1842
  "ident": "seurat_clusters",
1843
+ "mutaters": {},
1825
1844
  "ref": None,
1845
+ "refnorm": "auto",
1846
+ "split_by": None,
1826
1847
  "SCTransform": {
1827
1848
  "do-correct-umi": False,
1828
1849
  "do-scale": False,
1829
1850
  "do-center": True,
1830
1851
  },
1852
+ "NormalizeData": {
1853
+ "normalization-method": "LogNormalize",
1854
+ },
1831
1855
  "FindTransferAnchors": {
1832
- "normalization-method": "SCT",
1833
1856
  "reference-reduction": "spca",
1834
1857
  },
1835
1858
  "MapQuery": {
biopipen/ns/tcr.py CHANGED
@@ -1310,6 +1310,10 @@ class TCRClusterStats(Proc):
1310
1310
  numbers on the heatmap.
1311
1311
  - heatmap_meta (list): The columns of metadata to show on the
1312
1312
  heatmap.
1313
+ - cluster_rows (flag): Whether to cluster the rows on the heatmap.
1314
+ - sample_order: The order of the samples on the heatmap.
1315
+ Either a string separated by `,` or a list of sample names.
1316
+ This only works for columns if `cluster_rows` is `True`.
1313
1317
  - grouping: The groups to investigate the shared clusters.
1314
1318
  If specified, venn diagrams will be drawn instead of heatmaps.
1315
1319
  In such case, `numbers_on_heatmap` and `heatmap_meta` will be
@@ -1373,6 +1377,9 @@ class TCRClusterStats(Proc):
1373
1377
  "shared_clusters": {
1374
1378
  "numbers_on_heatmap": True,
1375
1379
  "heatmap_meta": [],
1380
+ "cluster_rows": True,
1381
+ "sample_order": None,
1382
+ "cluster_rows": True,
1376
1383
  "grouping": None,
1377
1384
  "devpars": {"width": 1000, "height": 1000, "res": 100},
1378
1385
  "cases": {},
@@ -38,7 +38,7 @@ do_one_stats = function(name) {
38
38
  df_cells = df_cells %>% filter(!!rlang::parse_expr(case$subset))
39
39
  }
40
40
 
41
- select_cols = c(case$ident, case$group.by, case$split.by)
41
+ select_cols = unique(c(case$ident, case$group.by, case$split.by))
42
42
  if (!is.null(case$split.by)) {
43
43
  plot_df = do_call(rbind, lapply(group_split(
44
44
  df_cells %>% select(all_of(select_cols)),
@@ -1,5 +1,6 @@
1
1
  source("{{biopipen_dir}}/utils/misc.R")
2
2
 
3
+ library(parallel)
3
4
  library(Seurat)
4
5
  library(SeuratDisk)
5
6
  library(rlang)
@@ -12,8 +13,12 @@ outfile = {{out.outfile | r}}
12
13
  use = {{envs.use | r}}
13
14
  ident = {{envs.ident | r}}
14
15
  ref = {{envs.ref | r}}
16
+ refnorm = {{envs.refnorm | r}}
15
17
  ncores = {{envs.ncores | r}}
18
+ split_by = {{envs.split_by | r}}
19
+ mutaters = {{envs.mutaters | r}}
16
20
  sctransform_args = {{envs.SCTransform | r: todot="-"}}
21
+ normalizedata_args = {{envs.NormalizeData | r: todot="-"}}
17
22
  findtransferanchors_args = {{envs.FindTransferAnchors | r: todot="-"}}
18
23
  mappingscore_args = {{envs.MappingScore | r: todot="-"}}
19
24
  mapquery_args = {{envs.MapQuery | r: todot="-"}}
@@ -34,8 +39,10 @@ if (is.null(mapquery_args$refdata) || length(mapquery_args$refdata) == 0) {
34
39
  mapquery_args$refdata[[use]] = use
35
40
 
36
41
  outdir = dirname(outfile)
37
- options(future.globals.maxSize = 80000 * 1024^2)
38
- plan(strategy = "multicore", workers = ncores)
42
+ if (is.null(split_by)) {
43
+ options(future.globals.maxSize = 80000 * 1024^2)
44
+ future::plan(strategy = "multicore", workers = ncores)
45
+ }
39
46
 
40
47
  .expand_dims = function(args, name = "dims") {
41
48
  # Expand dims from 30 to 1:30
@@ -56,52 +63,191 @@ if (endsWith(ref, ".rds") || endsWith(ref, ".RDS")) {
56
63
  reference = LoadH5Seurat(ref)
57
64
  }
58
65
 
66
+ if (refnorm == "auto" && DefaultAssay(reference) == "SCT") {
67
+ refnorm = "SCTransform"
68
+ }
69
+ log_info(" Normalization method used: {refnorm}")
70
+ if (refnorm == "SCTransform") {
71
+ findtransferanchors_args$normalization.method = "SCT"
72
+ } else if (refnorm == "NormalizeData") {
73
+ findtransferanchors_args$normalization.method = "LogNormalize"
74
+ } else {
75
+ stop("Unknown normalization method: {refnorm}")
76
+ }
77
+
59
78
  # Load Seurat object
60
79
  log_info("- Loading Seurat object")
61
80
  sobj = readRDS(sobjfile)
62
81
 
82
+ if (!is.null(mutaters) && length(mutaters) > 0) {
83
+ log_info("- Applying mutaters")
84
+ sobj@meta.data <- sobj@meta.data %>% mutate(!!!lapply(mutaters, parse_expr))
85
+ }
86
+
87
+ if (!is.null(split_by)) {
88
+ # check if each split has more than 100 cells
89
+ cellno = table(sobj@meta.data[[split_by]])
90
+ cellno = cellno[cellno < 100]
91
+ if (length(cellno) > 0) {
92
+ # stop and print the splits with # cells
93
+ stop(paste0(
94
+ "The following splits have less than 100 cells: \n",
95
+ paste0("- ", names(cellno), ": ", cellno, collapse = "\n"),
96
+ "\n\n",
97
+ "You can use `envs.mutaters` to merge these splits and use `newsplit` as `envs.split_by`: \n",
98
+ "> mutaters = {\n",
99
+ "> newsplit = \"if_else(oldsplit %in% c('split1', 'split2'), 'mergedsplit', oldsplit)\"\n",
100
+ "> }\n"
101
+ ))
102
+ }
103
+ sobj = SplitObject(sobj, split.by = split_by)
104
+ }
105
+
63
106
  # Normalize data
64
107
  log_info("- Normalizing data")
65
- sctransform_args$object = sobj
66
- sctransform_args$residual.features = rownames(x = reference)
67
- query = do_call(SCTransform, sctransform_args)
108
+ if (refnorm == "SCTransform") {
109
+ log_info(" Using SCTransform normalization")
110
+ sctransform_args$residual.features = rownames(x = reference)
111
+ if (is.null(split_by)) {
112
+ sctransform_args$object = sobj
113
+ query = do_call(SCTransform, sctransform_args)
114
+ } else {
115
+ query = mclapply(
116
+ X = sobj,
117
+ FUN = function(x) {
118
+ sctransform_args$object = x
119
+ do_call(SCTransform, sctransform_args)
120
+ },
121
+ mc.cores = ncores
122
+ )
123
+ if (any(unlist(lapply(query, class)) == "try-error")) {
124
+ stop(paste0("\nmclapply (SCTransform) error:", query))
125
+ }
126
+ }
127
+ } else {
128
+ log_info(" Using NormalizeData normalization")
129
+ if (is.null(split_by)) {
130
+ normalizedata_args$object = sobj
131
+ query = do_call(NormalizeData, normalizedata_args)
132
+ } else {
133
+ query = mclapply(
134
+ X = sobj,
135
+ FUN = function(x) {
136
+ normalizedata_args$object = x
137
+ do_call(NormalizeData, normalizedata_args)
138
+ },
139
+ mc.cores = ncores
140
+ )
141
+ if (any(unlist(lapply(query, class)) == "try-error")) {
142
+ stop(paste0("\nmclapply (NormalizeData) error:", query))
143
+ }
144
+ }
145
+ }
68
146
 
69
147
  # Find anchors between query and reference
70
148
  log_info("- Finding anchors")
71
149
  findtransferanchors_args$reference = reference
72
- findtransferanchors_args$query = query
73
- anchors = do_call(FindTransferAnchors, findtransferanchors_args)
150
+ if (is.null(split_by)) {
151
+ findtransferanchors_args$query = query
152
+ anchors = do_call(FindTransferAnchors, findtransferanchors_args)
153
+ } else {
154
+ anchors = mclapply(
155
+ X = query,
156
+ FUN = function(x) {
157
+ findtransferanchors_args$query = x
158
+ do_call(FindTransferAnchors, findtransferanchors_args)
159
+ },
160
+ mc.cores = ncores
161
+ )
162
+ if (any(unlist(lapply(anchors, class)) == "try-error")) {
163
+ stop(paste0("\nmclapply (FindTransferAnchors) error:", anchors))
164
+ }
165
+ }
74
166
 
75
167
  # Map query to reference
76
168
  log_info("- Mapping query to reference")
77
169
  mapquery_args$reference = reference
78
- mapquery_args$query = query
79
- mapquery_args$anchorset = anchors
80
- query = do_call(MapQuery, mapquery_args)
170
+ if (is.null(split_by)) {
171
+ mapquery_args$query = query
172
+ mapquery_args$anchorset = anchors
173
+ query = do_call(MapQuery, mapquery_args)
174
+ } else {
175
+ query = mclapply(
176
+ X = seq_along(query),
177
+ FUN = function(i) {
178
+ mapquery_args$query = query[[i]]
179
+ mapquery_args$anchorset = anchors[[i]]
180
+ do_call(MapQuery, mapquery_args)
181
+ },
182
+ mc.cores = ncores
183
+ )
184
+ if (any(unlist(lapply(query, class)) == "try-error")) {
185
+ stop(paste0("\nmclapply (MapQuery) error:", query))
186
+ }
187
+ }
81
188
 
82
189
  # Calculating mapping score
83
190
  log_info("- Calculating mapping score")
84
- mappingscore_args$anchors = anchors
85
- mappingscore = tryCatch({
86
- do_call(MappingScore, mappingscore_args)
87
- }, error = function(e) {
88
- if (e$message == "subscript out of bounds") {
89
- stop(paste0(
90
- "While calculating mapping score, the following error was encountered: \n",
91
- "subscript out of bounds. \n\n",
92
- "You may want to try a smaller `ndim` (default: 50) in `envs.MappingScore`."
93
- ))
191
+ mappingscore_sob_msg = paste0(
192
+ "While calculating mapping score, the following error was encountered: \n",
193
+ "subscript out of bounds. \n\n",
194
+ "You may want to try a smaller `ndim` (default: 50) in `envs.MappingScore`."
195
+ )
196
+ if (is.null(split_by)) {
197
+ mappingscore_args$anchors = anchors
198
+ mappingscore = tryCatch({
199
+ do_call(MappingScore, mappingscore_args)
200
+ }, error = function(e) {
201
+ if (e$message == "subscript out of bounds") stop(mappingscore_sob_msg)
202
+ stop(e)
203
+ })
204
+ } else {
205
+ mappingscore = mclapply(
206
+ X = seq_along(query),
207
+ FUN = function(i) {
208
+ mappingscore_args$anchors = anchors[[i]]
209
+ tryCatch({
210
+ do_call(MappingScore, mappingscore_args)
211
+ }, error = function(e) {
212
+ if (e$message == "subscript out of bounds") stop(mappingscore_sob_msg)
213
+ stop(e)
214
+ })
215
+ },
216
+ mc.cores = ncores
217
+ )
218
+ if (any(unlist(lapply(mappingscore, class)) == "try-error")) {
219
+ stop(paste0("\nmclapply (MappingScore) error:", mappingscore))
94
220
  }
95
- stop(e)
96
- })
221
+ }
97
222
 
98
223
  # Calculate mapping score and add to metadata
99
- log_info("- Calculating mapping score")
100
- query = AddMetaData(
101
- object = query,
102
- metadata = mappingscore,
103
- col.name = "mapping.score"
104
- )
224
+ log_info("- Adding mapping score to metadata")
225
+ if (is.null(split_by)) {
226
+ query = AddMetaData(
227
+ object = query,
228
+ metadata = mappingscore,
229
+ col.name = "mapping.score"
230
+ )
231
+ } else {
232
+ query = mclapply(
233
+ X = seq_along(query),
234
+ FUN = function(i) {
235
+ AddMetaData(
236
+ object = query[[i]],
237
+ metadata = mappingscore[[i]],
238
+ col.name = "mapping.score"
239
+ )
240
+ },
241
+ mc.cores = ncores
242
+ )
243
+ if (any(unlist(lapply(query, class)) == "try-error")) {
244
+ stop(paste0("\nmclapply (AddMetaData) error:", query))
245
+ }
246
+
247
+ # Combine the results
248
+ log_info("- Merging the results")
249
+ query = merge(query[[1]], query[2:length(query)], merge.dr = "ref.umap")
250
+ }
105
251
 
106
252
  # Add the alias to the metadata for the clusters
107
253
  log_info("- Adding ident to metadata and set as ident")
@@ -137,6 +137,26 @@ shared_clusters = function(name) {
137
137
  anno = do_call(ComplexHeatmap::HeatmapAnnotation, anno)
138
138
  }
139
139
 
140
+ if (!is.null(case$sample_order) && length(case$sample_order) > 0) {
141
+ if (length(case$sample_order) == 1) {
142
+ case$sample_order = trimws(strsplit(case$sample_order, ",")[[1]])
143
+ }
144
+ nonexisting = setdiff(case$sample_order, samples)
145
+ if (length(nonexisting) > 0) {
146
+ stop(paste(" The following samples do not exist in `sample_order`:", paste(nonexisting, collapse=", ")))
147
+ }
148
+ plotdata = plotdata[, case$sample_order, drop=FALSE]
149
+ }
150
+
151
+ cluster_rows = case$cluster_rows && nrow(plotdata) > 2
152
+ col_samples = colnames(plotdata)
153
+ if (!cluster_rows) {
154
+ plotdata = plotdata[col_samples, ]
155
+ row_samples = col_samples
156
+ } else {
157
+ row_samples = samples
158
+ }
159
+
140
160
  # Plot heatmap
141
161
  plotHeatmap(
142
162
  plotdata,
@@ -144,12 +164,12 @@ shared_clusters = function(name) {
144
164
  name = "Shared TCR Clusters",
145
165
  col = c("#ffe1e1", "red3"),
146
166
  cluster_columns = FALSE,
147
- cluster_rows = nrow(plotdata) > 2,
167
+ cluster_rows = cluster_rows,
148
168
  top_annotation = anno,
149
169
  cell_fun = if (
150
170
  is.null(case$numbers_on_heatmap) || !case$numbers_on_heatmap
151
171
  ) NULL else function(j, i, x, y, width, height, fill) {
152
- grid.text(plotdata[samples[i], samples[j]], x, y, gp = gpar(fontsize = 10))
172
+ grid.text(row_samples[i], col_samples[j], x, y, gp = gpar(fontsize = 10))
153
173
  }
154
174
  ),
155
175
  devpars = case$devpars,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: biopipen
3
- Version: 0.27.7
3
+ Version: 0.27.9
4
4
  Summary: Bioinformatics processes/pipelines that can be run from `pipen run`
5
5
  License: MIT
6
6
  Author: pwwang
@@ -1,4 +1,4 @@
1
- biopipen/__init__.py,sha256=2q8A1v0my4JKqq2Mun4r1CJc3a3hPBoWgXjeUKWcOpQ,23
1
+ biopipen/__init__.py,sha256=sJWdNHkiTx9zQyc6_YJknVzen19cpBrSswdfVQaZ7S8,23
2
2
  biopipen/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  biopipen/core/config.py,sha256=edK5xnDhM8j27srDzsxubi934NMrglLoKrdcC8qsEPk,1069
4
4
  biopipen/core/config.toml,sha256=20RCI30Peee1EQdfb_UbV3Hf74XUPndJnYZlUThytsw,1781
@@ -21,12 +21,12 @@ biopipen/ns/gsea.py,sha256=EsNRAPYsagaV2KYgr4Jv0KCnZGqayM209v4yOGGTIOI,7423
21
21
  biopipen/ns/misc.py,sha256=fzn0pXvdghMkQhu-e3MMapPNMyO6IAJbtTzVU3GbFa0,3246
22
22
  biopipen/ns/plot.py,sha256=fzJAKKl4a_tsVkLREGCQTFVHP049m33LdWgeYRb6v7M,5483
23
23
  biopipen/ns/rnaseq.py,sha256=bKAa6friFWof4yDTWZQahm1MS-lrdetO1GqDKdfxXYc,7708
24
- biopipen/ns/scrna.py,sha256=qpMBKqkn_Cx6clpiNUpZjxGZIBzL3zPvO4m_Lxt4O0o,103952
24
+ biopipen/ns/scrna.py,sha256=KL5Eu0mnIITLLSHAIz_sgr4ssmEU6AuBDXwedqYU7BI,105633
25
25
  biopipen/ns/scrna_metabolic_landscape.py,sha256=6AhaynGG3lNRi96N2tReVT46BJMuEwooSSd2irBoN80,28347
26
26
  biopipen/ns/snp.py,sha256=EQ2FS0trQ7YThPmBVTpS66lc2OSfgQ6lCh6WnyP-C2g,5499
27
27
  biopipen/ns/stats.py,sha256=yJ6C1CXF84T7DDs9mgufqUOr89Rl6kybE5ji8Vnx6cw,13693
28
28
  biopipen/ns/tcgamaf.py,sha256=AFbUJIxiMSvsVY3RcHgjRFuMnNh2DG3Mr5slLNEyz6o,1455
29
- biopipen/ns/tcr.py,sha256=7F_FulZ3UGouuvgH_ylZwJybr_310f9BTz_kouO1SjY,87905
29
+ biopipen/ns/tcr.py,sha256=0PCF8iPZ629z6P3RHoAWEpMWmuDslomTGcMopjqvXmE,88304
30
30
  biopipen/ns/vcf.py,sha256=cdkKroii0_nl_bSP2cnO09qESUAhHqu6btOiTSKS79Y,15314
31
31
  biopipen/ns/web.py,sha256=3zucrDo-IVsSnIvlw-deoScuxqWa6OMTm8Vo-R4E44Q,2224
32
32
  biopipen/reports/bam/CNAClinic.svelte,sha256=D4IxQcgDCPQZMbXog-aZP5iJEQTK2N4i0C60e_iXyfs,213
@@ -141,12 +141,12 @@ biopipen/scripts/scrna/SeuratClusterStats-dimplots.R,sha256=gViDgQ8NorYD64iK0Fgc
141
141
  biopipen/scripts/scrna/SeuratClusterStats-features.R,sha256=W7iYhaFsC5EMZLO50QukYPLYGK4bq9kQc1VT5FwvI68,15496
142
142
  biopipen/scripts/scrna/SeuratClusterStats-hists.R,sha256=YhuD-GePjJPSkR0iLRgV_hiGHD_bnOIKp-LB6GCwquo,5037
143
143
  biopipen/scripts/scrna/SeuratClusterStats-ngenes.R,sha256=GVKIXFNS_syCuSN8oxoBkjxxAeI5LdSxh-qLVkUsbDA,2146
144
- biopipen/scripts/scrna/SeuratClusterStats-stats.R,sha256=TxQ0OcLwXwIgwL1mTLArboK0ATJIJhxWiv9DV_jBlhE,9255
144
+ biopipen/scripts/scrna/SeuratClusterStats-stats.R,sha256=bBbvNCvV6dZLg9zvhh2nR48_53md5A5UEqrPXD00MZU,9263
145
145
  biopipen/scripts/scrna/SeuratClusterStats.R,sha256=ouWoj7Q644uG3MUlT23AES8f74g38-jPtPhINSvoUas,1267
146
146
  biopipen/scripts/scrna/SeuratClustering.R,sha256=kAvQq3RV86_KSv9NlUtUeQrPKkbhSsnv6Q4DoiTu8M0,6403
147
147
  biopipen/scripts/scrna/SeuratFilter.R,sha256=BrYK0MLdaTtQvInMaQsmOt7oH_hlks0M1zykkJtg2lM,509
148
148
  biopipen/scripts/scrna/SeuratLoading.R,sha256=ekWKnHIqtQb3kHVQiVymAHXXqiUxs6KKefjZKjaykmk,900
149
- biopipen/scripts/scrna/SeuratMap2Ref.R,sha256=Xn3VnvKqShuC0Ju05380wjuLVSdW0uWVzntdxjme244,4359
149
+ biopipen/scripts/scrna/SeuratMap2Ref.R,sha256=_G8pG7NRV2GOFDzKBLY1nkXR0DO1c-6NkX990_hC8mk,9127
150
150
  biopipen/scripts/scrna/SeuratMetadataMutater.R,sha256=Pp4GsF3hZ6ZC2vroC3LSBmVa4B1p2L3hbh981yaAIeQ,1093
151
151
  biopipen/scripts/scrna/SeuratPreparing.R,sha256=t6GOcc9ZNwpRLeES7uBWja9RF6u6k5I_TXcdK4Ve7d0,18683
152
152
  biopipen/scripts/scrna/SeuratSplit.R,sha256=vdK11V39_Uo_NaOh76QWCtxObGaEr5Ynxqq0hTiSvsU,754
@@ -193,7 +193,7 @@ biopipen/scripts/tcr/ImmunarchFilter.R,sha256=o25O36FwH_0w6F8DFQ0SfpcwDzlzaGefXq
193
193
  biopipen/scripts/tcr/ImmunarchLoading.R,sha256=l_l-gojiCKI_MWgIUe2zG5boVtNipBv4rACRJEcrnFE,5734
194
194
  biopipen/scripts/tcr/ImmunarchSplitIdents.R,sha256=FGCeGV0uSmFU91lKkldUAeV4A2m3hHw5X4GNi8ffGzI,1873
195
195
  biopipen/scripts/tcr/SampleDiversity.R,sha256=jQ1OU3b8vswD8tZhLt3fkcqJKrl2bhQX0giHM2rXz3Y,2643
196
- biopipen/scripts/tcr/TCRClusterStats.R,sha256=D7q1svXQxl1uOya8bePvR9e6NJXjCjXbPsXnEPTWdlE,12004
196
+ biopipen/scripts/tcr/TCRClusterStats.R,sha256=aaY9w1GZWQLVQR7wl8POGCzzW7q0ge6cWxrzmqoWNA8,12743
197
197
  biopipen/scripts/tcr/TCRClustering.R,sha256=eflUsYfq4aEaX9BVL0MiB7lNlot_L-8VaReK516go84,9236
198
198
  biopipen/scripts/tcr/TCRDock.py,sha256=jjzxMWp-hs0LDtA1mVbiWDvUieSO7X-F9yeKGy1LSTM,3026
199
199
  biopipen/scripts/tcr/TESSA.R,sha256=bfOixWLZy8yi0MzXncP67KjtCukwXEzsK5fCdMzB5VM,6822
@@ -240,7 +240,7 @@ biopipen/utils/reference.py,sha256=6bPSwQa-GiDfr7xLR9a5T64Ey40y24yn3QfQ5wDFZkU,4
240
240
  biopipen/utils/rnaseq.R,sha256=Ro2B2dG-Z2oVaT5tkwp9RHBz4dp_RF-JcizlM5GYXFs,1298
241
241
  biopipen/utils/single_cell.R,sha256=pJjYP8bIZpNAtTQ32rOXhZxaM1Y-6D-xUcK3pql9tbk,4316
242
242
  biopipen/utils/vcf.py,sha256=ajXs0M_QghEctlvUlSRjWQIABVF02wPdYd-0LP4mIsU,9377
243
- biopipen-0.27.7.dist-info/METADATA,sha256=uIwtisFh-OLK9tI5oR7psOVDH_lSUIT8Dy6iWzgmyyE,882
244
- biopipen-0.27.7.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
245
- biopipen-0.27.7.dist-info/entry_points.txt,sha256=wu70aoBcv1UahVbB_5237MY-9M9_mzqmWjDD-oi3yz0,621
246
- biopipen-0.27.7.dist-info/RECORD,,
243
+ biopipen-0.27.9.dist-info/METADATA,sha256=-Uvdu_dbpiM0EPBLSFLhhpySPAPxGtA6_FjRlMo0bME,882
244
+ biopipen-0.27.9.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
245
+ biopipen-0.27.9.dist-info/entry_points.txt,sha256=wu70aoBcv1UahVbB_5237MY-9M9_mzqmWjDD-oi3yz0,621
246
+ biopipen-0.27.9.dist-info/RECORD,,