biopipen 0.28.1__py3-none-any.whl → 0.29.0__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.

Files changed (82) hide show
  1. biopipen/__init__.py +1 -1
  2. biopipen/core/config.toml +8 -0
  3. biopipen/ns/bam.py +0 -2
  4. biopipen/ns/bed.py +35 -0
  5. biopipen/ns/cellranger_pipeline.py +5 -5
  6. biopipen/ns/cnv.py +18 -2
  7. biopipen/ns/cnvkit_pipeline.py +16 -11
  8. biopipen/ns/gene.py +68 -23
  9. biopipen/ns/misc.py +2 -15
  10. biopipen/ns/plot.py +146 -0
  11. biopipen/ns/regulation.py +214 -0
  12. biopipen/ns/scrna.py +15 -3
  13. biopipen/ns/snp.py +516 -8
  14. biopipen/ns/stats.py +74 -2
  15. biopipen/ns/vcf.py +196 -0
  16. biopipen/reports/snp/PlinkCallRate.svelte +24 -0
  17. biopipen/reports/snp/PlinkFreq.svelte +18 -0
  18. biopipen/reports/snp/PlinkHWE.svelte +18 -0
  19. biopipen/reports/snp/PlinkHet.svelte +18 -0
  20. biopipen/reports/snp/PlinkIBD.svelte +18 -0
  21. biopipen/scripts/bam/CNVpytor.py +144 -46
  22. biopipen/scripts/bed/BedtoolsIntersect.py +54 -0
  23. biopipen/scripts/bed/BedtoolsMerge.py +1 -1
  24. biopipen/scripts/cnv/AneuploidyScore.R +30 -7
  25. biopipen/scripts/cnv/AneuploidyScoreSummary.R +5 -2
  26. biopipen/scripts/cnv/TMADScore.R +21 -5
  27. biopipen/scripts/cnv/TMADScoreSummary.R +6 -2
  28. biopipen/scripts/cnvkit/CNVkitAccess.py +2 -1
  29. biopipen/scripts/cnvkit/CNVkitAutobin.py +3 -2
  30. biopipen/scripts/cnvkit/CNVkitBatch.py +1 -1
  31. biopipen/scripts/cnvkit/CNVkitCoverage.py +2 -1
  32. biopipen/scripts/cnvkit/CNVkitGuessBaits.py +1 -1
  33. biopipen/scripts/cnvkit/CNVkitHeatmap.py +1 -1
  34. biopipen/scripts/cnvkit/CNVkitReference.py +2 -1
  35. biopipen/scripts/gene/GeneNameConversion.R +65 -0
  36. biopipen/scripts/gene/GenePromoters.R +61 -0
  37. biopipen/scripts/misc/Shell.sh +15 -0
  38. biopipen/scripts/plot/Manhattan.R +140 -0
  39. biopipen/scripts/plot/QQPlot.R +62 -0
  40. biopipen/scripts/regulation/MotifAffinityTest.R +226 -0
  41. biopipen/scripts/regulation/MotifAffinityTest_AtSNP.R +126 -0
  42. biopipen/scripts/regulation/MotifAffinityTest_MotifBreakR.R +96 -0
  43. biopipen/scripts/regulation/MotifScan.py +159 -0
  44. biopipen/scripts/regulation/atSNP.R +33 -0
  45. biopipen/scripts/regulation/motifBreakR.R +1594 -0
  46. biopipen/scripts/scrna/MarkersFinder.R +59 -67
  47. biopipen/scripts/scrna/SeuratClustering.R +63 -29
  48. biopipen/scripts/scrna/SeuratMap2Ref.R +20 -0
  49. biopipen/scripts/scrna/SeuratSubClustering.R +76 -27
  50. biopipen/scripts/snp/MatrixEQTL.R +84 -43
  51. biopipen/scripts/snp/Plink2GTMat.py +133 -0
  52. biopipen/scripts/snp/PlinkCallRate.R +190 -0
  53. biopipen/scripts/snp/PlinkFilter.py +100 -0
  54. biopipen/scripts/snp/PlinkFreq.R +298 -0
  55. biopipen/scripts/snp/PlinkFromVcf.py +78 -0
  56. biopipen/scripts/snp/PlinkHWE.R +80 -0
  57. biopipen/scripts/snp/PlinkHet.R +92 -0
  58. biopipen/scripts/snp/PlinkIBD.R +197 -0
  59. biopipen/scripts/snp/PlinkUpdateName.py +124 -0
  60. biopipen/scripts/stats/MetaPvalue.R +2 -1
  61. biopipen/scripts/stats/MetaPvalue1.R +70 -0
  62. biopipen/scripts/tcr/TCRClusterStats.R +12 -7
  63. biopipen/scripts/vcf/BcftoolsAnnotate.py +91 -0
  64. biopipen/scripts/vcf/BcftoolsFilter.py +90 -0
  65. biopipen/scripts/vcf/BcftoolsSort.py +113 -0
  66. biopipen/scripts/vcf/BcftoolsView.py +73 -0
  67. biopipen/scripts/vcf/VcfFix_utils.py +1 -1
  68. biopipen/scripts/vcf/bcftools_utils.py +52 -0
  69. biopipen/utils/gene.R +83 -37
  70. biopipen/utils/gene.py +108 -60
  71. biopipen/utils/misc.R +56 -0
  72. biopipen/utils/misc.py +5 -2
  73. biopipen/utils/reference.py +54 -10
  74. {biopipen-0.28.1.dist-info → biopipen-0.29.0.dist-info}/METADATA +2 -2
  75. {biopipen-0.28.1.dist-info → biopipen-0.29.0.dist-info}/RECORD +77 -49
  76. {biopipen-0.28.1.dist-info → biopipen-0.29.0.dist-info}/entry_points.txt +1 -1
  77. biopipen/ns/bcftools.py +0 -111
  78. biopipen/scripts/bcftools/BcftoolsAnnotate.py +0 -42
  79. biopipen/scripts/bcftools/BcftoolsFilter.py +0 -79
  80. biopipen/scripts/bcftools/BcftoolsSort.py +0 -19
  81. biopipen/scripts/gene/GeneNameConversion.py +0 -66
  82. {biopipen-0.28.1.dist-info → biopipen-0.29.0.dist-info}/WHEEL +0 -0
@@ -1,5 +1,10 @@
1
+ """Utilities for indexing reference files"""
2
+ from __future__ import annotations
3
+
1
4
  import tempfile
5
+ from os import PathLike
2
6
  from pathlib import Path
7
+ from typing import Literal
3
8
 
4
9
  from ..core.config import config
5
10
  from biopipen.utils.misc import run_command
@@ -18,7 +23,12 @@ def gztype(gzfile):
18
23
  return "flat"
19
24
 
20
25
 
21
- def tabix_index(infile, preset, tmpdir=None, tabix=config.exe.tabix):
26
+ def tabix_index(
27
+ infile: str | PathLike,
28
+ preset: Literal["gff", "bed", "sam", "vcf", "gaf"],
29
+ tmpdir: bool | str | PathLike | None = None,
30
+ tabix: str = config.exe.tabix,
31
+ ) -> str | PathLike:
22
32
  """Index input file using tabix
23
33
 
24
34
  1. Try to check if there is an index file in the same directory where infile
@@ -28,22 +38,47 @@ def tabix_index(infile, preset, tmpdir=None, tabix=config.exe.tabix):
28
38
  it in tmpdir
29
39
  4. Index the bgzipped file and return the bgzipped file
30
40
 
41
+ Args:
42
+ infile: The input file to be indexed
43
+ preset: The preset used to index the file
44
+ tmpdir: The directory to link the infile there and index it
45
+ If False, try to index the infile directly. The directory where
46
+ the infile is should be writable.
47
+ tabix: The path to tabix
48
+
31
49
  Returns:
32
50
  The infile itself or re-bgzipped infile. This file comes with the
33
51
  index file in the same directory
34
52
  """
35
- if tmpdir is None:
36
- tmpdir = Path(tempfile.mkdtemp(prefix="biopipen_tabix_index_"))
37
- else:
38
- tmpdir = Path(tmpdir)
39
53
 
40
54
  infile = Path(infile)
41
55
  gt = gztype(infile)
