biopipen 0.27.9__py3-none-any.whl → 0.28.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.27.9"
1
+ __version__ = "0.28.1"
biopipen/ns/cellranger.py CHANGED
@@ -7,12 +7,15 @@ class CellRangerCount(Proc):
7
7
  """Run cellranger count
8
8
 
9
9
  to count gene expression and/or feature barcode reads
10
+ requires cellranger v7+.
10
11
 
11
12
  Input:
12
13
  fastqs: The input fastq files
13
14
  Either a list of fastq files or a directory containing fastq files
14
15
  If a directory is provided, it should be passed as a list with one
15
16
  element.
17
+ id: The id defining output directory. If not provided, it is inferred
18
+ from the fastq files.
16
19
 
17
20
  Output:
18
21
  outdir: The output directory
@@ -23,21 +26,28 @@ class CellRangerCount(Proc):
23
26
  ref: Path of folder containing 10x-compatible transcriptome reference
24
27
  tmpdir: Path to temporary directory, used to save the soft-lined fastq files
25
28
  to pass to cellranger
26
- include_introns: Set to false to exclude intronic reads in count.
29
+ include_introns (flag): Set to false to exclude intronic reads in count.
30
+ create_bam (flag): Enable or disable BAM file generation.
31
+ This is required by cellrange v8+. When using cellrange v8-, it will be
32
+ transformed to `--no-bam`.
27
33
  <more>: Other environment variables required by `cellranger count`
28
34
  See `cellranger count --help` for more details or
29
35
  https://www.10xgenomics.com/support/software/cell-ranger/advanced/cr-command-line-arguments#count
30
36
  """ # noqa: E501
31
- input = "fastqs:files"
37
+ input = "fastqs:files, id"
32
38
  output = """outdir:dir:
33
39
  {%- set fastqs = in.fastqs -%}
34
40
  {%- if len(fastqs) == 1 and isdir(fastqs[0]) -%}
35
41
  {%- set fastqs = fastqs[0] | glob: "*.fastq.gz" -%}
36
42
  {%- endif -%}
37
- {%- set sample = commonprefix(*fastqs) |
38
- regex_replace: "_L\\d+_?$", "" |
39
- regex_replace: "_S\\d+$", "" -%}
40
- {{- sample -}}
43
+ {%- if in.id -%}
44
+ {{in.id}}
45
+ {%- else -%}
46
+ {%- set id = commonprefix(*fastqs) |
47
+ regex_replace: "_L\\d+(:?_.*)?$", "" |
48
+ regex_replace: "_S\\d+$", "" -%}
49
+ {{- id -}}
50
+ {%- endif -%}
41
51
  """
42
52
  lang = config.lang.python
43
53
  envs = {
@@ -45,7 +55,8 @@ class CellRangerCount(Proc):
45
55
  "cellranger": config.exe.cellranger,
46
56
  "ref": config.ref.ref_cellranger_gex,
47
57
  "tmpdir": config.path.tmpdir,
48
- "include_introns": "true",
58
+ "include_introns": True,
59
+ "create_bam": False,
49
60
  }
50
61
  script = "file://../scripts/cellranger/CellRangerCount.py"
