biopipen 0.26.0__py3-none-any.whl → 0.26.1__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.26.0"
1
+ __version__ = "0.26.1"
biopipen/ns/scrna.py CHANGED
@@ -483,14 +483,18 @@ class SeuratClusterStats(Proc):
483
483
  The parameters from the cases can overwrite the default parameters.
484
484
  - frac (flag): Whether to output the fraction of cells instead of number.
485
485
  - pie (flag): Also output a pie chart?
486
+ - circos (flag): Also output a circos plot?
486
487
  - table (flag): Whether to output a table (in tab-delimited format) and in the report.
487
488
  - frac_ofall(flag): Whether to output the fraction against all cells,
488
489
  instead of the fraction in each group.
490
+ Does not work for circos plot.
489
491
  Only works when `frac` is `True` and `group-by` is specified.
490
492
  - transpose (flag): Whether to transpose the cluster and group, that is,
491
493
  using group as the x-axis and cluster to fill the plot.
494
+ For circos plot, when transposed, the arrows will be drawn from the idents (by `ident`) to the
495
+ the groups (by `group-by`).
492
496
  Only works when `group-by` is specified.
493
- - position (choice): The position of the bars.
497
+ - position (choice): The position of the bars. Does not work for pie and circos plots.
494
498
  - stack: Use `position_stack()`.
495
499
  - fill: Use `position_fill()`.
496
500
  - dodge: Use `position_dodge()`.
@@ -499,8 +503,13 @@ class SeuratClusterStats(Proc):
499
503
  - group-by: The column name in metadata to group the cells.
500
504
  Does NOT support for pie charts.
501
505
  - split-by: The column name in metadata to split the cells into different plots.
506
+ Does NOT support for circos plots.
502
507
  - subset: An expression to subset the cells, will be passed to
503
508
  `dplyr::filter()` on metadata.
509
+ - circos_devpars (ns): The device parameters for the circos plots.
510
+ - res (type=int): The resolution of the plots.
511
+ - height (type=int): The height of the plots.
512
+ - width (type=int): The width of the plots.
504
513
  - pie_devpars (ns): The device parameters for the pie charts.
505
514
  - res (type=int): The resolution of the plots.
506
515
  - height (type=int): The height of the plots.
@@ -634,6 +643,7 @@ class SeuratClusterStats(Proc):
634
643
  "stats_defaults": {
635
644
  "frac": False,
636
645
  "pie": False,
646
+ "circos": False,
637
647
  "table": False,
638
648
  "position": "auto",
639
649
  "frac_ofall": False,
@@ -644,6 +654,7 @@ class SeuratClusterStats(Proc):
644
654
  "subset": None,
645
655
  "devpars": {"res": 100, "height": 600, "width": 800},
646
656
  "pie_devpars": {"res": 100, "height": 600, "width": 800},
657
+ "circos_devpars": {"res": 100, "height": 600, "width": 600},
647
658
  },