42
-
43
- if gt == "bgzip" and infile.with_suffix(infile.suffix + ".tbi").is_file():
56
+ index_file = infile.with_suffix(infile.suffix + ".tbi")
57
+ # if index file exists, and it's newer than the infile, return infile
58
+ if (
59
+ gt == "bgzip"
60
+ and index_file.is_file()
61
+ and index_file.stat().st_mtime > infile.resolve().stat().st_mtime
62
+ ):
44
63
  # only bgzipped file is possible to have index file
45
64
  return infile
46
65
 
66
+ if tmpdir is False:
67
+ # index the infile directly
68
+ run_command([tabix, "-p", preset, infile], fg=True)
69
+ return infile
70
+
71
+ if tmpdir is None:
72
+ from hashlib import md5
73
+ # use a hash of infile to create the tempdir
74
+ tmpdir = Path(tempfile.gettempdir()).joinpath(
75
+ f"biopipen_tabix_index_{md5(str(infile).encode()).hexdigest()}"
76
+ )
77
+ else:
78
+ tmpdir = Path(tmpdir)
79
+
80
+ tmpdir.mkdir(exist_ok=True, parents=True)
81
+
47
82
  # /path/to/some.vcf -> some.vcf
48
83
  # /path/to/some.vcf.gz -> some.vcf
49
84
  basename = infile.stem if infile.name.endswith(".gz") else infile.name
@@ -53,15 +88,24 @@ def tabix_index(infile, preset, tmpdir=None, tabix=config.exe.tabix):
53
88
  if gt == "gzip":
54
89
  # re-bgzip
55
90
  run_command(
56
- ["gunzip", "-c", infile], stdout=new_infile.with_suffix(""),
91
+ ["gunzip", "-f", "-c", infile], stdout=new_infile.with_suffix(""),
57
92
  )
58
- run_command(["bgzip", new_infile.with_suffix("")], fg=True)
93
+ run_command(["bgzip", "-f", new_infile.with_suffix("")], fg=True)
59
94
  elif gt == "flat":
60
- run_command(["bgzip", "-c", infile], stdout=new_infile)
95
+ run_command(["bgzip", "-f", "-c", infile], stdout=new_infile)
61
96
  else:
97
+ if new_infile.is_symlink():
98
+ new_infile.unlink()
62
99
  # directory of infile may not have write permission
63
100
  new_infile.symlink_to(infile)
64
101
 
102
+ new_index_file = new_infile.with_suffix(new_infile.suffix + ".tbi")
103
+ if (
104
+ new_index_file.is_file()
105
+ and new_index_file.stat().st_mtime > infile.resolve().stat().st_mtime
106
+ ):
107
+ return new_infile
108
+
65
109
  run_command([tabix, "-p", preset, new_infile], fg=True)
66
110
  return new_infile
67
111
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: biopipen
3
- Version: 0.28.1
3
+ Version: 0.29.0
4
4
  Summary: Bioinformatics processes/pipelines that can be run from `pipen run`
5
5
  License: MIT
6
6
  Author: pwwang
@@ -16,7 +16,7 @@ Provides-Extra: runinfo
16
16
  Requires-Dist: datar[pandas] (>=0.15.6,<0.16.0)
17
17
  Requires-Dist: pipen-board[report] (>=0.15,<0.16)
18
18
  Requires-Dist: pipen-cli-run (>=0.13,<0.14)
19
- Requires-Dist: pipen-filters (>=0.12,<0.13)
19
+ Requires-Dist: pipen-filters (>=0.13,<0.14)
20
20
  Requires-Dist: pipen-poplog (>=0.1.2,<0.2.0)
21
21
  Requires-Dist: pipen-runinfo (>=0.6,<0.7) ; extra == "runinfo"
22
22
  Requires-Dist: pipen-verbose (>=0.11,<0.12)
@@ -1,33 +1,33 @@
1
- biopipen/__init__.py,sha256=ZRQKbgDaGz_yuLk-cUKuk6ZBKCSRKZC8nQd041NRNXk,23
1
+ biopipen/__init__.py,sha256=RvbohpnoJRSLAwJOFoWTtu5c5Vpi5vWAfsKR12hwJVI,23
2
2
  biopipen/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  biopipen/core/config.py,sha256=edK5xnDhM8j27srDzsxubi934NMrglLoKrdcC8qsEPk,1069
4
- biopipen/core/config.toml,sha256=20RCI30Peee1EQdfb_UbV3Hf74XUPndJnYZlUThytsw,1781
4
+ biopipen/core/config.toml,sha256=IL31RfhuF-6V46lvLs1F-Z4SPmUuTvWzk5PN37Xjrqc,1907
5
5
  biopipen/core/defaults.py,sha256=yPeehPLk_OYCf71IgRVCWuQRxLAMixDF81Ium0HtPKI,344
6
6
  biopipen/core/filters.py,sha256=-OIzS5F_yNZ0Nk5Ci16BepPWqLOGBmYVqX3W98RSK9Y,12488
7
7
  biopipen/core/proc.py,sha256=60lUP3PcUAaKbDETo9N5PEIoeOYrLgcSmuytmrhcx8g,912
8
8
  biopipen/core/testing.py,sha256=lZ_R5ZbYPO2NPuLHdbzg6HbD_f4j8paVVbyeUqwg6FE,3411
9
9
  biopipen/ns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- biopipen/ns/bam.py,sha256=5AsYrB0mtr_mH6mCL6gjJ5rC4NywpjFkpFjUrBGp7Fk,9301
11
- biopipen/ns/bcftools.py,sha256=puCDfIL-1z6cz2y1Rlz-ESNIr8xJgeIjEQ440qicCvM,3467
12
- biopipen/ns/bed.py,sha256=UN38qUChDeE-ipuSBY8RVLwvJqM2wxSRmlhOiDo4JG0,5395
10
+ biopipen/ns/bam.py,sha256=jLhIztPiKsGfMpDgbcEpsybFskKkquIx9OKyTOc_L7Q,9172
11
+ biopipen/ns/bed.py,sha256=HsTCJge7XNfCZyCBJ4iifNKQ5we4VZSpRx8XL8--y5A,6689
13
12
  biopipen/ns/cellranger.py,sha256=yPBoNzVSY74J7uyVucaob5lqZKKru5-hYSM4f4Nr2OY,5553
14
- biopipen/ns/cellranger_pipeline.py,sha256=lyRUdJEeQaTWGUz5UbrSdHMH_cgzXAXLlERmanppEBs,4037
15
- biopipen/ns/cnv.py,sha256=vq6dZfEOyuVuqg3nP6FQtNmQ-JocpBJMX9IYlZ0OPD0,6803
13
+ biopipen/ns/cellranger_pipeline.py,sha256=EWkPJTujamNSMQoRnKfhUiIj6TkMfRmCSUbPfd8Tv8E,4011
14
+ biopipen/ns/cnv.py,sha256=ssQAHf2MB675avoXVRkYy0vGiqIpRpRExywjhbymmBI,7811
16
15
  biopipen/ns/cnvkit.py,sha256=5mA2Q8-YDs4g1HoxtpB_NWnyZYwEThNr3s3wlubLQrQ,31130
17
- biopipen/ns/cnvkit_pipeline.py,sha256=2fJLn70L2jJ81ZMNdnU84Sf3HoKA2CSnHuDzLGR8jmw,36854
16
+ biopipen/ns/cnvkit_pipeline.py,sha256=DZZljwvwVEI9sRUYBdxkOIT5-CIPLH1tag_OIU86aes,37094
18
17
  biopipen/ns/delim.py,sha256=fejsh4KW1TG5oMZzAC238LvQhBz7brXkfl3BHfnLK5M,5612
19
- biopipen/ns/gene.py,sha256=Q5FzRByfnRITXRNRZR65ApG09FRyiihRC3TcIXxufzE,2228
18
+ biopipen/ns/gene.py,sha256=rty-Bjcf87v2vyb9X4kRvfrQ6XQYXgN4f2ftFO0nWA8,3888
20
19
  biopipen/ns/gsea.py,sha256=EsNRAPYsagaV2KYgr4Jv0KCnZGqayM209v4yOGGTIOI,7423