51
62
  plugin_opts = {
@@ -57,13 +68,16 @@ class CellRangerCount(Proc):
57
68
  class CellRangerVdj(Proc):
58
69
  """Run cellranger vdj
59
70
 
60
- to perform sequence assembly and paired clonotype calling
71
+ to perform sequence assembly and paired clonotype calling.
72
+ requires cellranger v7+.
61
73
 
62
74
  Input:
63
75
  fastqs: The input fastq files
64
76
  Either a list of fastq files or a directory containing fastq files
65
77
  If a directory is provided, it should be passed as a list with one
66
78
  element.
79
+ id: The id determining the output directory. If not provided, it is inferred
80
+ from the fastq files.
67
81
 
68
82
  Output:
69
83
  outdir: The output directory
@@ -78,16 +92,20 @@ class CellRangerVdj(Proc):
78
92
  See `cellranger vdj --help` for more details or
79
93
  https://www.10xgenomics.com/support/software/cell-ranger/advanced/cr-command-line-arguments#vdj
80
94
  """ # noqa: E501
81
- input = "fastqs:files"
95
+ input = "fastqs:files, id"
82
96
  output = """outdir:dir:
83
97
  {%- set fastqs = in.fastqs -%}
84
98
  {%- if len(fastqs) == 1 and isdir(fastqs[0]) -%}
85
99
  {%- set fastqs = fastqs[0] | glob: "*.fastq.gz" -%}
86
100
  {%- endif -%}
87
- {%- set sample = commonprefix(*fastqs) |
88
- regex_replace: "_L\\d+_?$", "" |
89
- regex_replace: "_S\\d+$", "" -%}
90
- {{- sample -}}
101
+ {%- if in.id -%}
102
+ {{in.id}}
103
+ {%- else -%}
104
+ {%- set id = commonprefix(*fastqs) |
105
+ regex_replace: "_L\\d+(:?_.*)?$", "" |
106
+ regex_replace: "_S\\d+$", "" -%}
107
+ {{- id -}}
108
+ {%- endif -%}
91
109
  """
92
110
  lang = config.lang.python
93
111
  envs = {
@@ -129,4 +147,5 @@ class CellRangerSummary(Proc):
129
147
  envs = {"group": None}
130
148
  plugin_opts = {
131
149
  "report": "file://../reports/cellranger/CellRangerSummary.svelte",
150
+ "report_paging": 8,
132
151
  }
@@ -7,6 +7,7 @@ from __future__ import annotations
7
7
  from typing import TYPE_CHECKING
8
8
 
9
9
  from diot import Diot
10
+ from pipen.utils import mark, is_loading_pipeline
10
11
  from pipen_args.procgroup import ProcGroup
11
12
 
12
13
  if TYPE_CHECKING:
@@ -17,28 +18,43 @@ class CellRangerCountPipeline(ProcGroup):
17
18
  """The cellranger count pipeline
18
19
 
19
20
  Run cellranger count for multiple samples and summarize the metrics.
21
+
22
+ Args:
23
+ input (type=list): The list of lists of fastq files.
24
+ or the list of comma-separated string of fastq files.
25
+ ids (type=list): The list of ids for the samples.
20
26
  """
21
- DEFAULTS = Diot(input=None)
27
+ DEFAULTS = Diot(input=None, ids=None)
22
28
 
23
29
  def post_init(self):
24
30
  """Check if the input is a list of fastq files"""
25
- if (
31
+ if not is_loading_pipeline() and (
26
32
  not isinstance(self.opts.input, (list, tuple))
27
33
  or len(self.opts.input) == 0
28
- or not isinstance(self.opts.input[0], (list, tuple))
29
34
  ):
30
35
  raise TypeError(
31
36
  "The input of `CellRangerCountPipeline` should be a list of lists of "
32
37
  "fastq files."
33
38
  )
34
39
 
40
+ if isinstance(self.opts.input, (list, tuple)):
41
+ self.opts.input = [
42
+ [y.strip() for y in x.split(",")]
43
+ if isinstance(x, str)
44
+ else x
45
+ for x in self.opts.input
46
+ ]
47
+
35
48
  @ProcGroup.add_proc
36
49
  def p_cellranger_count(self) -> Proc:
37
50
  """Build CellRangerCount process"""
38
51
  from .cellranger import CellRangerCount as _CellRangerCount
39
52
 
40
53
  class CellRangerCount(_CellRangerCount):
41
- input_data = self.opts.input
54
+ if self.opts.ids:
55
+ input_data = list(zip(self.opts.input, self.opts.ids))
56
+ else:
57
+ input_data = self.opts.input
42
58
 
43
59
  return CellRangerCount
44
60
 
@@ -58,28 +74,43 @@ class CellRangerVdjPipeline(ProcGroup):
58
74
  """The cellranger vdj pipeline
59
75
 
60
76
  Run cellranger vdj for multiple samples and summarize the metrics.
77
+
78
+ Args:
79
+ input (type=list): The list of lists of fastq files.
80
+ or the list of comma-separated string of fastq files.
81
+ ids (type=list): The list of ids for the samples.
61
82
  """
62
- DEFAULTS = Diot(input=None)
83
+ DEFAULTS = Diot(input=None, ids=None)
63
84
 
64
85
  def post_init(self):
65
86
  """Check if the input is a list of fastq files"""
66
- if (
87
+ if not is_loading_pipeline() and (
67
88
  not isinstance(self.opts.input, (list, tuple))
68
89
  or len(self.opts.input) == 0
69
- or not isinstance(self.opts.input[0], (list, tuple))
70
90
  ):
71
91
  raise TypeError(
72
92
  "The input of `CellRangerVdjPipeline` should be a list of lists of "
73
93
  "fastq files."
74
94
  )
75
95
 
96
+ if isinstance(self.opts.input, (list, tuple)):
97
+ self.opts.input = [
98
+ [y.strip() for y in x.split(",")]
99
+ if isinstance(x, str)
100
+ else x
101
+ for x in self.opts.input
102
+ ]
103
+
76
104
  @ProcGroup.add_proc
77
105
  def p_cellranger_vdj(self) -> Proc:
78
106
  """Build CellRangerVdj process"""
79
107
  from .cellranger import CellRangerVdj as _CellRangerVdj
80
108
 
81
109
  class CellRangerVdj(_CellRangerVdj):
82
- input_data = self.opts.input
110
+ if self.opts.ids:
111
+ input_data = list(zip(self.opts.input, self.opts.ids))
112
+ else:
113
+ input_data = self.opts.input
83
114
 
84
115
  return CellRangerVdj
85
116
 
biopipen/ns/scrna.py CHANGED
@@ -1689,11 +1689,11 @@ class CellTypeAnnotation(Proc):
1689
1689
  ///
1690
1690
 
1691
1691
  sccatch_args (ns): The arguments for `scCATCH::findmarkergene()` if `tool` is `sccatch`.
1692
- - species (choice): The specie of cells.
1693
- - Human: Human cells.
1694
- - Mouse: Mouse cells.
1692
+ - species: The specie of cells.
1695
1693
  - cancer: If the sample is from cancer tissue, then the cancer type may be defined.
1696
1694
  - tissue: Tissue origin of cells must be defined.
1695
+ - marker: The marker genes for cell type identification.
1696
+ - if_use_custom_marker (flag): Whether to use custom marker genes. If `True`, no `species`, `cancer`, and `tissue` are needed.
1697
1697
  - <more>: Other arguments for [`scCATCH::findmarkergene()`](https://rdrr.io/cran/scCATCH/man/findmarkergene.html).
1698
1698
  You can pass an RDS file to `sccatch_args.marker` to work as custom marker. If so,
1699
1699
  `if_use_custom_marker` will be set to `TRUE` automatically.
@@ -1743,7 +1743,13 @@ class CellTypeAnnotation(Proc):
1743
1743
  "sctype_tissue": None,
1744
1744
  "sctype_db": config.ref.sctype_db,
1745
1745
  "cell_types": [],
1746
- "sccatch_args": {},
1746
+ "sccatch_args": {
1747
+ "species": None,
1748
+ "cancer": "Normal",
1749
+ "tissue": None,
1750
+ "marker": None,
1751
+ "if_use_custom_marker": False,
1752
+ },
1747
1753
  "hitype_tissue": None,
1748
1754
  "hitype_db": None,
1749
1755
  "celltypist_args": {
@@ -5,23 +5,17 @@ from biopipen.utils.misc import run_command
5
5
 
6
6
  fastqs = {{in.fastqs | repr}} # pyright: ignore # noqa
7
7
  outdir = {{out.outdir | quote}} # pyright: ignore
8
+ id = {{out.outdir | basename | quote}} # pyright: ignore
8
9
 
9
10
  cellranger = {{envs.cellranger | quote}} # pyright: ignore
10
11
  tmpdir = Path({{envs.tmpdir | quote}}) # pyright: ignore
11
12
  ref = {{envs.ref | quote}} # pyright: ignore
12
13
  ncores = {{envs.ncores | int}} # pyright: ignore
14
+ include_introns = {{envs.include_introns | repr}}
15
+ create_bam = {{envs.create_bam | repr}}
13
16
 
14
- {% if "id" in envs -%}
15
- id = {{envs.id | quote}} # pyright: ignore
16
- {%- else -%}
17
- id = {{out.outdir | basename | quote}} # pyright: ignore
18
- {%- endif %}
19
-
20
- {% if "sample" in envs -%}
21
- sample = {{envs.sample | quote}} # pyright: ignore
22
- {%- else -%}
23
- sample = {{out.outdir | basename | quote}} # pyright: ignore
24
- {%- endif %}
17
+ include_introns = str(include_introns).lower()
18
+ create_bam = str(create_bam).lower()
25
19
 
26
20
  # create a temporary unique directory to store the soft-linked fastq files
27
21
  fastqdir = tmpdir / f"cellranger_count_{uuid.uuid4()}"
@@ -34,25 +28,35 @@ for fastq in fastqs:
34
28
  fastq = Path(fastq)
35
29
  (fastqdir / fastq.name).symlink_to(fastq)
36
30
 
37
- other_args = {{envs | dict_to_cli_args: dashify=True, exclude=['cellranger', 'transcriptome', 'ref', 'tmpdir', 'id', 'sample', 'ncores']}} # pyright: ignore
31
+ other_args = {{envs | dict_to_cli_args: dashify=True, exclude=['no_bam', 'create_bam', 'include_introns', 'cellranger', 'transcriptome', 'ref', 'tmpdir', 'id', 'ncores']}} # pyright: ignore
38
32
 
39
33
  command = [
40
34
  cellranger,
41
35
  "count",
42
36
  "--id",
43
37
  id,
44
- "--sample",
45
- sample,
46
38
  "--fastqs",
47
39
  fastqdir,
48
40
  "--transcriptome",
49
- ref,
41
+ Path(ref).resolve(),
50
42
  "--localcores",
51
43
  ncores,
52
44
  "--disable-ui",
45
+ "--include-introns",
46
+ include_introns,
53
47
  *other_args,
54
48
  ]
55
49
 
50
+ # check cellranger version
51
+ # cellranger cellranger-7.2.0
52
+ version = run_command([cellranger, "--version"], stdout = "RETURN")
53
+ version = version.replace("cellranger", "").replace("-", "").strip()
54
+ version = list(map(int, version.split(".")))
55
+ if version[0] >= 8:
56
+ command += ["--create-bam", create_bam]
57
+ elif not create_bam:
58
+ command += ["--no-bam"]
59
+
56
60
  run_command(command, fg=True, cwd=str(Path(outdir).parent))
57
61
 
58
62
  web_summary_html = Path(outdir) / "outs" / "web_summary.html"
@@ -68,7 +72,7 @@ print("# Modify web_summary.html to move javascript to a separate file")
68
72
  try:
69
73
  web_summary_js = Path(outdir) / "outs" / "web_summary.js"
70
74
  web_summary_content = web_summary_html.read_text()
71
- regex = re.compile(r"<script>(?=/\*! For license)(.+)</script>", re.DOTALL)
75
+ regex = re.compile(r"<script>(.+)</script>", re.DOTALL)
72
76
  web_summary_html.write_text(regex.sub(
73
77
  '<script src="web_summary.js"></script>',
74
78
  web_summary_content,
@@ -5,24 +5,13 @@ from biopipen.utils.misc import run_command
5
5
 
6
6
  fastqs = {{in.fastqs | repr}} # pyright: ignore # noqa
7
7
  outdir = {{out.outdir | quote}} # pyright: ignore
8
+ id = {{out.outdir | basename | quote}} # pyright: ignore
8
9
 
9
10
  cellranger = {{envs.cellranger | quote}} # pyright: ignore
10
11
  tmpdir = Path({{envs.tmpdir | quote}}) # pyright: ignore
11
12
  ref = {{envs.ref | quote}} # pyright: ignore
12
13
  ncores = {{envs.ncores | int}} # pyright: ignore
13
14
 
14
- {% if "id" in envs -%}
15
- id = {{envs.id | quote}} # pyright: ignore
16
- {%- else -%}
17
- id = {{out.outdir | basename | quote}} # pyright: ignore
18
- {%- endif %}
19
-
20
- {% if "sample" in envs -%}
21
- sample = {{envs.sample | quote}} # pyright: ignore
22
- {%- else -%}
23
- sample = {{out.outdir | basename | quote}} # pyright: ignore
24
- {%- endif %}
25
-
26
15
  # create a temporary unique directory to store the soft-linked fastq files
27
16
  fastqdir = tmpdir / f"cellranger_count_{uuid.uuid4()}"
28
17
  fastqdir.mkdir(parents=True, exist_ok=True)
@@ -34,19 +23,17 @@ for fastq in fastqs:
34
23
  fastq = Path(fastq)
35
24
  (fastqdir / fastq.name).symlink_to(fastq)
36
25
 
37
- other_args = {{envs | dict_to_cli_args: dashify=True, exclude=['cellranger', 'reference', 'ref', 'tmpdir', 'id', 'sample', 'ncores']}} # pyright: ignore
26
+ other_args = {{envs | dict_to_cli_args: dashify=True, exclude=['cellranger', 'reference', 'ref', 'tmpdir', 'id', 'ncores']}} # pyright: ignore
38
27
 
39
28
  command = [
40
29
  cellranger,
41
30
  "vdj",
42
31
  "--id",
43
32
  id,
44
- "--sample",
45
- sample,
46
33
  "--fastqs",
47
34
  fastqdir,
48
35
  "--reference",
49
- ref,
36
+ Path(ref).resolve(),
50
37
  "--localcores",
51
38
  ncores,
52
39
  "--disable-ui",
@@ -68,7 +55,7 @@ print("# Modify web_summary.html to move javascript to a separate file")
68
55
  try:
69
56
  web_summary_js = Path(outdir) / "outs" / "web_summary.js"
70
57
  web_summary_content = web_summary_html.read_text()
71
- regex = re.compile(r"<script>(?=/\*! For license)(.+)</script>", re.DOTALL)
58
+ regex = re.compile(r"<script>(.+)</script>", re.DOTALL)
72
59
  web_summary_html.write_text(regex.sub(
73
60
  '<script src="web_summary.js"></script>',
74
61
  web_summary_content,
@@ -7,19 +7,12 @@ outfile = {{out.outfile | r}}
7
7
  sccatch_args = {{envs.sccatch_args | r}}
8
8
  newcol = {{envs.newcol | r}}
9
9
 
10
- if (is.null(sccatch_args$tissue)) { stop("`envs.sccatch_args.tissue` origin of cells must be defined.") }
11
- if (is.null(sccatch_args$species)) {
12
- sccatch_args$species = "Human"
13
- }
14
10
  if (!is.null(sccatch_args$marker)) {
15
11
  cellmatch = readRDS(sccatch_args$marker)
16
12
  sccatch_args$if_use_custom_marker = TRUE
17
13
  }
18
14
  sccatch_args$marker = cellmatch
19
15
 
20
- if (is.null(sccatch_args$cancer)) {
21
- sccatch_args$cancer = "Normal"
22
- }
23
16
  if (is.integer(sccatch_args$use_method)) {
24
17
  sccatch_args$use_method = as.character(sccatch_args$use_method)
25
18
  }
@@ -30,6 +23,8 @@ obj = createscCATCH(data = GetAssayData(sobj), cluster = as.character(Idents(sob
30
23
  sccatch_args$object = obj
31
24
 
32
25
  obj = do_call(findmarkergene, sccatch_args)
26
+ obj = findcelltype(object = obj)
27
+
33
28
  write.table(
34
29
  obj@celltype,
35
30
  file = file.path(dirname(outfile), "cluster2celltype.tsv"),
@@ -360,6 +360,7 @@ do_case <- function(name, case) {
360
360
  }
361
361
 
362
362
  log_info(" Merging and saving pie charts ...")
363
+ devpars = case$devpars
363
364
  # assemble and save pie chart plots
364
365
  res <- devpars$res %||% 100
365
366
  # legend, cells_by names
@@ -405,6 +406,7 @@ do_case <- function(name, case) {
405
406
  }
406
407
 
407
408
  col_fun <- colorRamp2(c(0, max(hmdata, na.rm = T)), c("lightyellow", "purple"))
409
+ hm_devpars <- case$hm_devpars
408
410
  hm_res <- hm_devpars$res %||% 100
409
411
  hm_width <- hm_devpars$width %||% (600 + 15 * length(unique(meta$seurat_clusters)) + extra_width)
410
412
  hm_height <- hm_devpars$height %||% (450 + 15 * cells_rows + extra_height)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: biopipen
3
- Version: 0.27.9
3
+ Version: 0.28.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=sJWdNHkiTx9zQyc6_YJknVzen19cpBrSswdfVQaZ7S8,23
1
+ biopipen/__init__.py,sha256=ZRQKbgDaGz_yuLk-cUKuk6ZBKCSRKZC8nQd041NRNXk,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
@@ -10,8 +10,8 @@ biopipen/ns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  biopipen/ns/bam.py,sha256=5AsYrB0mtr_mH6mCL6gjJ5rC4NywpjFkpFjUrBGp7Fk,9301
11
11
  biopipen/ns/bcftools.py,sha256=puCDfIL-1z6cz2y1Rlz-ESNIr8xJgeIjEQ440qicCvM,3467
12
12
  biopipen/ns/bed.py,sha256=UN38qUChDeE-ipuSBY8RVLwvJqM2wxSRmlhOiDo4JG0,5395
13
- biopipen/ns/cellranger.py,sha256=2FwE8YNsGEXn-vS0AmO7m5xmlTgNQjL1lhWUeJ6XNJA,4796
14
- biopipen/ns/cellranger_pipeline.py,sha256=D6gvIeasHjDCdro7f4wjomxRYTtsJT77Ld47XzlU3Fw,2891
13
+ biopipen/ns/cellranger.py,sha256=yPBoNzVSY74J7uyVucaob5lqZKKru5-hYSM4f4Nr2OY,5553
14
+ biopipen/ns/cellranger_pipeline.py,sha256=lyRUdJEeQaTWGUz5UbrSdHMH_cgzXAXLlERmanppEBs,4037
15
15
  biopipen/ns/cnv.py,sha256=vq6dZfEOyuVuqg3nP6FQtNmQ-JocpBJMX9IYlZ0OPD0,6803
16
16
  biopipen/ns/cnvkit.py,sha256=5mA2Q8-YDs4g1HoxtpB_NWnyZYwEThNr3s3wlubLQrQ,31130
17
17
  biopipen/ns/cnvkit_pipeline.py,sha256=2fJLn70L2jJ81ZMNdnU84Sf3HoKA2CSnHuDzLGR8jmw,36854
@@ -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=fzJAKKl4a_tsVkLREGCQTFVHP049m33LdWgeYRb6v7M,5483
23
23
  biopipen/ns/rnaseq.py,sha256=bKAa6friFWof4yDTWZQahm1MS-lrdetO1GqDKdfxXYc,7708
24
- biopipen/ns/scrna.py,sha256=KL5Eu0mnIITLLSHAIz_sgr4ssmEU6AuBDXwedqYU7BI,105633
24
+ biopipen/ns/scrna.py,sha256=OCEuE-TcqR7ADEEsgA6qL9rDK5R75YWRmmmvaNIFtZU,105925
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
@@ -81,9 +81,9 @@ biopipen/scripts/bed/Bed2Vcf.py,sha256=u0mp_2Y4UtEA839zq9UENesH6Gyiwd4sZQW9wFnBV
81
81
  biopipen/scripts/bed/BedConsensus.py,sha256=gfAxuIalvCEpS0tiOyAJGPYGgHN0L-hm0K37Iteh5yw,2386
82
82
  biopipen/scripts/bed/BedLiftOver.sh,sha256=Y4gBsz9w4zhE29UmWojO6F4PXMMMWC1uCzjrxa19eOs,256
83
83
  biopipen/scripts/bed/BedtoolsMerge.py,sha256=TjKO5MpUzDj931bQAWku2660MVSiZzdMHt_v2Xbt0IE,355
84
- biopipen/scripts/cellranger/CellRangerCount.py,sha256=ZDcry8suLhulXiTsl01LGKmSJkewJ-TgHazLtfsBr6U,2516
84
+ biopipen/scripts/cellranger/CellRangerCount.py,sha256=Mi6PiufFPp-cb4WRgZhniXi2ja5VUusRDW9RdAqFyX0,2831
85
85
  biopipen/scripts/cellranger/CellRangerSummary.R,sha256=8EqP4j074RLi5Adw47xyqQwkDEcvSS6Yfk0UgKKYOuo,11045
86
- biopipen/scripts/cellranger/CellRangerVdj.py,sha256=-QbhPKqFBZ15Es6NJaU7Lwf1KQW_3Lyv0aISh-Urk2M,2504
86
+ biopipen/scripts/cellranger/CellRangerVdj.py,sha256=ipGkPzkiVy5IpPrYKUK4zgEIvz-aMJOKbMEN-bMStFE,2200
87
87
  biopipen/scripts/cnv/AneuploidyScore.R,sha256=liAN8u8_lj8voJ01oBW9Dw09yi388KF5f_gwPOv0wdE,8437
88
88
  biopipen/scripts/cnv/AneuploidyScoreSummary.R,sha256=9Zni5zqYfzevs5XSAt3fqD9WZ_RWr_ByUnXReKLLWoY,12337
89
89
  biopipen/scripts/cnv/TMADScore.R,sha256=uCLHQR6sMt-4uVUAEJlJxYXlai9ZE5J7xBl0sl-EkjU,1065
@@ -121,10 +121,10 @@ biopipen/scripts/scrna/AnnData2Seurat.R,sha256=16ASr8B7B7tj7hZpwL31v6GASfh8wcBwI
121
121
  biopipen/scripts/scrna/CellTypeAnnotation-celltypist.R,sha256=Hzqt-I41ThiSGPzqrg5ma4IQbCDnM1ztfTscPqthdfM,9009
122
122
  biopipen/scripts/scrna/CellTypeAnnotation-direct.R,sha256=ST7hJo6IY3-lfj1ymFCxxTH4cAsu8CVTcOKpELBeyuo,1855
123
123
  biopipen/scripts/scrna/CellTypeAnnotation-hitype.R,sha256=6_DBAlLKcHqaMyWGZWvTd4gFfHymfz9s2XLja8aj1qA,1869
124
- biopipen/scripts/scrna/CellTypeAnnotation-sccatch.R,sha256=1ejye0hs-EOwzzdP9gFWSLPcF6dOAA6VmNKXEjmS11E,1654
124
+ biopipen/scripts/scrna/CellTypeAnnotation-sccatch.R,sha256=HO1ta0VWdBY1SuUNDqeb_Rp3UrbcqJgGpglegvMUGpw,1435
125
125
  biopipen/scripts/scrna/CellTypeAnnotation-sctype.R,sha256=1nKRtzhVoJ9y0yMg1sgI6u7czsrk2cN0FvNUCZo8l-o,3878
126
126
  biopipen/scripts/scrna/CellTypeAnnotation.R,sha256=OwLM_G4D7TG4HhIJjQxgIQM92X86lsWp9MVyXTTkLSc,618
127
- biopipen/scripts/scrna/CellsDistribution.R,sha256=isDr5-EWvOeWwVZdjOSsdX3QUpEaDvQFulIYawqFaQc,18854
127
+ biopipen/scripts/scrna/CellsDistribution.R,sha256=lCobUWmNv97PF0HwwRbn9CGAJ1HGRuzlJe6CvlUijf0,18915
128
128
  biopipen/scripts/scrna/DimPlots.R,sha256=-mXOTMnpPxvR30XLjwcohFfFx7xTqWKKiICwJiD6yEo,1554
129
129
  biopipen/scripts/scrna/ExprImputation-alra.R,sha256=w3W1txJcdWg52-SETY2Z0lO7maDNfiMjBYIGN587YW0,843
130
130
  biopipen/scripts/scrna/ExprImputation-rmagic.R,sha256=jYIfqZpnvjKJkvItLnemPVtUApHBYQi1_L8rHVbEe1M,735
@@ -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.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,,
243
+ biopipen-0.28.1.dist-info/METADATA,sha256=UPLio_HdqVCyeNe2VCcUTZXz1CGakrQFH7_Dbb9qnHQ,882
244
+ biopipen-0.28.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
245
+ biopipen-0.28.1.dist-info/entry_points.txt,sha256=wu70aoBcv1UahVbB_5237MY-9M9_mzqmWjDD-oi3yz0,621
246
+ biopipen-0.28.1.dist-info/RECORD,,