648
659
  "stats": {
649
660
  "Number of cells in each cluster": {
@@ -1142,6 +1153,7 @@ class TopExpressingGenes(Proc):
1142
1153
  markers See below for all libraries.
1143
1154
  <https://maayanlab.cloud/Enrichr/#libraries>
1144
1155
  n (type=int): The number of top expressing genes to find.
1156
+ subset: An expression to subset the cells for each case.
1145
1157
  cases (type=json): If you have multiple cases, you can specify them
1146
1158
  here. The keys are the names of the cases and the values are the
1147
1159
  above options except `mutaters`. If some options are
@@ -1162,6 +1174,7 @@ class TopExpressingGenes(Proc):
1162
1174
  "section": "DEFAULT",
1163
1175
  "dbs": ["KEGG_2021_Human", "MSigDB_Hallmark_2020"],
1164
1176
  "n": 250,
1177
+ "subset": None,
1165
1178
  "cases": {},
1166
1179
  }
1167
1180
  plugin_opts = {
@@ -372,6 +372,7 @@ do_case <- function(name, case) {
372
372
  # heatmaps
373
373
  log_debug(" Preparing pie charts ...")
374
374
  hmd <- m %>%
375
+ arrange(!!sym(case$group_by), !!sym(cby)) %>%
375
376
  mutate(!!sym(cby) := paste0("[", !!sym(case$group_by), "] ", !!sym(cby))) %>%
376
377
  select(!!sym(cby), CloneGroupClusterSize, seurat_clusters) %>%
377
378
  distinct(!!sym(cby), seurat_clusters, .keep_all = TRUE) %>%
@@ -426,6 +427,9 @@ do_case <- function(name, case) {
426
427
  if (length(cells_by) == 1) {
427
428
  hmsplits <- NULL
428
429
  extra_width <- extra_width - 15
430
+ } else {
431
+ # keep the row order
432
+ hmrowlbls <- factor(hmrowlbls, levels = unique(hmrowlbls))
429
433
  }
430
434
 
431
435
  col_fun <- colorRamp2(c(0, max(hmdata, na.rm = T)), c("lightyellow", "purple"))
@@ -1,4 +1,5 @@
1
1
  # Loaded variables: srtfile, outdir, srtobj
2
+ library(circlize)
2
3
 
3
4
  stats_defaults = {{envs.stats_defaults | r: todot="-"}}
4
5
  stats = {{envs.stats | r: todot="-", skip=1}}
@@ -12,6 +13,7 @@ do_one_stats = function(name) {
12
13
  case = list_update(stats_defaults, stats[[name]])
13
14
  case$devpars = list_update(stats_defaults$devpars, case$devpars)
14
15
  case$pie_devpars = list_update(stats_defaults$pie_devpars, case$pie_devpars)
16
+ case$circos_devpars = list_update(stats_defaults$circos_devpars, case$circos_devpars)
15
17
  if (isTRUE(case$pie) && !is.null(case$group.by)) {
16
18
  stop(paste0(name, ": pie charts are not supported for group-by"))
17
19
  }
@@ -27,6 +29,7 @@ do_one_stats = function(name) {
27
29
 
28
30
  figfile = file.path(odir, paste0(slugify(name), ".bar.png"))
29
31
  piefile = file.path(odir, paste0(slugify(name), ".pie.png"))
32
+ circosfile = file.path(odir, paste0(slugify(name), ".circos.png"))
30
33
  samtablefile = file.path(odir, paste0(slugify(name), ".bysample.txt"))
31
34
  tablefile = file.path(odir, paste0(slugify(name), ".txt"))
32
35
 
@@ -172,6 +175,40 @@ do_one_stats = function(name) {
172
175
  ui = "tabs"
173
176
  )
174
177
  }
178
+
179
+ if (isTRUE(case$circos)) {
180
+ if (isTRUE(case$transpose)) {
181
+ circos_df <- plot_df %>%
182
+ select(from=!!sym(case$ident), to=!!sym(case$group.by), value=.n)
183
+ } else {
184
+ circos_df <- plot_df %>%
185
+ select(from=!!sym(case$group.by), to=!!sym(case$ident), value=.n)
186
+ }
187
+
188
+ png(
189
+ circosfile,
190
+ width=case$circos_devpars$width,
191
+ height=case$circos_devpars$height,
192
+ res=case$circos_devpars$res
193
+ )
194
+ circos.clear()
195
+ chordDiagram(
196
+ circos_df,
197
+ direction = 1,
198
+ direction.type = c("diffHeight", "arrows"),
199
+ link.arr.type = "big.arrow"
200
+ )
201
+ dev.off()
202
+
203
+ add_report(
204
+ list(
205
+ name = "Circos plot",
206
+ contents = list(list(kind = "image", src = circosfile))
207
+ ),
208
+ h1 = name,
209
+ ui = "tabs"
210
+ )
211
+ }
175
212
  }
176
213
 
177
214
  sapply(names(stats), do_one_stats)
@@ -20,6 +20,7 @@ prefix_each <- {{ envs.prefix_each | r }}
20
20
  section <- {{ envs.section | r }}
21
21
  dbs <- {{ envs.dbs | r }}
22
22
  n <- {{ envs.n | r }}
23
+ sset <- {{ envs.subset | r }}
23
24
  cases <- {{ envs.cases | r: todot = "-" }} # nolint
24
25
 
25
26
  set.seed(8525)
@@ -43,7 +44,8 @@ if (is.null(cases) || length(cases) == 0) {
43
44
  prefix_each = prefix_each,
44
45
  section = section,
45
46
  dbs = dbs,
46
- n = n
47
+ n = n,
48
+ subset = sset
47
49
  )
48
50
  )
49
51
  } else {
@@ -56,7 +58,8 @@ if (is.null(cases) || length(cases) == 0) {
56
58
  prefix_each = prefix_each,
57
59
  section = section,
58
60
  dbs = dbs,
59
- n = n
61
+ n = n,
62
+ subset = sset
60
63
  )
61
64
  })
62
65
  }