21
- biopipen/ns/misc.py,sha256=fzn0pXvdghMkQhu-e3MMapPNMyO6IAJbtTzVU3GbFa0,3246
22
- biopipen/ns/plot.py,sha256=fzJAKKl4a_tsVkLREGCQTFVHP049m33LdWgeYRb6v7M,5483
20
+ biopipen/ns/misc.py,sha256=qXcm0RdR6W-xpYGgQn3v7JBeYRWwVm5gtgSj2tdVxx4,2935
21
+ biopipen/ns/plot.py,sha256=PWPJg1Tly465drYxKMbfrFL4waWNrDG0plgYZeEA7Po,11972
22
+ biopipen/ns/regulation.py,sha256=3esve77YuB-vYNoxYZl15GAd3HELX8FauBcrA2X3-mM,11750
23
23
  biopipen/ns/rnaseq.py,sha256=bKAa6friFWof4yDTWZQahm1MS-lrdetO1GqDKdfxXYc,7708
24
- biopipen/ns/scrna.py,sha256=OCEuE-TcqR7ADEEsgA6qL9rDK5R75YWRmmmvaNIFtZU,105925
24
+ biopipen/ns/scrna.py,sha256=XQxdHDZjSt0TWTu-6mshYOmPwPg9a86siaYngBku90s,106954
25
25
  biopipen/ns/scrna_metabolic_landscape.py,sha256=6AhaynGG3lNRi96N2tReVT46BJMuEwooSSd2irBoN80,28347
26
- biopipen/ns/snp.py,sha256=EQ2FS0trQ7YThPmBVTpS66lc2OSfgQ6lCh6WnyP-C2g,5499
27
- biopipen/ns/stats.py,sha256=yJ6C1CXF84T7DDs9mgufqUOr89Rl6kybE5ji8Vnx6cw,13693
26
+ biopipen/ns/snp.py,sha256=-Jx5Hsv_7KV7TqLU0nHCaPkMEN0CFdi4tNVlyq0rUZ4,27259
27
+ biopipen/ns/stats.py,sha256=57UF9keLEGxg49R9C2Omx0WIXkPSHvLNxGxO3Xzap2M,16568
28
28
  biopipen/ns/tcgamaf.py,sha256=AFbUJIxiMSvsVY3RcHgjRFuMnNh2DG3Mr5slLNEyz6o,1455
29
29
  biopipen/ns/tcr.py,sha256=0PCF8iPZ629z6P3RHoAWEpMWmuDslomTGcMopjqvXmE,88304
30
- biopipen/ns/vcf.py,sha256=cdkKroii0_nl_bSP2cnO09qESUAhHqu6btOiTSKS79Y,15314
30
+ biopipen/ns/vcf.py,sha256=0aKH_YSLy_-JzV-_VZb0EoScv7JKGrDU7BaeWHjDuRo,22699
31
31
  biopipen/ns/web.py,sha256=3zucrDo-IVsSnIvlw-deoScuxqWa6OMTm8Vo-R4E44Q,2224
32
32
  biopipen/reports/bam/CNAClinic.svelte,sha256=D4IxQcgDCPQZMbXog-aZP5iJEQTK2N4i0C60e_iXyfs,213
33
33
  biopipen/reports/bam/CNVpytor.svelte,sha256=s03SlhbEPd8-_44Dy_cqE8FSErhUdqStLK39te5o7ZE,1364
@@ -58,6 +58,11 @@ biopipen/reports/scrna_metabolic_landscape/MetabolicFeatures.svelte,sha256=4M8V6
58
58
  biopipen/reports/scrna_metabolic_landscape/MetabolicFeaturesIntraSubset.svelte,sha256=7FohWYR2BEqo77W4FuGsuwEEvG7j_Mc2ohXG8TSgODg,907
59
59
  biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayActivity.svelte,sha256=bbPWDEXTi-A377Vo2VaEyh_VoxGmFj-P3WX8g_y_-9k,3416
60
60
  biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.svelte,sha256=TohFc1IsHFAio8WNu_1FoaJucxsW3OtmS7fIJOH5KHc,350
61
+ biopipen/reports/snp/PlinkCallRate.svelte,sha256=QoHqzJ88sx8d8FfH4ToFcR690RX0jmi2SaeWVAnw8y0,730
62
+ biopipen/reports/snp/PlinkFreq.svelte,sha256=gHN1SezJ5l732Ndtrl_xZABdWPoSvAWkRh1rKbcsD1c,535
63
+ biopipen/reports/snp/PlinkHWE.svelte,sha256=nes-NTwatoxvLoRBCg6jPp0fSg5kZZkVngURpfmM_nc,502
64
+ biopipen/reports/snp/PlinkHet.svelte,sha256=hlSGx3qVETvZg6cd6vf27EtGeRzwD86I01kMLyIHEC4,545
65
+ biopipen/reports/snp/PlinkIBD.svelte,sha256=s7nepF52Q4hKhRnIZDTFXqG7SIvhGy0NtfnTpexG0mE,507
61
66
  biopipen/reports/tcr/CDR3AAPhyschem.svelte,sha256=_r1pi_yTu_KjC02aegZ52IEQY8Mq0p3nqW_o9wOFWf8,1530
62
67
  biopipen/reports/tcr/CloneResidency.svelte,sha256=pzjkdGAhB7STxlXkTY5wnTT3plhkAPKMdGa6jwKuwoc,470
63
68
  biopipen/reports/tcr/Immunarch.svelte,sha256=jHOGUCWREaDNUf1_s6h9Kx_sp-y_dDRqY1rWrx0o0LM,433
@@ -72,47 +77,55 @@ biopipen/reports/vcf/TruvariConsistency.svelte,sha256=BBvtxi1EPmGH7j5M5zMOcLEhKW
72
77
  biopipen/scripts/bam/BamMerge.py,sha256=jyaJI0-TulAxaCzvrYjC8PujH_ECNInevnPbh2_XQtU,3477
73
78
  biopipen/scripts/bam/BamSplitChroms.py,sha256=b7GS2I4X0dLOhlPg_r9-buoIHTWlq6zHI3Rox94LXR8,4893
74
79
  biopipen/scripts/bam/CNAClinic.R,sha256=EbQ1s1_y2uCERTP1aP0Fwu_dO4n8k1YSMBswwVs0uDQ,5040
75
- biopipen/scripts/bam/CNVpytor.py,sha256=k7Ue_jh5Rp-qi6VDjkqLvbA47rMAyI-NBx7lv_otd2I,12893
80
+ biopipen/scripts/bam/CNVpytor.py,sha256=hOUli9BDMOoth0or-tjUYC1AP3yNOuxUS6G3Rhcg99s,18000
76
81
  biopipen/scripts/bam/ControlFREEC.py,sha256=oX6iWsos-CfiT_ViDBrKeMOOIVdCKWrB-_MqzLgEF9s,3267
77
- biopipen/scripts/bcftools/BcftoolsAnnotate.py,sha256=0OIiP9bfR81vU1fbVgRPh8j860AEUPJ4yWFQvuZNiuI,1339
78
- biopipen/scripts/bcftools/BcftoolsFilter.py,sha256=P7OV9fwMSfFgD7ZtLWrU1-T2Oph94ACqtBMGi-SYrOk,2278
79
- biopipen/scripts/bcftools/BcftoolsSort.py,sha256=0xXIUf1Po8QHe8XTC5SyU_6kmLopRgp8Z87NXwWl8Mc,639
80
82
  biopipen/scripts/bed/Bed2Vcf.py,sha256=u0mp_2Y4UtEA839zq9UENesH6Gyiwd4sZQW9wFnBVU0,5090
81
83
  biopipen/scripts/bed/BedConsensus.py,sha256=gfAxuIalvCEpS0tiOyAJGPYGgHN0L-hm0K37Iteh5yw,2386
82
84
  biopipen/scripts/bed/BedLiftOver.sh,sha256=Y4gBsz9w4zhE29UmWojO6F4PXMMMWC1uCzjrxa19eOs,256
83
- biopipen/scripts/bed/BedtoolsMerge.py,sha256=TjKO5MpUzDj931bQAWku2660MVSiZzdMHt_v2Xbt0IE,355
85
+ biopipen/scripts/bed/BedtoolsIntersect.py,sha256=sFyXPL3kG59xa5eJwHumcQLw3lfabOXsq2-k8IgIqt4,1722
86
+ biopipen/scripts/bed/BedtoolsMerge.py,sha256=7mt307V_wWa_ME0VfuMsVX0HgEwfDcZtY_bDvOPjFiQ,368
84
87
  biopipen/scripts/cellranger/CellRangerCount.py,sha256=Mi6PiufFPp-cb4WRgZhniXi2ja5VUusRDW9RdAqFyX0,2831
85
88
  biopipen/scripts/cellranger/CellRangerSummary.R,sha256=8EqP4j074RLi5Adw47xyqQwkDEcvSS6Yfk0UgKKYOuo,11045
86
89
  biopipen/scripts/cellranger/CellRangerVdj.py,sha256=ipGkPzkiVy5IpPrYKUK4zgEIvz-aMJOKbMEN-bMStFE,2200
87
- biopipen/scripts/cnv/AneuploidyScore.R,sha256=liAN8u8_lj8voJ01oBW9Dw09yi388KF5f_gwPOv0wdE,8437
88
- biopipen/scripts/cnv/AneuploidyScoreSummary.R,sha256=9Zni5zqYfzevs5XSAt3fqD9WZ_RWr_ByUnXReKLLWoY,12337
89
- biopipen/scripts/cnv/TMADScore.R,sha256=uCLHQR6sMt-4uVUAEJlJxYXlai9ZE5J7xBl0sl-EkjU,1065
90
- biopipen/scripts/cnv/TMADScoreSummary.R,sha256=xcuEzHpzPNWWdZlurp5PS4D7665ZvIJtc4739pFACPI,7003
91
- biopipen/scripts/cnvkit/CNVkitAccess.py,sha256=l94f9L_C-tcNCFGCzZ7YQEZTBdpteY5Fq5DPAYu3zAI,645
92
- biopipen/scripts/cnvkit/CNVkitAutobin.py,sha256=Fy2f4IjNMaFyikdjSXEkkuf-bSwLggfwWpe4SOvZvPk,1593
93
- biopipen/scripts/cnvkit/CNVkitBatch.py,sha256=QhXwTkdJcP6woyuJgctJWaNURxJcb_xwID05lEapCcc,3775
90
+ biopipen/scripts/cnv/AneuploidyScore.R,sha256=OldqRUr4rn8AZZCLDaX5xCIR1e0R7XXb_RQ2hXDHHog,9142
91
+ biopipen/scripts/cnv/AneuploidyScoreSummary.R,sha256=fhffzQ5tW13KSgGz9CNDmvgqxUR1NDVVrsW_5xl1968,12410
92
+ biopipen/scripts/cnv/TMADScore.R,sha256=IH07REfBO3QB2QNWuwGY6LgAUAOE0lsfP6W0bS67zGs,1530
93
+ biopipen/scripts/cnv/TMADScoreSummary.R,sha256=w58LD5xHnLal9jv53nBUGpQ8eTkAyEk1leCVN2T_ZaM,7109
94
+ biopipen/scripts/cnvkit/CNVkitAccess.py,sha256=UerX66utY8UdlI1mlSVD7E9O0ByLnHzt6G3Urb8mCWE,689
95
+ biopipen/scripts/cnvkit/CNVkitAutobin.py,sha256=H5YcQ8f7Vs01Wad_oEQ9_AKBo5bKW856hAxShD75oDA,1656
96
+ biopipen/scripts/cnvkit/CNVkitBatch.py,sha256=uzb300XLPRzV1BOOug6dAmupZ5FtQamFoYslVmbdTCA,3794
94
97
  biopipen/scripts/cnvkit/CNVkitCall.py,sha256=NyOnMjwT4w-ID9YtNks6fp6BIG7OzkGHmYphcXzAy_M,3544
95
- biopipen/scripts/cnvkit/CNVkitCoverage.py,sha256=t-PjHi0WujpAyhV_KgYIk4j6J-taY4ikdXJwdY96KSc,779
98
+ biopipen/scripts/cnvkit/CNVkitCoverage.py,sha256=hTXh77QmMWy12Ipphdabkai19D0ZfKd7XF5Soc-HSG8,823
96
99
  biopipen/scripts/cnvkit/CNVkitDiagram.py,sha256=tvHW6wAZ9YXKb6sbdvWEO_HPjLK4LOYxrcnPkV8iUoA,1889
97
100
  biopipen/scripts/cnvkit/CNVkitFix.py,sha256=nZ7_15ba4zgTRpyQfyGAdcx1kCWyNTyjfEkKYxQumJA,1087
98
- biopipen/scripts/cnvkit/CNVkitGuessBaits.py,sha256=4CN7nx5FqWdw9coCPV1-RD-EM7kylnKR2qTtp_WoM7U,2197
99
- biopipen/scripts/cnvkit/CNVkitHeatmap.py,sha256=yv5oi2DkCIj-EI4PEBaazn4zRg7fJZEfdvGF8n2JlFQ,2478
100
- biopipen/scripts/cnvkit/CNVkitReference.py,sha256=_D0xefJm5DAFvS_omw6LLNyH7kChvixIKTgWjWkLyFc,1358
101
+ biopipen/scripts/cnvkit/CNVkitGuessBaits.py,sha256=lrNNa3-jH87WCmdVv8lRmS894xT_zNjFjWXmi1oSG4U,2216
102
+ biopipen/scripts/cnvkit/CNVkitHeatmap.py,sha256=gtLSI2ipnB9amEM_hJtl73iM-0jGG_fvn1uPMIlFa-o,2485
103
+ biopipen/scripts/cnvkit/CNVkitReference.py,sha256=dO5vzqlgfecYUNJ3I2TvBdL_zKEJyKl3mRcL14GLDGU,1402
101
104
  biopipen/scripts/cnvkit/CNVkitScatter.py,sha256=7DhTiXPHEHbdXn0VFcDOR-wTP6sks08N94KG7zjo_Is,2728
102
105
  biopipen/scripts/cnvkit/CNVkitSegment.py,sha256=q5iGAjY6-yIehPcJpi3hX6EuGre0YgWTPkG_d5LEV48,1629
103
106
  biopipen/scripts/cnvkit/guess_baits.py,sha256=7OCMtSMHIJWWZv9qEYVXnB0N4hU_JaGEesKdkr6tvJc,10586
104
107
  biopipen/scripts/delim/RowsBinder.R,sha256=yp960u7Ui_jFCL8WDvODa-0vhJvyLo64ll35PzXYUbI,1444
105
108
  biopipen/scripts/delim/SampleInfo.R,sha256=1EYlqoVpIEl9l2eBaCLETuI_Ma3HjihS9tRbGmOPiBk,6397
106
- biopipen/scripts/gene/GeneNameConversion.py,sha256=2RveardTsLv2K1XSj3G0ERYLiln9bcR74bjkRdKcChc,1880
109
+ biopipen/scripts/gene/GeneNameConversion.R,sha256=uAnueB1poicYpQHjUnl4ZBFn3sAWzP9HzmBC7zjlehI,1776
110
+ biopipen/scripts/gene/GenePromoters.R,sha256=0ukq3-wpN6uq_cyJlQvKDVvy0Dv8cI5Htd9t2xpkEyk,2021
107
111
  biopipen/scripts/gsea/Enrichr.R,sha256=tr4vInlVIeiGXumh22ARuTQmy0-Qq869RiX7d7ERqCg,661
108
112
  biopipen/scripts/gsea/FGSEA.R,sha256=RLqDgrqnYEacHfzEEuZ3d29lxNqWehigOnGuu248SRg,1483
109
113
  biopipen/scripts/gsea/GSEA.R,sha256=gkiigYQ9xNdqZWMus0h0htSdWWbLJt9uXPo8Bc4hOaI,1083
110
114
  biopipen/scripts/gsea/PreRank.R,sha256=onZK1FQa6yDO0Fz4juy56XQjpzyw3zBdZv7edY9acNI,1356
111
115
  biopipen/scripts/misc/Config2File.py,sha256=NUio0uOEuZtUBpuByDSItYu9Kwu5mosb4pdPq5-QAmE,440
116
+ biopipen/scripts/misc/Shell.sh,sha256=Rg8_DOfDFeUjZ_1_EVm2lbzyMLqcEv9A3k6SsTcfZZ0,493
112
117
  biopipen/scripts/misc/Str2File.py,sha256=99oQNxChxChNJ9vmD77b48cu-r_P_heSpx7A5wi3qTE,212
113
118
  biopipen/scripts/plot/Heatmap.R,sha256=4v_oRME8ZiwczIlBIp-OP_YPWLAvBKzbHiwNBCZ0Xog,1982