@@ -144,7 +147,7 @@ casename_info <- function(casename, create = FALSE) {
144
147
  }
145
148
 
146
149
  do_enrich <- function(expr, odir) {
147
- log_info(" Saving expressions ...")
150
+ log_debug(" Saving expressions ...")
148
151
  expr <- expr %>% as.data.frame()
149
152
  colnames(expr) <- c("Expression")
150
153
  expr <- expr %>% rownames_to_column("Gene") %>% select(Gene, Expression)
@@ -165,7 +168,7 @@ do_enrich <- function(expr, odir) {
165
168
  quote = FALSE
166
169
  )
167
170
 
168
- log_info(" Running enrichment ...")
171
+ log_debug(" Running enrichment ...")
169
172
  enriched <- enrichr(head(expr$Gene, n), dbs) # nolint
170
173
  for (db in dbs) {
171
174
  write.table(
@@ -178,7 +181,7 @@ do_enrich <- function(expr, odir) {
178
181
  )
179
182
 
180
183
  if (nrow(enriched[[db]]) == 0) {
181
- log_info(paste0(" No enriched terms for ", db))
184
+ log_warn(paste0(" No enriched terms for ", db))
182
185
  next
183
186
  }
184
187
 
@@ -199,15 +202,24 @@ do_case <- function(casename) {
199
202
  case <- cases[[casename]]
200
203
  info <- casename_info(casename, create = TRUE)
201
204
 
202
- log_info(" Calculating average expression ...")
203
- assay <- DefaultAssay(srtobj)
205
+ log_debug(" Calculating average expression ...")
206
+ if (!is.null(case$subset)) {
207
+ tryCatch({
208
+ sobj <- subset(srtobj, !!parse_expr(case$subset))
209
+ }, error = function(e) {
210
+ log_warn(" No cells found for the subset, skipping ...")
211
+ })
212
+ } else {
213
+ sobj <- srtobj
214
+ }
215
+ assay <- DefaultAssay(sobj)
204
216
  avgexpr <- AverageExpression(
205
- srtobj,
217
+ sobj,
206
218
  group.by = case$group.by,
207
219
  assays = assay
208
220
  )[[assay]]
209
221
  # https://github.com/satijalab/seurat/issues/7893
210
- colnames(avgexpr) <- as.character(unique(srtobj@meta.data[[case$group.by]]))
222
+ colnames(avgexpr) <- as.character(unique(sobj@meta.data[[case$group.by]]))
211
223
  avgexpr <- avgexpr[, case$ident, drop = FALSE]
212
224
  avgexpr <- avgexpr[order(-avgexpr), , drop = FALSE]
213
225
 
@@ -217,7 +229,7 @@ do_case <- function(casename) {
217
229
  }
218
230
 
219
231
  add_case_report <- function(info) {
220
- log_info(" Adding case report ...")
232
+ log_debug(" Adding case report ...")
221
233
  h1 = ifelse(
222
234
  info$section == "DEFAULT",
223
235
  info$case,
@@ -237,30 +249,43 @@ add_case_report <- function(info) {
237
249
  ifelse(single_section, "#", info$case)
238
250
  )
239
251
 
240
- add_report(
241
- list(
242
- kind = "descr",
243
- content = paste0("Top ", n, " expressing genes")
244
- ),
245
- list(
246
- kind = "table",
247
- src = file.path(info$casedir, "exprn.txt")
248
- ),
249
- h1 = h1,
250
- h2 = ifelse(h2 == "#", "Top Expressing Genes", h2),
251
- h3 = ifelse(h2 == "#", "#", "Top Expressing Genes")
252
- )
252
+ if (!is.null(info$error)) {
253
+ add_report(
254
+ list(
255
+ kind = "descr",
256
+ content = paste0("Top ", n, " expressing genes")
257
+ ),
258
+ list(kind = "error", content = info$error),
259
+ h1 = h1,
260
+ h2 = ifelse(h2 == "#", "Top Expressing Genes", h2),
261
+ h3 = ifelse(h2 == "#", "#", "Top Expressing Genes")
262
+ )
263
+ } else {
264
+ add_report(
265
+ list(
266
+ kind = "descr",
267
+ content = paste0("Top ", n, " expressing genes")
268
+ ),
269
+ list(
270
+ kind = "table",
271
+ src = file.path(info$casedir, "exprn.txt")
272
+ ),
273
+ h1 = h1,
274
+ h2 = ifelse(h2 == "#", "Top Expressing Genes", h2),
275
+ h3 = ifelse(h2 == "#", "#", "Top Expressing Genes")
276
+ )
253
277
 
254
- add_report(
255
- list(
256
- kind = "descr",
257
- content = paste0("Enrichment analysis for the top ", n, " expressing genes")
258
- ),
259
- list(kind = "enrichr", dir = info$casedir),
260
- h1 = h1,
261
- h2 = ifelse(h2 == "#", "Enrichment Analysis", h2),
262
- h3 = ifelse(h2 == "#", "#", "Enrichment Analysis")
263
- )
278
+ add_report(
279
+ list(
280
+ kind = "descr",
281
+ content = paste0("Enrichment analysis for the top ", n, " expressing genes")
282
+ ),
283
+ list(kind = "enrichr", dir = info$casedir),
284
+ h1 = h1,
285
+ h2 = ifelse(h2 == "#", "Enrichment Analysis", h2),
286
+ h3 = ifelse(h2 == "#", "#", "Enrichment Analysis")
287
+ )
288
+ }
264
289
  }
265
290
 
266
291
  sapply(sort(names(cases)), do_case)
@@ -329,6 +329,7 @@ plot_venndg <- function(counts, groups, singletons) {
329
329
 
330
330
  plot_upset <- function(counts, singletons) {
331
331
  query_singleton <- function(row) { row["Singletons"] == "true" }
332
+ query_multiplet <- function(row) { rep(TRUE, length(row)) }
332
333
 
333
334
  cnts <- column_to_rownames(counts, "CDR3.aa") %>%
334
335
  mutate(across(everything(), ~ as.integer(as.logical(.x))))
@@ -342,6 +343,14 @@ plot_upset <- function(counts, singletons) {
342
343
  sets <- make.names(sets)
343
344
 
344
345
  upset(cnts, sets = sets, query.legend = "top", sets.x.label = "# clones", queries = list(
346
+ list(
347
+ # in order to add legend
348
+ # actually mark all, but singleton will override
349
+ query = query_multiplet,
350
+ color = "#3b3b3b",
351
+ active = TRUE,
352
+ query.name = "Multiplets"
353
+ ),
345
354
  list(
346
355
  query = query_singleton,
347
356
  color = "orange",
biopipen/utils/misc.R CHANGED
@@ -29,6 +29,25 @@ bQuote <- function(x) {
29
29
  #' @param tolower Convert to lowercase
30
30
  #' @return A slugified string
31
31
  slugify <- function(x, non_alphanum_replace="-", collapse_replace=TRUE, tolower=FALSE) {
32
+ subs <- list(
33
+ "š"="s", "œ"="oe", "ž"="z", "ß"="ss", "þ"="y", "à"="a", "á"="a", "â"="a",
34
+ "ã"="a", "ä"="a", "å"="a", "æ"="ae", "ç"="c", "è"="e", "é"="e", "ê"="e",
35
+ "ë"="e", "ì"="i", "í"="i", "î"="i", "ï"="i", "ð"="d", "ñ"="n", "ò"="o",
36
+ "ó"="o", "ô"="o", "õ"="o", "ö"="o", "ø"="oe", "ù"="u", "ú"="u", "û"="u",
37
+ "ü"="u", "ý"="y", "ÿ"="y", "ğ"="g", "ı"="i", "ij"="ij", "ľ"="l", "ň"="n",
38
+ "ř"="r", "ş"="s", "ť"="t", "ų"="u", "ů"="u", "ý"="y", "ź"="z", "ż"="z",
39
+ "ſ"="s", "α"="a", "β"="b", "γ"="g", "δ"="d", "ε"="e", "ζ"="z", "η"="h",
40
+ "θ"="th", "ι"="i", "κ"="k", "λ"="l", "μ"="m", "ν"="n", "ξ"="x", "ο"="o",
41
+ "π"="p", "ρ"="r", "σ"="s", "τ"="t", "υ"="u", "φ"="ph", "χ"="ch", "ψ"="ps",
42
+ "ω"="o", "ά"="a", "έ"="e", "ή"="h", "ί"="i", "ό"="o", "ύ"="u", "ώ"="o",
43
+ "ϐ"="b", "ϑ"="th", "ϒ"="y", "ϕ"="ph", "ϖ"="p", "Ϛ"="st", "ϛ"="st", "Ϝ"="f",
44
+ "ϝ"="f", "Ϟ"="k", "ϟ"="k", "Ϡ"="k", "ϡ"="k", "ϰ"="k", "ϱ"="r", "ϲ"="s",
45
+ "ϳ"="j", "ϴ"="th", "ϵ"="e", "϶"="p"
46
+ )
47
+ # replace latin and greek characters to the closest english character
48
+ for (k in names(subs)) {
49
+ x <- gsub(k, subs[[k]], x)
50
+ }
32
51
  x <- gsub("[^[:alnum:]_]", non_alphanum_replace, x)
33
52
  if(collapse_replace) x <- gsub(paste0(non_alphanum_replace, "+"), non_alphanum_replace, x)
34
53
  if(tolower) x <- tolower(x)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: biopipen
3
- Version: 0.26.0
3
+ Version: 0.26.1
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=S1dNBNSmHJkAHkq1vL1Yg-dFpQk0fri_CstNlL1u5qw,23
1
+ biopipen/__init__.py,sha256=u0eTmljUU0kO8AAW-e1ESQ49mK2SuhpCy7eCliBLlDU,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,7 +21,7 @@ biopipen/ns/gsea.py,sha256=EsNRAPYsagaV2KYgr4Jv0KCnZGqayM209v4yOGGTIOI,7423
21
21
  biopipen/ns/misc.py,sha256=fzn0pXvdghMkQhu-e3MMapPNMyO6IAJbtTzVU3GbFa0,3246
22
22
  biopipen/ns/plot.py,sha256=yguxmErUOH-hOM10JfuI_sXw2p49XF8yGR_gXfbd5yQ,4066
23
23
  biopipen/ns/rnaseq.py,sha256=bKAa6friFWof4yDTWZQahm1MS-lrdetO1GqDKdfxXYc,7708
24
- biopipen/ns/scrna.py,sha256=ejYfpgB6kB8V7iGPllN7bBJpl44eGp6xuofjT9GxQdI,99051
24
+ biopipen/ns/scrna.py,sha256=Tm4FMMBfHnK99hcrCjIvigYtiIxOSXEemgNmi3qwE8M,99855
25
25
  biopipen/ns/scrna_metabolic_landscape.py,sha256=9s1NvH3aMaNDXyfwy9TdzGcSP_lIW4JqhLgknNZcIKE,28313
26
26
  biopipen/ns/snp.py,sha256=upGltsjjl09PWcRVdW6D5WpAQ3oWm1KwxQ026wsQwWc,2583
27
27
  biopipen/ns/stats.py,sha256=yJ6C1CXF84T7DDs9mgufqUOr89Rl6kybE5ji8Vnx6cw,13693
@@ -123,7 +123,7 @@ biopipen/scripts/scrna/CellTypeAnnotation-hitype.R,sha256=6_DBAlLKcHqaMyWGZWvTd4
123
123
  biopipen/scripts/scrna/CellTypeAnnotation-sccatch.R,sha256=1ejye0hs-EOwzzdP9gFWSLPcF6dOAA6VmNKXEjmS11E,1654
124
124
  biopipen/scripts/scrna/CellTypeAnnotation-sctype.R,sha256=1nKRtzhVoJ9y0yMg1sgI6u7czsrk2cN0FvNUCZo8l-o,3878
125
125
  biopipen/scripts/scrna/CellTypeAnnotation.R,sha256=OwLM_G4D7TG4HhIJjQxgIQM92X86lsWp9MVyXTTkLSc,618
126
- biopipen/scripts/scrna/CellsDistribution.R,sha256=jeR57kNdh6ibY42x5tO17qkEIFvcn3NQvPywaE-Vob0,19785
126
+ biopipen/scripts/scrna/CellsDistribution.R,sha256=CXdL7yLaoKdkKdgckR6IbUXlVIQQ25oc3CTCq673CEU,19952
127
127
  biopipen/scripts/scrna/DimPlots.R,sha256=-mXOTMnpPxvR30XLjwcohFfFx7xTqWKKiICwJiD6yEo,1554
128
128
  biopipen/scripts/scrna/ExprImpution-alra.R,sha256=w3W1txJcdWg52-SETY2Z0lO7maDNfiMjBYIGN587YW0,843
129
129
  biopipen/scripts/scrna/ExprImpution-rmagic.R,sha256=jYIfqZpnvjKJkvItLnemPVtUApHBYQi1_L8rHVbEe1M,735
@@ -140,7 +140,7 @@ biopipen/scripts/scrna/SeuratClusterStats-dimplots.R,sha256=pZKv1SnSNEGXDeE0_2VY
140
140
  biopipen/scripts/scrna/SeuratClusterStats-features.R,sha256=SaKTJloP1fttRXZQeb2ApX0ej7al13wOoEYkthSk13k,15489
141
141
  biopipen/scripts/scrna/SeuratClusterStats-hists.R,sha256=YhuD-GePjJPSkR0iLRgV_hiGHD_bnOIKp-LB6GCwquo,5037
142
142
  biopipen/scripts/scrna/SeuratClusterStats-ngenes.R,sha256=GVKIXFNS_syCuSN8oxoBkjxxAeI5LdSxh-qLVkUsbDA,2146
143
- biopipen/scripts/scrna/SeuratClusterStats-stats.R,sha256=CE9989SaO75_KYEEVqivEbUoTcUOtiTkRGWLNtWzxI8,6450
143
+ biopipen/scripts/scrna/SeuratClusterStats-stats.R,sha256=b5oXWb2GKt8nQxEXTc8Duv8rSx4UEwaO4OaEdyCBiF0,7590
144
144
  biopipen/scripts/scrna/SeuratClusterStats.R,sha256=ouWoj7Q644uG3MUlT23AES8f74g38-jPtPhINSvoUas,1267
145
145
  biopipen/scripts/scrna/SeuratClustering.R,sha256=kAvQq3RV86_KSv9NlUtUeQrPKkbhSsnv6Q4DoiTu8M0,6403
146
146
  biopipen/scripts/scrna/SeuratFilter.R,sha256=BrYK0MLdaTtQvInMaQsmOt7oH_hlks0M1zykkJtg2lM,509
@@ -152,7 +152,7 @@ biopipen/scripts/scrna/SeuratSplit.R,sha256=vdK11V39_Uo_NaOh76QWCtxObGaEr5Ynxqq0
152
152
  biopipen/scripts/scrna/SeuratSubClustering.R,sha256=L1SwKhNNKvsQGrcj0ZjScW9BLuvdO2pg7U48Ospsot8,6096
153
153
  biopipen/scripts/scrna/SeuratSubset.R,sha256=yVA11NVE2FSSw-DhxQcJRapns0tNNHdyDYi5epO6SKM,1776
154
154
  biopipen/scripts/scrna/SeuratTo10X.R,sha256=T2nJBTwOe12AIKC2FZsMSv6xx3s-67CYZokpz5wshqY,2679
155
- biopipen/scripts/scrna/TopExpressingGenes.R,sha256=J6tM54HStWkguUwFoIHRo_EAtCUKOuCBEfInzRfDYMQ,7703
155
+ biopipen/scripts/scrna/TopExpressingGenes.R,sha256=1OTCBeHooAKkByDBSBNG5F2icrPuznDW92EgG3YazTw,8563
156
156
  biopipen/scripts/scrna/Write10X.R,sha256=OMhXvJwvaH-aWsMpijKrvXQVabc1qUu5ZEwiLAhkDeY,285
157
157
  biopipen/scripts/scrna/celltypist-wrapper.py,sha256=f5M8f4rU5nC7l17RS0YVmUPpLLz4D6PIcgWtA77UExM,1722
158
158
  biopipen/scripts/scrna/sctype.R,sha256=NaUJkABwF5G1UVm1CCtcMbwLSj94Mo24mbYCKFqo1Bw,6524
@@ -170,7 +170,7 @@ biopipen/scripts/tcgamaf/MafAddChr.py,sha256=V10HMisl12O3ZfXuRmFNdy5p-3mr43WCvy0
170
170
  biopipen/scripts/tcgamaf/maf2vcf.pl,sha256=hJKcH-NbgWK6fmK7f3qex7ozJJl-PqCNPXqpwfcHwJg,22707
171
171
  biopipen/scripts/tcr/Attach2Seurat.R,sha256=C91TAh1cLSxWkdFPf84pbxlpTYMuWq_rduG4eiIkXZI,1345
172
172
  biopipen/scripts/tcr/CDR3AAPhyschem.R,sha256=-0BS6cdt5GfQJphA3HlDgGjWr4XFF-7INLJyMBHQNAc,16628
173
- biopipen/scripts/tcr/CloneResidency.R,sha256=heL5bV8ZjMtHlUditFDciIavOb7NUpw8vLI6PeP-R40,20027
173
+ biopipen/scripts/tcr/CloneResidency.R,sha256=AVIsBIR1zEuaQ9ozb0dbe9BSYi-RMV2-83xKPZ6DVMU,20347
174
174
  biopipen/scripts/tcr/CloneSizeQQPlot.R,sha256=5FPfWQjxTsv59KSDQaDWj3C95zPQMngKG7qOf95NEzI,4527
175
175
  biopipen/scripts/tcr/GIANA/GIANA.py,sha256=0qLhgCWxT8K-4JvORA03CzBPTT5pd4Di5B_DgrHXbFA,47198
176
176
  biopipen/scripts/tcr/GIANA/GIANA4.py,sha256=Z7Q3cUr1Pvmy4CFADN0P7i9g1-HbzWROMqk5HvL_F1Q,45762
@@ -229,7 +229,7 @@ biopipen/utils/gene.R,sha256=BzAwlLA8hO12vF-3t6IwEuTEeLa_jBll4zm_5qe3qoE,1243
229
229
  biopipen/utils/gene.py,sha256=qE_BqTayrJWxRdniffhcz6OhZcw9GUoOrj2EtFWH9Gw,2246
230
230
  biopipen/utils/gsea.R,sha256=UMQOlWGstQTOBScvy1wIzrB7I3CE28Xo2v1sy4lmJ-M,7549
231
231
  biopipen/utils/io.R,sha256=jIYdqdn0iRWfQYAZa5CjXi3fikqmYvPPLIXhobRe8sw,537
232
- biopipen/utils/misc.R,sha256=sB2cM-sJn9H90FAZD89uNUYPU5k_6BT8d_nG33fI7d4,5520
232
+ biopipen/utils/misc.R,sha256=yo6mp6lBiKCPpSuAmfETNJSQJDduTbEXa_56jmqs_VE,6805
233
233
  biopipen/utils/misc.py,sha256=BpqPVgp_IlsUZow5P4mEtbPMjhO_vEb5atrF7iJ_xhU,3509
234
234
  biopipen/utils/mutate_helpers.R,sha256=Bqy6Oi4rrPEPJw0Jq32bVAwwBfZv7JJL9jFcK5x-cek,17649
235
235
  biopipen/utils/plot.R,sha256=pzl37PomNeUZPxohHZ2w93j3Fc4T0Qrc62FF-9MTKdw,4417
@@ -237,7 +237,7 @@ biopipen/utils/reference.py,sha256=6bPSwQa-GiDfr7xLR9a5T64Ey40y24yn3QfQ5wDFZkU,4
237
237
  biopipen/utils/rnaseq.R,sha256=Ro2B2dG-Z2oVaT5tkwp9RHBz4dp_RF-JcizlM5GYXFs,1298
238
238
  biopipen/utils/single_cell.R,sha256=pJjYP8bIZpNAtTQ32rOXhZxaM1Y-6D-xUcK3pql9tbk,4316
239
239
  biopipen/utils/vcf.py,sha256=ajXs0M_QghEctlvUlSRjWQIABVF02wPdYd-0LP4mIsU,9377
240
- biopipen-0.26.0.dist-info/METADATA,sha256=kyC-B-tDvcgEtVjGgqbyobl0IUKgVcYl7Vwa959Arz0,878
241
- biopipen-0.26.0.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
242
- biopipen-0.26.0.dist-info/entry_points.txt,sha256=mf2ju-IhPRJtq0wHOKJAYIwhrRt41QFOfAOYwMfYyh4,625
243
- biopipen-0.26.0.dist-info/RECORD,,
240
+ biopipen-0.26.1.dist-info/METADATA,sha256=jpb9Z7AVsQ7LN-Zhza6QDrD1yDPWBuIcOwrajRsJV5M,878
241
+ biopipen-0.26.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
242
+ biopipen-0.26.1.dist-info/entry_points.txt,sha256=wu70aoBcv1UahVbB_5237MY-9M9_mzqmWjDD-oi3yz0,621
243
+ biopipen-0.26.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.8.1
2
+ Generator: poetry-core 1.9.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -11,11 +11,11 @@ delim=biopipen.ns.delim
11
11
  gene=biopipen.ns.gene
12
12
  gsea=biopipen.ns.gsea
13
13
  misc=biopipen.ns.misc
14
- plink=biopipen.ns.plink
15
14
  plot=biopipen.ns.plot
16
15
  rnaseq=biopipen.ns.rnaseq
17
16
  scrna=biopipen.ns.scrna
18
17
  scrna_metabolic_landscape=biopipen.ns.scrna_metabolic_landscape
18
+ snp=biopipen.ns.snp
19
19
  stats=biopipen.ns.stats
20
20
  tcgamaf=biopipen.ns.tcgamaf
21
21
  tcr=biopipen.ns.tcr