119
+ biopipen/scripts/plot/Manhattan.R,sha256=14qWI4l4AgaEys59dI6nigZacQL_QAV9Hm4TVy_rlNY,4529
120
+ biopipen/scripts/plot/QQPlot.R,sha256=qIvMzy3y1JIwsZDr-IlUxO4AexyakqYaMBNohIUv0i4,1678
114
121
  biopipen/scripts/plot/ROC.R,sha256=Cr-mHQx6c748fQYkOWO2xIKWwiVAUxGuxn6lYEhNH78,2430
115
122
  biopipen/scripts/plot/VennDiagram.R,sha256=GVc-kyHqnXrbXZvy-evcxI1XGtlLSChBiVnMjPywNMA,731
123
+ biopipen/scripts/regulation/MotifAffinityTest.R,sha256=DcetElFSlurIRuOw1YLPvoOPDCnfq-EpgV-e1aKX_nM,8969
124
+ biopipen/scripts/regulation/MotifAffinityTest_AtSNP.R,sha256=SAyTm2-6g5qVJFRrLxEY0QJrLWTkwDi_J_9J7HhtTN8,4438
125
+ biopipen/scripts/regulation/MotifAffinityTest_MotifBreakR.R,sha256=wCK4tLx1iWh_OwW7ZvLTCjTGWCIfVqw-lYC0-JqIPqg,3338
126
+ biopipen/scripts/regulation/MotifScan.py,sha256=nxwfDV3sXWk62x0WFpzxEZuUjJSErZvYkB2KJP7uAnc,5336
127
+ biopipen/scripts/regulation/atSNP.R,sha256=TXJARbE0rDIzSq6Spacz_HsM_DXdREJ95ZsBg26trgw,1288
128
+ biopipen/scripts/regulation/motifBreakR.R,sha256=trzvvTvwc5gSO427wkqx93FecuQxLGa9kNqodKa8S0U,70236
116
129
  biopipen/scripts/rnaseq/Simulation-ESCO.R,sha256=68cEHDdJclX8P8Q7ey9yBOfK09M_kxlL6zgYXsEL2Rs,6378
117
130
  biopipen/scripts/rnaseq/Simulation-RUVcorr.R,sha256=6C6Ke5RLF0fC2V9WQPoFEdqoDabCnhslZBIyB6zhIxc,1155
118
131
  biopipen/scripts/rnaseq/Simulation.R,sha256=PNEDUwEEOMGwgNyx5VPDAbzSLS74gqAxKenv5Uw_8zo,850
@@ -130,7 +143,7 @@ biopipen/scripts/scrna/ExprImputation-alra.R,sha256=w3W1txJcdWg52-SETY2Z0lO7maDN
130
143
  biopipen/scripts/scrna/ExprImputation-rmagic.R,sha256=jYIfqZpnvjKJkvItLnemPVtUApHBYQi1_L8rHVbEe1M,735
131
144
  biopipen/scripts/scrna/ExprImputation-scimpute.R,sha256=mg40qCUW7-nP5oHPvARq7dmtoahM0GRFWXQpum0BXVk,1082
132
145
  biopipen/scripts/scrna/ExprImputation.R,sha256=GcdZJpkDpq88hRQjtLZY5-byp8V43stEFm5T-pQbU6A,319
133
- biopipen/scripts/scrna/MarkersFinder.R,sha256=M7fHTbHHErZ9JbLmjDkx-6yVIay0_h0MkvgFegnqL44,22918
146
+ biopipen/scripts/scrna/MarkersFinder.R,sha256=-rQyu0uXJscQbRUH6XDPxIFawOwqDxch75yyG1ArMaU,22670
134
147
  biopipen/scripts/scrna/MetaMarkers.R,sha256=9ve1X0TrDzS_ZEW6HtU3n8R-uPx7q-hYMMNFVDSE8wQ,11272
135
148
  biopipen/scripts/scrna/ModuleScoreCalculator.R,sha256=JSHd-_-KiFqW8avCGxgU4T-C5BtDr2u0kwIvEu2lFIg,4188
136
149
  biopipen/scripts/scrna/RadarPlots.R,sha256=TGPUTUcHOHgd9rsNtLYT-N6WHiFNDBZsiIoqkyAJh0A,13020
@@ -143,14 +156,14 @@ biopipen/scripts/scrna/SeuratClusterStats-hists.R,sha256=YhuD-GePjJPSkR0iLRgV_hi
143
156
  biopipen/scripts/scrna/SeuratClusterStats-ngenes.R,sha256=GVKIXFNS_syCuSN8oxoBkjxxAeI5LdSxh-qLVkUsbDA,2146
144
157
  biopipen/scripts/scrna/SeuratClusterStats-stats.R,sha256=bBbvNCvV6dZLg9zvhh2nR48_53md5A5UEqrPXD00MZU,9263
145
158
  biopipen/scripts/scrna/SeuratClusterStats.R,sha256=ouWoj7Q644uG3MUlT23AES8f74g38-jPtPhINSvoUas,1267
146
- biopipen/scripts/scrna/SeuratClustering.R,sha256=kAvQq3RV86_KSv9NlUtUeQrPKkbhSsnv6Q4DoiTu8M0,6403
159
+ biopipen/scripts/scrna/SeuratClustering.R,sha256=xumBiqNnXcOn50tRmcqev9EBRUvf-ck9rEpAWeDXToE,7530
147
160
  biopipen/scripts/scrna/SeuratFilter.R,sha256=BrYK0MLdaTtQvInMaQsmOt7oH_hlks0M1zykkJtg2lM,509
148
161
  biopipen/scripts/scrna/SeuratLoading.R,sha256=ekWKnHIqtQb3kHVQiVymAHXXqiUxs6KKefjZKjaykmk,900
149
- biopipen/scripts/scrna/SeuratMap2Ref.R,sha256=_G8pG7NRV2GOFDzKBLY1nkXR0DO1c-6NkX990_hC8mk,9127
162
+ biopipen/scripts/scrna/SeuratMap2Ref.R,sha256=qnFkOCudqC-j5uAszBssWM9Xg_vO3H9_Hj0n5wdOmBc,9757
150
163
  biopipen/scripts/scrna/SeuratMetadataMutater.R,sha256=Pp4GsF3hZ6ZC2vroC3LSBmVa4B1p2L3hbh981yaAIeQ,1093
151
164
  biopipen/scripts/scrna/SeuratPreparing.R,sha256=t6GOcc9ZNwpRLeES7uBWja9RF6u6k5I_TXcdK4Ve7d0,18683
152
165
  biopipen/scripts/scrna/SeuratSplit.R,sha256=vdK11V39_Uo_NaOh76QWCtxObGaEr5Ynxqq0hTiSvsU,754
153
- biopipen/scripts/scrna/SeuratSubClustering.R,sha256=L1SwKhNNKvsQGrcj0ZjScW9BLuvdO2pg7U48Ospsot8,6096
166
+ biopipen/scripts/scrna/SeuratSubClustering.R,sha256=ooEQhUneYvSiRcwlqC9Mc8WE0g5pLEtKtQWYrKN3cck,8001
154
167
  biopipen/scripts/scrna/SeuratSubset.R,sha256=yVA11NVE2FSSw-DhxQcJRapns0tNNHdyDYi5epO6SKM,1776
155
168
  biopipen/scripts/scrna/SeuratTo10X.R,sha256=1mh1R0Qlo1iHVrpMLUXyLDOA92QKJ4GzTMURTFRqsWg,901
156
169
  biopipen/scripts/scrna/Subset10X.R,sha256=T2nJBTwOe12AIKC2FZsMSv6xx3s-67CYZokpz5wshqY,2679
@@ -161,12 +174,22 @@ biopipen/scripts/scrna_metabolic_landscape/MetabolicFeatures.R,sha256=sOnHSH0Ld-
161
174
  biopipen/scripts/scrna_metabolic_landscape/MetabolicFeaturesIntraSubset.R,sha256=RPSxEHWk50Fyw5YPBVVGeWwd55Hi0zjbipLuM5O4tjs,5465
162
175
  biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayActivity.R,sha256=95DLX1Rz0tobOuDZ8V9YdGgO0KiNthhccoeeOK21tno,16216
163
176
  biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.R,sha256=rQ9iwGh9FNRZlJJzM4QItdyXmebfzLAq05ZAjb1kGUw,9831
164
- biopipen/scripts/snp/MatrixEQTL.R,sha256=zOR_mhn_sUXuxqgV82TPvDp-E1i5aJVA45QixyRP8no,5930
177
+ biopipen/scripts/snp/MatrixEQTL.R,sha256=Wr1m4RLcxisJgy5_7Tp_SoOoDZIBfRjHuUVnYLBWtAo,7186
178
+ biopipen/scripts/snp/Plink2GTMat.py,sha256=ypxuT6YEBuuSk9TML9SHhVtA38GlZvB-3tQakJd8YLQ,5052
179
+ biopipen/scripts/snp/PlinkCallRate.R,sha256=lkx93TyZjnvOWuq7W5zvdIlYmTC4n4ys52VymA7PvPM,6160
180
+ biopipen/scripts/snp/PlinkFilter.py,sha256=eqC18ne3rPUzIJ_KjqvwQ79MyeMxe0oh4S9PnhfhK1E,3200
181
+ biopipen/scripts/snp/PlinkFreq.R,sha256=Y8R-jE4upWe6B4yf7G9BCjEyv6HXItHOaUQzVInXL-8,10605
182
+ biopipen/scripts/snp/PlinkFromVcf.py,sha256=TZaJ117Qp-gbqPX7WK6r7Zw8XHVXbRO6wb0V1NQouxw,2284
183
+ biopipen/scripts/snp/PlinkHWE.R,sha256=Ncs4ctTDCnfGxs5HbyNxsNuq3Cn_Dwo1iFKdbj6GJSc,2201
184
+ biopipen/scripts/snp/PlinkHet.R,sha256=r35hzA3A5lrqJN1kWxd2bYucTZd1eNd_vDjqhprur34,3005
185
+ biopipen/scripts/snp/PlinkIBD.R,sha256=DJjmcwWYso8pY6HTKXLEIWsTurctknQxOQScG_ikBck,5640
165
186
  biopipen/scripts/snp/PlinkSimulation.py,sha256=mSSoGGG6sbEPBcUGdHgbebUrg4DiHeyNyc7jLPjV5pY,4169
187
+ biopipen/scripts/snp/PlinkUpdateName.py,sha256=sYyb0ek46wRQfclFfoJEhQyQ-zWsFd2xpFHKw3jbsq4,4055
166
188
  biopipen/scripts/stats/ChowTest.R,sha256=4p7NULmfOZSfeBSQ04els0h3cXOK5yeCJJ4-gEBPOGk,3617
167
189
  biopipen/scripts/stats/DiffCoexpr.R,sha256=5hQDV2_7bKdKUsOGMZUa0GS5rc7kFspxonNyFEPmtbc,4516
168
190
  biopipen/scripts/stats/LiquidAssoc.R,sha256=s-XJbFoOfH4eWSkxbbOSHZ1x16lY0Sdod_V1KvSkM8k,3727
169
- biopipen/scripts/stats/MetaPvalue.R,sha256=c26lYC4rxQ3D7vRvsXJ4_M-QIYTDTV8AEjXrag2_srU,3957
191
+ biopipen/scripts/stats/MetaPvalue.R,sha256=fnqayZeHd61cP9PxZZAebg5lE7JQgFG5MElCct43S1M,4012
192
+ biopipen/scripts/stats/MetaPvalue1.R,sha256=falhaOeoa8E7ZbddXfGsSdim5P7eQvA7RFGD7XSrBUk,1733
170
193
  biopipen/scripts/tcgamaf/Maf2Vcf.py,sha256=Cxh7fiSNCxWDTfIJqZDOOnaSrw-85S_fH2U-PWY03hc,704
171
194
  biopipen/scripts/tcgamaf/MafAddChr.py,sha256=V10HMisl12O3ZfXuRmFNdy5p-3mr43WCvy0GHxSpwfA,494
172
195
  biopipen/scripts/tcgamaf/maf2vcf.pl,sha256=hJKcH-NbgWK6fmK7f3qex7ozJJl-PqCNPXqpwfcHwJg,22707
@@ -193,7 +216,7 @@ biopipen/scripts/tcr/ImmunarchFilter.R,sha256=o25O36FwH_0w6F8DFQ0SfpcwDzlzaGefXq
193
216
  biopipen/scripts/tcr/ImmunarchLoading.R,sha256=l_l-gojiCKI_MWgIUe2zG5boVtNipBv4rACRJEcrnFE,5734
194
217
  biopipen/scripts/tcr/ImmunarchSplitIdents.R,sha256=FGCeGV0uSmFU91lKkldUAeV4A2m3hHw5X4GNi8ffGzI,1873
195
218
  biopipen/scripts/tcr/SampleDiversity.R,sha256=jQ1OU3b8vswD8tZhLt3fkcqJKrl2bhQX0giHM2rXz3Y,2643
196
- biopipen/scripts/tcr/TCRClusterStats.R,sha256=aaY9w1GZWQLVQR7wl8POGCzzW7q0ge6cWxrzmqoWNA8,12743
219
+ biopipen/scripts/tcr/TCRClusterStats.R,sha256=40e_XhrpyKkDv6yUTnU0wUnQiFdiHpk30Hr0pri3uuM,12864
197
220
  biopipen/scripts/tcr/TCRClustering.R,sha256=eflUsYfq4aEaX9BVL0MiB7lNlot_L-8VaReK516go84,9236
198
221
  biopipen/scripts/tcr/TCRDock.py,sha256=jjzxMWp-hs0LDtA1mVbiWDvUieSO7X-F9yeKGy1LSTM,3026
199
222
  biopipen/scripts/tcr/TESSA.R,sha256=bfOixWLZy8yi0MzXncP67KjtCukwXEzsK5fCdMzB5VM,6822
@@ -210,6 +233,10 @@ biopipen/scripts/tcr/TESSA_source/utility.R,sha256=6qbkMV7yp4bgQe718QiASQUAgOE2e
210
233
  biopipen/scripts/tcr/VJUsage.R,sha256=LjHEbAHW3WriCYiM9-T6Esd4jc6pnoiSxBKTN_YA490,437
211
234
  biopipen/scripts/tcr/immunarch-patched.R,sha256=6OAaV6arDVSI409VHuh1oMCuxlMQp-EaM-kkF-sTlCI,7007
212
235
  biopipen/scripts/tcr/vdjtools-patch.sh,sha256=rL5qp2S18CrpqduKkeR1HVmmuWhCVJOMKJXvWiKdYIc,566
236
+ biopipen/scripts/vcf/BcftoolsAnnotate.py,sha256=iS-T6IhumqePW5kdyi_Tb6rubyIiCMjSTIRkGL_ad-U,2582
237
+ biopipen/scripts/vcf/BcftoolsFilter.py,sha256=AdQMXFTNLCS5eqYWMNIMbkK8qXJ5j8GYm7HdPopVk0c,2573
238
+ biopipen/scripts/vcf/BcftoolsSort.py,sha256=tU0pTrEIB-7x6iOSfU-KpYY1rEidi6Q4179NntY3cGc,3778
239
+ biopipen/scripts/vcf/BcftoolsView.py,sha256=Sj3KkYPpwQFo5kmZC5MRxItrSE5KVZi0jNYrRFck3Ow,2465
213
240
  biopipen/scripts/vcf/TruvariBench.sh,sha256=80yLQ73OzSgsJ4ltzgpcWxYvvX1hFnCG8YSBhhhRQ9Y,765
214
241
  biopipen/scripts/vcf/TruvariBenchSummary.R,sha256=YlcD9qLtK3aeW3XeLx8pXTe7yOkbaYJyLHb2TYijm8A,1474
215
242
  biopipen/scripts/vcf/TruvariConsistency.R,sha256=dqoLHCzCeyJ3JWyDX8Q8MzIFwkVK8Jg71Ml45d96Cxg,2293
@@ -218,29 +245,30 @@ biopipen/scripts/vcf/VcfAnno.py,sha256=FW626rAs_WSU7AHQMKjfkYoByUGh_gVyJM97neGfO
218
245
  biopipen/scripts/vcf/VcfDownSample.sh,sha256=yBlyoA8xyHPkVc1XAs1biNZmN7rDR-CMz8qVh2GGvuk,939
219
246
  biopipen/scripts/vcf/VcfFilter.py,sha256=0clQi9XuN0B33xAquQ3e7ce1PZlzIOmOFctNA-dpdEw,1881
220
247
  biopipen/scripts/vcf/VcfFix.py,sha256=r2bgwwb2hAMr42wjpFZSFcUDxGllvhkOaRY_r9sKLNE,1304
221
- biopipen/scripts/vcf/VcfFix_utils.py,sha256=Ev_rvgLY9GF-aNntWbjXbl6eVlubw5uyHUD-g1c6Rno,2294
248
+ biopipen/scripts/vcf/VcfFix_utils.py,sha256=Ur1-nFFYYjg7HYiK_C6Is_MTZXFULKRTwTGqBD8jzyU,2299
222
249
  biopipen/scripts/vcf/VcfIndex.py,sha256=kMOdB8O4UWvvxeEnAa3iZoH7_ySKHCJ0LOpEds0GXf4,635
223
250
  biopipen/scripts/vcf/VcfIntersect.py,sha256=6u9tLlfmEhlSMkYLXurVOO2uU94JwKRegSHhCzliHX0,735
224
251
  biopipen/scripts/vcf/VcfLiftOver.sh,sha256=-mb-aY0kbr62Audm8urEh3iLef_FREVWgt8hs3ELNK8,565
225
252
  biopipen/scripts/vcf/VcfSplitSamples.py,sha256=GraKi7WluzDAvVVGljwd3Yif6MriniF8stZOmllZtgk,1528
253
+ biopipen/scripts/vcf/bcftools_utils.py,sha256=p91rZp0RG6AtbpYA_KuKCfa6T5aNKMq_rK95QPL7mMI,1514
226
254
  biopipen/scripts/web/Download.py,sha256=WKC_t5ZEeJoKFyY9XwksHARcMbKmHMcxNEUDLMGJ0Cc,924
227
255
  biopipen/scripts/web/DownloadList.py,sha256=cZvdi3LVzlATiTvAXe0uuDDXGqB5jcR2zHrMLCEb2U8,1130
228
256
  biopipen/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
229
257
  biopipen/utils/caching.R,sha256=qANQqH8p-VpvD8V4VSoqSfp0TFr4esujC7x3OFZsJMw,1687
230
258
  biopipen/utils/common_docstrs.py,sha256=Ow-g-yS5P7DEO37cP1X-xioRbYWygfQHxIuLIaDdrjs,6288
231
- biopipen/utils/gene.R,sha256=BzAwlLA8hO12vF-3t6IwEuTEeLa_jBll4zm_5qe3qoE,1243
232
- biopipen/utils/gene.py,sha256=qE_BqTayrJWxRdniffhcz6OhZcw9GUoOrj2EtFWH9Gw,2246
259
+ biopipen/utils/gene.R,sha256=EITppeN7dwXy7LnFELYHeRCSHImYno0JncLyVWEAXOM,3757
260
+ biopipen/utils/gene.py,sha256=ToRgAPYc8E72Hm6uYi84ImQaRMPZp5rN7O4CxK7vCag,4477
233
261
  biopipen/utils/gsea.R,sha256=BUr4pwfo7ZyinOyNa4O4dDxA1c50qWb3lpph374Yw_A,9239
234
262
  biopipen/utils/io.R,sha256=jIYdqdn0iRWfQYAZa5CjXi3fikqmYvPPLIXhobRe8sw,537
235
- biopipen/utils/misc.R,sha256=Y9J8gZDuPPYFxYNQtDEvKAk5j-K8j_-n0DunYvu_Hv8,10671
236
- biopipen/utils/misc.py,sha256=KJziAFY4Kl-0ZsO93vteY9gRLZg9BSYig-TDocHY36k,3601
263
+ biopipen/utils/misc.R,sha256=qTninxi9XAM_3QJqwThflGA-j7p1aKpQ9Pjmix6Iy3U,12059
264
+ biopipen/utils/misc.py,sha256=nkQHa3GMc7Ce0N2GKmucbRc8BMXgZ2yr_SPbq9RYA4s,3740
237
265
  biopipen/utils/mutate_helpers.R,sha256=Bqy6Oi4rrPEPJw0Jq32bVAwwBfZv7JJL9jFcK5x-cek,17649
238
266
  biopipen/utils/plot.R,sha256=pzl37PomNeUZPxohHZ2w93j3Fc4T0Qrc62FF-9MTKdw,4417
239
- biopipen/utils/reference.py,sha256=6bPSwQa-GiDfr7xLR9a5T64Ey40y24yn3QfQ5wDFZkU,4420
267
+ biopipen/utils/reference.py,sha256=oi5evicLwHxF0KAIPNZohBeHJLJQNWFJH0cr2y5pgcg,5873
240
268
  biopipen/utils/rnaseq.R,sha256=Ro2B2dG-Z2oVaT5tkwp9RHBz4dp_RF-JcizlM5GYXFs,1298
241
269
  biopipen/utils/single_cell.R,sha256=pJjYP8bIZpNAtTQ32rOXhZxaM1Y-6D-xUcK3pql9tbk,4316
242
270
  biopipen/utils/vcf.py,sha256=ajXs0M_QghEctlvUlSRjWQIABVF02wPdYd-0LP4mIsU,9377
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,,
271
+ biopipen-0.29.0.dist-info/METADATA,sha256=dQ6UcVOLcX89F69jLAtXIczJo77lhkrSDdE5QrBgIJg,882
272
+ biopipen-0.29.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
273
+ biopipen-0.29.0.dist-info/entry_points.txt,sha256=99uvED4sthSUVArFUMdMNLbYkVIEDLPUYg92JB22lt8,625
274
+ biopipen-0.29.0.dist-info/RECORD,,
@@ -1,6 +1,5 @@
1
1
  [pipen_cli_run]
2
2
  bam=biopipen.ns.bam
3
- bcftools=biopipen.ns.bcftools
4
3
  bed=biopipen.ns.bed
5
4
  cellranger=biopipen.ns.cellranger
6
5
  cellranger_pipeline=biopipen.ns.cellranger_pipeline
@@ -12,6 +11,7 @@ gene=biopipen.ns.gene
12
11
  gsea=biopipen.ns.gsea
13
12
  misc=biopipen.ns.misc
14
13
  plot=biopipen.ns.plot
14
+ regulation=biopipen.ns.regulation
15
15
  rnaseq=biopipen.ns.rnaseq
16
16
  scrna=biopipen.ns.scrna
17
17
  scrna_metabolic_landscape=biopipen.ns.scrna_metabolic_landscape
biopipen/ns/bcftools.py DELETED
@@ -1,111 +0,0 @@
1
- """handling VCF files using bcftools"""
2
- from ..core.proc import Proc
3
- from ..core.config import config
4
-
5
-
6
- class BcftoolsAnnotate(Proc):
7
- """Add or remove annotations from VCF files
8
-
9
- Input:
10
- infile: The input VCF file
11
- annfile: The annotation file
12
-
13
- Output:
14
- outfile: The annotated VCF file
15
-
16
- Envs:
17
- bcftools: Path to bcftools
18
- tabix: Path to tabix, used to index infile and annfile
19
- annfile: The annotation file. If `in.annfile` is provided,
20
- this is ignored
21
- ncores: Number of cores (`--nthread`) to use
22
- cols: Overwrite `-c/--columns`
23
- header: Headers to be added
24
- args: Other arguments for `bcftools annotate`
25
- """
26
- input = "infile:file, annfile:file"
27
- output = "outfile:file:{{in.infile | basename}}"
28
- lang = config.lang.python
29
- envs = {
30
- "bcftools": config.exe.bcftools,
31
- "tabix": config.exe.tabix,
32
- "annfile": "",
33
- "cols": [],
34
- "header": [],
35
- "args": {},
36
- "ncores": config.misc.ncores,
37
- }
38
- script = "file://../scripts/bcftools/BcftoolsAnnotate.py"
39
-
40
-
41
- class BcftoolsFilter(Proc):
42
- """Apply fixed threshold filters to VCF files
43
-
44
- Input:
45
- infile: The input VCF file
46
-
47
- Output:
48
- outfile: The filtered VCF file. If the `in.infile` is gzipped, this is
49
- gzipped as well.
50
-
51
- Envs:
52
- bcftools: Path to bcftools
53
- ncores: Number of cores (`--nthread`) to use
54
- keep: Whether we should keep the filtered variants or not.
55
- args: Other arguments for `bcftools annotate`
56
- ncores: `nthread`
57
- tmpdir: Path to save the intermediate files
58
- Since the filters need to be applied one by one by bcftools
59
- includes: and
60
- excludes: include/exclude only sites for which EXPRESSION is true.
61
- See: https://samtools.github.io/bcftools/bcftools.html#expressions
62
- If provided, `envs.args.include/exclude` will be ignored.
63
- If `str`/`list` used, The filter names will be `Filter%d`
64
- A dict is used when keys are filter names and values are expressions
65
- """
66
- input = "infile:file"
67
- output = "outfile:file:{{in.infile | basename}}"
68
- lang = config.lang.python
69
- envs = {
70
- "bcftools": config.exe.bcftools,
71
- "keep": True,
72
- "ncores": config.misc.ncores,
73
- "includes": None,
74
- "excludes": None,
75
- "tmpdir": config.path.tmpdir,
76
- "args": {},
77
- }
78
- script = "file://../scripts/bcftools/BcftoolsFilter.py"
79
-
80
-
81
- class BcftoolsSort(Proc):
82
- """Sort VCF files
83
-
84
- Input:
85
- infile: The input VCF file
86
-
87
- Output:
88
- outfile: The sorted VCF file.
89
-
90
- Envs:
91
- bcftools: Path to bcftools
92
- gz: Whether to gzip the output file
93
- index: Whether to index the output file (tbi) (`envs.gz` forced to True)
94
- tmpdir: Path to save the intermediate files
95
- args: Other arguments for `bcftools sort`. For example `max-mem`.
96
- See also https://samtools.github.io/bcftools/bcftools.html#sort
97
- """
98
- input = "infile:file"
99
- output = (
100
- "outfile:file:{{in.infile | stem0}}.vcf"
101
- "{% if envs.gz or envs.index %}.gz{% endif %}"
102
- )
103
- lang = config.lang.python
104
- envs = {
105
- "bcftools": config.exe.bcftools,
106
- "gz": True,
107
- "index": True,
108
- "tmpdir": config.path.tmpdir,
109
- "args": {},
110
- }
111
- script = "file://../scripts/bcftools/BcftoolsSort.py"
@@ -1,42 +0,0 @@
1
- from os import path
2
-
3
- from biopipen.utils.reference import tabix_index
4
- from biopipen.utils.misc import dict_to_cli_args, run_command
5
-
6
- infile = {{in.infile | repr}} # pyright: ignore
7
- annfile = {{(in.annfile or envs.annfile) | repr}} # pyright: ignore
8
- outfile = {{out.outfile | repr}} # pyright: ignore
9
- joboutdir = {{job.outdir | repr}} # pyright: ignore
10
- bcftools = {{envs.bcftools | repr}} # pyright: ignore
11
- tabix = {{envs.tabix | repr}} # pyright: ignore
12
- ncores = {{envs.ncores | repr}} # pyright: ignore
13
- cols = {{envs.cols | repr}} # pyright: ignore
14
- header = {{envs.header | repr}} # pyright: ignore
15
- args = {{envs.args | repr}} # pyright: ignore
16
-
17
- args[""] = bcftools
18
- args["_"] = tabix_index(infile, "vcf")
19
- args["o"] = outfile
20
- args["threads"] = ncores
21
-
22
- if annfile:
23
- abname = path.basename(annfile)
24
- ext = path.splitext(
25
- abname[:-3] if abname.endswith('.gz') else abname
26
- )[-1][1:]
27
- args["a"] = tabix_index(annfile, ext, tabix)
28
-
29
- if cols and isinstance(cols, list):
30
- args["c"] = ",".join(cols)
31
-
32
- if header:
33
- if not isinstance(header, list):
34
- header = [header]
35
-
36
- headerfile = path.join(joboutdir, "header.txt")
37
- with open(headerfile, "w") as fh:
38
- for head in header:
39
- fh.write(f"{head}\n")
40
- args["h"] = headerfile
41
-
42
- run_command(dict_to_cli_args(args, dashify=True), fg=True)
@@ -1,79 +0,0 @@
1
- import shutil
2
- from pathlib import Path
3
- from hashlib import md5
4
-
5
- from biopipen.core.filters import dict_to_cli_args, run_command
6
-
7
- infile = {{in.infile | repr}} # pyright: ignore
8
- outfile = {{out.outfile | repr}} # pyright: ignore
9
- bcftools = {{envs.bcftools | repr}} # pyright: ignore
10
- keep = {{envs.keep | repr}} # pyright: ignore
11
- args = {{envs.args | repr}} # pyright: ignore
12
- ncores = {{envs.ncores | repr}} # pyright: ignore
13
- tmpdir = {{envs.tmpdir | repr}} # pyright: ignore
14
- includes = {{envs.includes | repr}} # pyright: ignore
15
- excludes = {{envs.excludes | repr}} # pyright: ignore
16
-
17
- args[""] = bcftools
18
- args["_"] = infile
19
- args["o"] = outfile
20
- args["threads"] = ncores
21
- if "O" not in args and "output-type" not in args:
22
- args["O"] = "z" if infile.endswith(".gz") else "v"
23
- if "m" not in args and "mode" not in args:
24
- args["m"] = "+"
25
-
26
- tmpdir = (
27
- Path(tmpdir) / f"biopipen-bcftoolsfilter-{md5(infile.encode()).hexdigest()}"
28
- )
29
- tmpdir.mkdir(parents=True, exist_ok=True)
30
- # a.vcf.gz -> a
31
- # a.vcf -> a
32
- stem = Path(infile).stem
33
- if stem.endswith(".vcf"):
34
- stem = stem[:-4]
35
- # .vcf.gz
36
- # .gz
37
- ext = Path(infile).name[len(stem):]
38
-
39
- FILTER_INDEX = [1]
40
-
41
- def handle_filter(vcf, fname, filt, flag):
42
- print("- Handling filter ", fname, ": ", filt, " ...")
43
-
44
- arguments = args.copy()
45
- arguments[flag] = filt
46
- arguments["_"] = vcf
47
- arguments["o"] = tmpdir / f"{stem}.{fname}{ext}"
48
- if keep:
49
- arguments["s"] = fname
50
-
51
- run_command(dict_to_cli_args(arguments, dashify=True), fg=True)
52
- return arguments["o"]
53
-
54
-
55
- def normalize_expr(expr, flag):
56
- out = {}
57
- if not expr:
58
- return out
59
- if isinstance(expr, list):
60
- for ex in expr:
61
- out[f"FILTER{FILTER_INDEX[0]}"] = (ex, flag)
62
- FILTER_INDEX[0] += 1
63
- elif isinstance(expr, dict):
64
- for name, ex in expr.items():
65
- out[name] = (ex, flag)
66
- else: # str
67
- out[f"FILTER{FILTER_INDEX[0]}"] = (expr, flag)
68
- FILTER_INDEX[0] += 1
69
- return out
70
-
71
- includes = normalize_expr(includes, "include")
72
- excludes = normalize_expr(excludes, "exclude")
73
- includes.update(excludes)
74
-
75
- # bcftools can be only done once at one filter
76
- for fname, (filt, flag) in includes.items():
77
- infile = handle_filter(infile, fname, filt, flag)
78
-
79
- shutil.copy2(infile, outfile)
@@ -1,19 +0,0 @@
1
- from biopipen.utils.misc import run_command, dict_to_cli_args
2
-
3
- infile = {{in.infile | quote}} # pyright: ignore
4
- outfile = {{out.outfile | quote}} # pyright: ignore
5
- bcftools = {{envs.bcftools | quote}} # pyright: ignore
6
- gz = {{envs.gz | repr}} # pyright: ignore
7
- args = {{envs.args | repr}} # pyright: ignore
8
- tmpdir = {{envs.tmpdir | quote}} # pyright: ignore
9
- index = {{envs.index | repr}} # pyright: ignore
10
-
11
- args[""] = bcftools
12
- args["_"] = infile
13
- args["o"] = outfile
14
- args["O"] = "z" if gz or index else "v"
15
-
16
- run_command(dict_to_cli_args(args, dashify=True), fg=True)
17
-
18
- if index:
19
- run_command([bcftools, "index", outfile], fg=True)