biopipen 0.34.0__tar.gz → 0.34.1__tar.gz

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 (292) hide show
  1. {biopipen-0.34.0 → biopipen-0.34.1}/PKG-INFO +1 -1
  2. biopipen-0.34.1/biopipen/__init__.py +1 -0
  3. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/scrna.py +38 -4
  4. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/MarkersFinder.R +163 -28
  5. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/ScFGSEA.R +83 -10
  6. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratClusterStats-features.R +4 -0
  7. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/TopExpressingGenes.R +3 -1
  8. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/ClonalStats.R +1 -1
  9. {biopipen-0.34.0 → biopipen-0.34.1}/pyproject.toml +1 -1
  10. {biopipen-0.34.0 → biopipen-0.34.1}/setup.py +1 -1
  11. biopipen-0.34.0/biopipen/__init__.py +0 -1
  12. biopipen-0.34.0/biopipen/reports/scrna/ScFGSEA.svelte +0 -16
  13. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/core/__init__.py +0 -0
  14. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/core/config.py +0 -0
  15. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/core/config.toml +0 -0
  16. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/core/defaults.py +0 -0
  17. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/core/filters.py +0 -0
  18. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/core/proc.py +0 -0
  19. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/core/testing.py +0 -0
  20. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/__init__.py +0 -0
  21. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/bam.py +0 -0
  22. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/bed.py +0 -0
  23. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/cellranger.py +0 -0
  24. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/cellranger_pipeline.py +0 -0
  25. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/cnv.py +0 -0
  26. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/cnvkit.py +0 -0
  27. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/cnvkit_pipeline.py +0 -0
  28. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/delim.py +0 -0
  29. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/gene.py +0 -0
  30. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/gsea.py +0 -0
  31. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/misc.py +0 -0
  32. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/plot.py +0 -0
  33. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/protein.py +0 -0
  34. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/regulatory.py +0 -0
  35. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/rnaseq.py +0 -0
  36. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/scrna_metabolic_landscape.py +0 -0
  37. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/snp.py +0 -0
  38. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/stats.py +0 -0
  39. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/tcgamaf.py +0 -0
  40. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/tcr.py +0 -0
  41. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/vcf.py +0 -0
  42. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/ns/web.py +0 -0
  43. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/bam/CNAClinic.svelte +0 -0
  44. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/bam/CNVpytor.svelte +0 -0
  45. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/bam/ControlFREEC.svelte +0 -0
  46. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/cellranger/CellRangerCount.svelte +0 -0
  47. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/cellranger/CellRangerSummary.svelte +0 -0
  48. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/cellranger/CellRangerVdj.svelte +0 -0
  49. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/cnv/AneuploidyScore.svelte +0 -0
  50. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/cnv/AneuploidyScoreSummary.svelte +0 -0
  51. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/cnv/TMADScoreSummary.svelte +0 -0
  52. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/cnvkit/CNVkitDiagram.svelte +0 -0
  53. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/cnvkit/CNVkitHeatmap.svelte +0 -0
  54. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/cnvkit/CNVkitScatter.svelte +0 -0
  55. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/common.svelte +0 -0
  56. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/gsea/FGSEA.svelte +0 -0
  57. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/gsea/GSEA.svelte +0 -0
  58. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/protein/ProdigySummary.svelte +0 -0
  59. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/scrna/CellsDistribution.svelte +0 -0
  60. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/scrna/DimPlots.svelte +0 -0
  61. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/scrna/MarkersFinder.svelte +0 -0
  62. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/scrna/MetaMarkers.svelte +0 -0
  63. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/scrna/RadarPlots.svelte +0 -0
  64. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/scrna/TopExpressingGenes.svelte +0 -0
  65. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/scrna_metabolic_landscape/MetabolicFeatures.svelte +0 -0
  66. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayActivity.svelte +0 -0
  67. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.svelte +0 -0
  68. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/snp/PlinkCallRate.svelte +0 -0
  69. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/snp/PlinkFreq.svelte +0 -0
  70. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/snp/PlinkHWE.svelte +0 -0
  71. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/snp/PlinkHet.svelte +0 -0
  72. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/snp/PlinkIBD.svelte +0 -0
  73. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/tcr/CDR3AAPhyschem.svelte +0 -0
  74. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/tcr/ClonalStats.svelte +0 -0
  75. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/tcr/CloneResidency.svelte +0 -0
  76. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/tcr/Immunarch.svelte +0 -0
  77. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/tcr/SampleDiversity.svelte +0 -0
  78. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/tcr/TCRClusterStats.svelte +0 -0
  79. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/tcr/TESSA.svelte +0 -0
  80. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/tcr/VJUsage.svelte +0 -0
  81. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/utils/misc.liq +0 -0
  82. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/vcf/TruvariBenchSummary.svelte +0 -0
  83. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/reports/vcf/TruvariConsistency.svelte +0 -0
  84. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bam/BamMerge.py +0 -0
  85. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bam/BamSampling.py +0 -0
  86. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bam/BamSort.py +0 -0
  87. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bam/BamSplitChroms.py +0 -0
  88. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bam/BamSubsetByBed.py +0 -0
  89. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bam/CNAClinic.R +0 -0
  90. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bam/CNVpytor.py +0 -0
  91. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bam/ControlFREEC.py +0 -0
  92. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bam/SamtoolsView.py +0 -0
  93. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bed/Bed2Vcf.py +0 -0
  94. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bed/BedConsensus.py +0 -0
  95. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bed/BedLiftOver.sh +0 -0
  96. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bed/BedtoolsIntersect.py +0 -0
  97. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bed/BedtoolsMakeWindows.py +0 -0
  98. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/bed/BedtoolsMerge.py +0 -0
  99. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cellranger/CellRangerCount.py +0 -0
  100. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cellranger/CellRangerSummary.R +0 -0
  101. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cellranger/CellRangerVdj.py +0 -0
  102. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnv/AneuploidyScore.R +0 -0
  103. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnv/AneuploidyScoreSummary.R +0 -0
  104. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnv/TMADScore.R +0 -0
  105. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnv/TMADScoreSummary.R +0 -0
  106. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/CNVkitAccess.py +0 -0
  107. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/CNVkitAutobin.py +0 -0
  108. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/CNVkitBatch.py +0 -0
  109. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/CNVkitCall.py +0 -0
  110. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/CNVkitCoverage.py +0 -0
  111. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/CNVkitDiagram.py +0 -0
  112. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/CNVkitFix.py +0 -0
  113. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/CNVkitGuessBaits.py +0 -0
  114. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/CNVkitHeatmap.py +0 -0
  115. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/CNVkitReference.py +0 -0
  116. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/CNVkitScatter.py +0 -0
  117. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/CNVkitSegment.py +0 -0
  118. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/cnvkit/guess_baits.py +0 -0
  119. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/delim/RowsBinder.R +0 -0
  120. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/delim/SampleInfo.R +0 -0
  121. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/gene/GeneNameConversion.R +0 -0
  122. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/gene/GenePromoters.R +0 -0
  123. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/gsea/Enrichr.R +0 -0
  124. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/gsea/FGSEA.R +0 -0
  125. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/gsea/GSEA.R +0 -0
  126. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/gsea/PreRank.R +0 -0
  127. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/misc/Config2File.py +0 -0
  128. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/misc/Plot.R +0 -0
  129. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/misc/Shell.sh +0 -0
  130. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/misc/Str2File.py +0 -0
  131. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/plot/Heatmap.R +0 -0
  132. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/plot/Manhattan.R +0 -0
  133. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/plot/QQPlot.R +0 -0
  134. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/plot/ROC.R +0 -0
  135. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/plot/Scatter.R +0 -0
  136. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/plot/VennDiagram.R +0 -0
  137. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/protein/MMCIF2PDB.py +0 -0
  138. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/protein/PDB2Fasta.py +0 -0
  139. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/protein/Prodigy.py +0 -0
  140. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/protein/ProdigySummary.R +0 -0
  141. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/protein/RMSD.py +0 -0
  142. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/regulatory/MotifAffinityTest.R +0 -0
  143. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/regulatory/MotifAffinityTest_AtSNP.R +0 -0
  144. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/regulatory/MotifAffinityTest_MotifBreakR.R +0 -0
  145. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/regulatory/MotifScan.py +0 -0
  146. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/regulatory/VariantMotifPlot.R +0 -0
  147. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/regulatory/motifs-common.R +0 -0
  148. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/rnaseq/Simulation-ESCO.R +0 -0
  149. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/rnaseq/Simulation-RUVcorr.R +0 -0
  150. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/rnaseq/Simulation.R +0 -0
  151. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/rnaseq/UnitConversion.R +0 -0
  152. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/AnnData2Seurat.R +0 -0
  153. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/CCPlotR-patch.R +0 -0
  154. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/CellCellCommunication.py +0 -0
  155. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/CellCellCommunicationPlots.R +0 -0
  156. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/CellTypeAnnotation-celltypist.R +0 -0
  157. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/CellTypeAnnotation-direct.R +0 -0
  158. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/CellTypeAnnotation-hitype.R +0 -0
  159. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/CellTypeAnnotation-sccatch.R +0 -0
  160. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/CellTypeAnnotation-sctype.R +0 -0
  161. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/CellTypeAnnotation.R +0 -0
  162. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/CellsDistribution.R +0 -0
  163. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/DimPlots.R +0 -0
  164. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/ExprImputation-alra.R +0 -0
  165. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/ExprImputation-rmagic.R +0 -0
  166. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/ExprImputation-scimpute.R +0 -0
  167. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/ExprImputation.R +0 -0
  168. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/LoomTo10X.R +0 -0
  169. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/MetaMarkers.R +0 -0
  170. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/ModuleScoreCalculator.R +0 -0
  171. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/RadarPlots.R +0 -0
  172. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SCImpute.R +0 -0
  173. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SCP-plot.R +0 -0
  174. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/ScSimulation.R +0 -0
  175. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/ScVelo.py +0 -0
  176. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/Seurat2AnnData.R +0 -0
  177. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratClusterStats-clustree.R +0 -0
  178. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratClusterStats-dimplots.R +0 -0
  179. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratClusterStats-ngenes.R +0 -0
  180. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratClusterStats-stats.R +0 -0
  181. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratClusterStats.R +0 -0
  182. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratClustering.R +0 -0
  183. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratFilter.R +0 -0
  184. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratLoading.R +0 -0
  185. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratMap2Ref.R +0 -0
  186. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratMetadataMutater.R +0 -0
  187. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratPreparing.R +0 -0
  188. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratSplit.R +0 -0
  189. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratSubClustering.R +0 -0
  190. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratSubset.R +0 -0
  191. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/SeuratTo10X.R +0 -0
  192. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/Slingshot.R +0 -0
  193. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/Subset10X.R +0 -0
  194. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/celltypist-wrapper.py +0 -0
  195. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/sctype.R +0 -0
  196. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna/seurat_anndata_conversion.py +0 -0
  197. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna_metabolic_landscape/MetabolicFeatures.R +0 -0
  198. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayActivity.R +0 -0
  199. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.R +0 -0
  200. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/snp/MatrixEQTL.R +0 -0
  201. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/snp/Plink2GTMat.py +0 -0
  202. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/snp/PlinkCallRate.R +0 -0
  203. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/snp/PlinkFilter.py +0 -0
  204. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/snp/PlinkFreq.R +0 -0
  205. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/snp/PlinkFromVcf.py +0 -0
  206. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/snp/PlinkHWE.R +0 -0
  207. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/snp/PlinkHet.R +0 -0
  208. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/snp/PlinkIBD.R +0 -0
  209. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/snp/PlinkSimulation.py +0 -0
  210. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/snp/PlinkUpdateName.py +0 -0
  211. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/stats/ChowTest.R +0 -0
  212. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/stats/DiffCoexpr.R +0 -0
  213. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/stats/LiquidAssoc.R +0 -0
  214. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/stats/Mediation.R +0 -0
  215. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/stats/MetaPvalue.R +0 -0
  216. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/stats/MetaPvalue1.R +0 -0
  217. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcgamaf/Maf2Vcf.py +0 -0
  218. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcgamaf/MafAddChr.py +0 -0
  219. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcgamaf/maf2vcf.pl +0 -0
  220. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/Attach2Seurat.R +0 -0
  221. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/CDR3AAPhyschem.R +0 -0
  222. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/CloneResidency.R +0 -0
  223. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/CloneSizeQQPlot.R +0 -0
  224. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/GIANA/GIANA.py +0 -0
  225. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/GIANA/GIANA4.py +0 -0
  226. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/GIANA/Imgt_Human_TRBV.fasta +0 -0
  227. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/GIANA/query.py +0 -0
  228. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/Immunarch-basic.R +0 -0
  229. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/Immunarch-clonality.R +0 -0
  230. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/Immunarch-diversity.R +0 -0
  231. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/Immunarch-geneusage.R +0 -0
  232. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/Immunarch-kmer.R +0 -0
  233. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/Immunarch-overlap.R +0 -0
  234. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/Immunarch-spectratyping.R +0 -0
  235. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/Immunarch-tracking.R +0 -0
  236. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/Immunarch-vjjunc.R +0 -0
  237. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/Immunarch.R +0 -0
  238. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/Immunarch2VDJtools.R +0 -0
  239. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/ImmunarchFilter.R +0 -0
  240. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/ImmunarchLoading.R +0 -0
  241. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/ImmunarchSplitIdents.R +0 -0
  242. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/SampleDiversity.R +0 -0
  243. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/ScRepCombiningExpression.R +0 -0
  244. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/ScRepLoading.R +0 -0
  245. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TCRClusterStats.R +0 -0
  246. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TCRClustering.R +0 -0
  247. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TCRDock.py +0 -0
  248. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TESSA.R +0 -0
  249. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TESSA_source/Atchley_factors.csv +0 -0
  250. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TESSA_source/BriseisEncoder.py +0 -0
  251. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TESSA_source/MCMC_control.R +0 -0
  252. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TESSA_source/TrainedEncoder.h5 +0 -0
  253. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TESSA_source/fixed_b.csv +0 -0
  254. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TESSA_source/initialization.R +0 -0
  255. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TESSA_source/post_analysis.R +0 -0
  256. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TESSA_source/real_data.R +0 -0
  257. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TESSA_source/update.R +0 -0
  258. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/TESSA_source/utility.R +0 -0
  259. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/VJUsage.R +0 -0
  260. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/immunarch-patched.R +0 -0
  261. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/tcr/vdjtools-patch.sh +0 -0
  262. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/BcftoolsAnnotate.py +0 -0
  263. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/BcftoolsFilter.py +0 -0
  264. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/BcftoolsMerge.py +0 -0
  265. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/BcftoolsSort.py +0 -0
  266. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/BcftoolsView.py +0 -0
  267. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/TruvariBench.sh +0 -0
  268. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/TruvariBenchSummary.R +0 -0
  269. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/TruvariConsistency.R +0 -0
  270. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/Vcf2Bed.py +0 -0
  271. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/VcfAnno.py +0 -0
  272. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/VcfDownSample.sh +0 -0
  273. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/VcfFilter.py +0 -0
  274. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/VcfFix.py +0 -0
  275. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/VcfFix_utils.py +0 -0
  276. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/VcfIndex.py +0 -0
  277. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/VcfIntersect.py +0 -0
  278. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/VcfLiftOver.sh +0 -0
  279. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/VcfSplitSamples.py +0 -0
  280. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/vcf/bcftools_utils.py +0 -0
  281. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/web/Download.py +0 -0
  282. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/web/DownloadList.py +0 -0
  283. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/web/GCloudStorageDownloadBucket.py +0 -0
  284. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/web/GCloudStorageDownloadFile.py +0 -0
  285. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/scripts/web/gcloud_common.py +0 -0
  286. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/utils/__init__.py +0 -0
  287. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/utils/common_docstrs.py +0 -0
  288. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/utils/gene.py +0 -0
  289. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/utils/misc.py +0 -0
  290. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/utils/reference.py +0 -0
  291. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/utils/reporter.py +0 -0
  292. {biopipen-0.34.0 → biopipen-0.34.1}/biopipen/utils/vcf.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: biopipen
3
- Version: 0.34.0
3
+ Version: 0.34.1
4
4
  Summary: Bioinformatics processes/pipelines that can be run from `pipen run`
5
5
  License: MIT
6
6
  Author: pwwang
@@ -0,0 +1 @@
1
+ __version__ = "0.34.1"
@@ -61,7 +61,8 @@ class SeuratPreparing(Proc):
61
61
  Those paths should be either paths to directoies containing `matrix.mtx`,
62
62
  `barcodes.tsv` and `features.tsv` files that can be loaded by
63
63
  [`Seurat::Read10X()`](https://satijalab.org/seurat/reference/read10x),
64
- or paths to `h5` files that can be loaded by
64
+ or paths of loom files that can be loaded by `SeuratDisk::LoadLoom()`, or paths to
65
+ `h5` files that can be loaded by
65
66
  [`Seurat::Read10X_h5()`](https://satijalab.org/seurat/reference/read10x_h5).
66
67
 
67
68
  Each sample will be loaded individually and then merged into one `Seurat` object, and then perform QC.
@@ -110,9 +111,11 @@ class SeuratPreparing(Proc):
110
111
  min_cells (type=int): The minimum number of cells that a gene must be
111
112
  expressed in to be kept. This is used in `Seurat::CreateSeuratObject()`.
112
113
  Futher QC (`envs.cell_qc`, `envs.gene_qc`) will be performed after this.
114
+ It doesn't work when data is loaded from loom files.
113
115
  min_features (type=int): The minimum number of features that a cell must
114
116
  express to be kept. This is used in `Seurat::CreateSeuratObject()`.
115
117
  Futher QC (`envs.cell_qc`, `envs.gene_qc`) will be performed after this.
118
+ It doesn't work when data is loaded from loom files.
116
119
  cell_qc: Filter expression to filter cells, using
117
120
  `tidyrseurat::filter()`.
118
121
  Available QC keys include `nFeature_RNA`, `nCount_RNA`,
@@ -587,9 +590,11 @@ class SeuratClusterStats(Proc):
587
590
  ngenes (type=json): The number of genes expressed in each cell.
588
591
  Keys are the names of the plots and values are the dicts inherited from `env.ngenes_defaults`.
589
592
  features_defaults (ns): The default parameters for `features`.
590
- - features: The features to plot.
593
+ - features (type=auto): The features to plot.
591
594
  It can be either a string with comma separated features, a list of features, a file path with `file://` prefix with features
592
595
  (one per line), or an integer to use the top N features from `VariantFeatures(srtobj)`.
596
+ It can also be a dict with the keys as the feature group names and the values as the features, which
597
+ is used for heatmap to group the features.
593
598
  - order_by (type=auto): The order of the clusters to show on the plot.
594
599
  An expression passed to `dplyr::arrange()` on the grouped meta data frame (by `ident`).
595
600
  For example, you can order the clusters by the activation score of
@@ -1082,6 +1087,16 @@ class MarkersFinder(Proc):
1082
1087
  - <more>: Other arguments passed to [`scplotter::FeatureStatPlot()`](https://pwwang.github.io/scplotter/reference/FeatureStatPlot.html).
1083
1088
  allmarker_plots (type=json): All marker plot cases.
1084
1089
  The keys are the names of the cases and the values are the dicts inherited from `allmarker_plots_defaults`.
1090
+ allenrich_plots_defaults (ns): Default options for the plots to generate for the enrichment analysis.
1091
+ - plot_type: The type of the plot.
1092
+ - devpars (ns): The device parameters for the plots.
1093
+ - res (type=int): The resolution of the plots.
1094
+ - height (type=int): The height of the plots.
1095
+ - width (type=int): The width of the plots.
1096
+ - <more>: See <https://pwwang.github.io/scplotter/reference/EnrichmentPlot.html>.
1097
+ allenrich_plots (type=json): Cases of the plots to generate for the enrichment analysis.
1098
+ The keys are the names of the cases and the values are the dicts inherited from `allenrich_plots_defaults`.
1099
+ The cases under `envs.cases` can inherit this options.
1085
1100
  marker_plots_defaults (ns): Default options for the plots to generate for the markers.
1086
1101
  - plot_type: The type of the plot.
1087
1102
  See <https://pwwang.github.io/scplotter/reference/FeatureStatPlot.html>.
@@ -1170,6 +1185,11 @@ class MarkersFinder(Proc):
1170
1185
  "genes": 10,
1171
1186
  },
1172
1187
  "allmarker_plots": {},
1188
+ "allenrich_plots_defaults": {
1189
+ "plot_type": "heatmap",
1190
+ "devpars": {"res": 100},
1191
+ },
1192
+ "allenrich_plots": {},
1173
1193
  "marker_plots_defaults": {
1174
1194
  "plot_type": None,
1175
1195
  "more_formats": [],
@@ -1617,6 +1637,15 @@ class ScFGSEA(Proc):
1617
1637
  If it is < 1, will apply it to `padj`, selecting pathways with `padj` < `top`.
1618
1638
  eps (type=float): This parameter sets the boundary for calculating the p value.
1619
1639
  See <https://rdrr.io/bioc/fgsea/man/fgseaMultilevel.html>
1640
+ allpathway_plots_defaults (ns): Default options for the plots to generate for all pathways.
1641
+ - plot_type: The type of the plot, currently either dot or heatmap (default)
1642
+ - devpars (ns): The device parameters for the plots.
1643
+ - res (type=int): The resolution of the plots.
1644
+ - height (type=int): The height of the plots.
1645
+ - width (type=int): The width of the plots.
1646
+ - <more>: See <https://pwwang.github.io/biopipen.utils.R/reference/VizGSEA.html>.
1647
+ allpathway_plots (type=json): Cases of the plots to generate for all pathways.
1648
+ The keys are the names of the cases and the values are the dicts inherited from `allpathway_plots_defaults`.
1620
1649
  minsize (type=int): Minimal size of a gene set to test. All pathways below the threshold are excluded.
1621
1650
  maxsize (type=int): Maximal size of a gene set to test. All pathways above the threshold are excluded.
1622
1651
  rest (type=json;order=98): Rest arguments for [`fgsea()`](https://rdrr.io/bioc/fgsea/man/fgsea.html)
@@ -1644,18 +1673,23 @@ class ScFGSEA(Proc):
1644
1673
  "ident-2": None,
1645
1674
  "each": None,
1646
1675
  "subset": None,
1647
- "gmtfile": "",
1676
+ "gmtfile": "KEGG_2021_Human",
1648
1677
  "method": "s2n",
1649
1678
  "top": 20,
1650
1679
  "minsize": 10,
1651
1680
  "maxsize": 100,
1652
1681
  "eps": 0,
1682
+ "allpathway_plots_defaults": {
1683
+ "plot_type": "heatmap",
1684
+ "devpars": {"res": 100},
1685
+ },
1686
+ "allpathway_plots": {},
1653
1687
  "rest": {},
1654
1688
  "cases": {},
1655
1689
  }
1656
1690
  script = "file://../scripts/scrna/ScFGSEA.R"
1657
1691
  plugin_opts = {
1658
- "report": "file://../reports/scrna/ScFGSEA.svelte",
1692
+ "report": "file://../reports/common.svelte",
1659
1693
  "report_paging": 8,
1660
1694
  }
1661
1695
 
@@ -27,6 +27,8 @@ cache <- {{ envs.cache | r }}
27
27
  rest <- {{ envs.rest | r: todot="-" }}
28
28
  allmarker_plots_defaults <- {{ envs.allmarker_plots_defaults | r }}
29
29
  allmarker_plots <- {{ envs.allmarker_plots | r }}
30
+ allenrich_plots_defaults <- {{ envs.allenrich_plots_defaults | r }}
31
+ allenrich_plots <- {{ envs.allenrich_plots | r }}
30
32
  marker_plots_defaults <- {{ envs.marker_plots_defaults | r }}
31
33
  marker_plots <- {{ envs.marker_plots | r }}
32
34
  enrich_plots_defaults <- {{ envs.enrich_plots_defaults | r }}
@@ -59,6 +61,9 @@ if (!is.null(mutaters) && length(mutaters) > 0) {
59
61
  allmarker_plots <- lapply(allmarker_plots, function(x) {
60
62
  list_update(allmarker_plots_defaults, x)
61
63
  })
64
+ allenrich_plots <- lapply(allenrich_plots, function(x) {
65
+ list_update(allenrich_plots_defaults, x)
66
+ })
62
67
  marker_plots <- lapply(marker_plots, function(x) {
63
68
  list_update(marker_plots_defaults, x)
64
69
  })
@@ -82,6 +87,8 @@ defaults <- list(
82
87
  subset = subset,
83
88
  allmarker_plots_defaults = allmarker_plots_defaults,
84
89
  allmarker_plots = allmarker_plots,
90
+ allenrich_plots_defaults = allenrich_plots_defaults,
91
+ allenrich_plots = allenrich_plots,
85
92
  marker_plots_defaults = marker_plots_defaults,
86
93
  marker_plots = marker_plots,
87
94
  enrich_plots_defaults = enrich_plots_defaults,
@@ -107,6 +114,9 @@ post_casing <- function(name, case) {
107
114
  if (length(case$ident.1) > 0 && length(case$allmarker_plots) > 0) {
108
115
  stop("Cannot perform 'allmarker_plots' with a single comparison (ident-1 is set) in case '", name, "'")
109
116
  }
117
+ if (length(case$ident.1) > 0 && length(case$allenrich_plots) > 0) {
118
+ stop("Cannot perform 'allenrich_plots' with a single comparison (ident-1 is set) in case '", name, "'")
119
+ }
110
120
 
111
121
  case$allmarker_plots <- lapply(
112
122
  case$allmarker_plots,
@@ -114,6 +124,12 @@ post_casing <- function(name, case) {
114
124
  )
115
125
  case$allmarker_plots_defaults <- NULL
116
126
 
127
+ case$allenrich_plots <- lapply(
128
+ case$allenrich_plots,
129
+ function(x) { list_update(case$allenrich_plots_defaults, x) }
130
+ )
131
+ case$allenrich_plots_defaults <- NULL
132
+
117
133
  case$marker_plots <- lapply(
118
134
  case$marker_plots,
119
135
  function(x) { list_update(case$marker_plots_defaults, x) }
@@ -179,20 +195,31 @@ post_casing <- function(name, case) {
179
195
  # Will be processed by the case itself, which collects the markers
180
196
  newcase$allmarker_plots <- NULL
181
197
  newcase$allmarker_plots_defaults <- NULL
198
+ newcase$allenrich_plots <- NULL
199
+ newcase$allenrich_plots_defaults <- NULL
182
200
  newcase$overlaps <- NULL
183
201
  newcase$overlaps_defaults <- NULL
184
202
 
185
203
  outcases[[newname]] <- newcase
186
204
  }
187
205
 
188
- if (length(case$overlaps) > 0 || length(case$allmarker_plots) > 0) {
206
+ if (length(case$overlaps) > 0 || length(case$allmarker_plots) > 0 || length(case$allenrich_plots) > 0) {
189
207
  ovcase <- case
208
+
190
209
  ovcase$markers <- list()
191
210
  ovcase$allmarker_plots <- lapply(
192
211
  ovcase$allmarker_plots,
193
212
  function(x) { list_update(ovcase$allmarker_plots_defaults, x) }
194
213
  )
195
214
  ovcase$allmarker_plots_defaults <- NULL
215
+
216
+ ovcase$enriches <- list()
217
+ ovcase$allenrich_plots <- lapply(
218
+ ovcase$allenrich_plots,
219
+ function(x) { list_update(ovcase$allenrich_plots_defaults, x) }
220
+ )
221
+ ovcase$allenrich_plots_defaults <- NULL
222
+
196
223
  ovcase$overlaps <- lapply(
197
224
  ovcase$overlaps,
198
225
  function(x) { list_update(ovcase$overlaps_defaults, x) }
@@ -255,6 +282,32 @@ process_markers <- function(markers, info, case) {
255
282
 
256
283
  # Do enrichment analysis
257
284
  significant_markers <- unique(sigmarkers$gene)
285
+ empty <- if (case$enrich_style == "enrichr") {
286
+ data.frame(
287
+ Database = character(0),
288
+ Term = character(0),
289
+ Overlap = character(0),
290
+ P.value = numeric(0),
291
+ Adjusted.P.value = numeric(0),
292
+ Odds.Ratio = numeric(0),
293
+ Combined.Score = numeric(0),
294
+ Genes = character(0),
295
+ Rank = numeric(0)
296
+ )
297
+ } else { # clusterProfiler
298
+ data.frame(
299
+ ID = character(0),
300
+ Description = character(0),
301
+ GeneRatio = character(0),
302
+ BgRatio = character(0),
303
+ Count = integer(0),
304
+ pvalue = numeric(0),
305
+ p.adjust = numeric(0),
306
+ qvalue = numeric(0),
307
+ geneID = character(0),
308
+ Database = character(0)
309
+ )
310
+ }
258
311
 
259
312
  if (length(significant_markers) < 5) {
260
313
  if (case$error) {
@@ -271,6 +324,7 @@ process_markers <- function(markers, info, case) {
271
324
  ui = "tabs"
272
325
  )
273
326
  }
327
+ return(empty)
274
328
  } else {
275
329
  tryCatch({
276
330
  enrich <- RunEnrichment(
@@ -298,7 +352,9 @@ process_markers <- function(markers, info, case) {
298
352
 
299
353
  p <- do_call(VizEnrichment, plotargs)
300
354
 
301
- attr(p, "height") <- attr(p, "height") / 1.5
355
+ if (plotargs$plot_type == "bar") {
356
+ attr(p, "height") <- attr(p, "height") / 1.5
357
+ }
302
358
  outprefix <- file.path(info$prefix, paste0("enrich.", slugify(db), ".", slugify(plotname)))
303
359
  save_plot(p, outprefix, plotargs$devpars, formats = "png")
304
360
  plots[[length(plots) + 1]] <- reporter$image(outprefix, c(), FALSE)
@@ -311,6 +367,7 @@ process_markers <- function(markers, info, case) {
311
367
  )
312
368
  }
313
369
  }
370
+ return(enrich)
314
371
  }, error = function(e) {
315
372
  if (case$error) {
316
373
  stop("Error: ", e$message)
@@ -325,6 +382,7 @@ process_markers <- function(markers, info, case) {
325
382
  ui = "tabs"
326
383
  )
327
384
  }
385
+ return(empty)
328
386
  })
329
387
  }
330
388
  }
@@ -332,6 +390,7 @@ process_markers <- function(markers, info, case) {
332
390
  process_allmarkers <- function(markers, plotcases, casename, groupname) {
333
391
  name <- paste0(casename, "::", paste0(groupname, " (All Markers)"))
334
392
  info <- case_info(name, outdir, create = TRUE)
393
+
335
394
  for (plotname in names(plotcases)) {
336
395
  plotargs <- plotcases[[plotname]]
337
396
  plotargs$degs <- markers
@@ -348,6 +407,41 @@ process_allmarkers <- function(markers, plotcases, casename, groupname) {
348
407
  }
349
408
  }
350
409
 
410
+ process_allenriches <- function(enriches, plotcases, casename, groupname) {
411
+ name <- paste0(casename, "::", paste0(groupname, " (All Enrichments)"))
412
+ info <- case_info(name, outdir, create = TRUE)
413
+ dbs <- unique(as.character(enriches$Database))
414
+
415
+ for (db in dbs) {
416
+ plots <- list()
417
+ for (plotname in names(plotcases)) {
418
+ plotargs <- plotcases[[plotname]]
419
+ plotargs <- extract_vars(plotargs, "devpars")
420
+ plotargs$data <- enriches[enriches$Database == db, , drop = FALSE]
421
+ if (plotargs$plot_type == "heatmap") {
422
+ plotargs$group_by <- groupname
423
+ plotargs$show_row_names = plotargs$show_row_names %||% TRUE
424
+ plotargs$show_column_names = plotargs$show_column_names %||% TRUE
425
+ }
426
+
427
+ p <- do_call(VizEnrichment, plotargs)
428
+
429
+ if (plotargs$plot_type == "bar") {
430
+ attr(p, "height") <- attr(p, "height") / 1.5
431
+ }
432
+ outprefix <- file.path(info$prefix, paste0("allenrich.", slugify(db), ".", slugify(plotname)))
433
+ save_plot(p, outprefix, devpars, formats = "png")
434
+ plots[[length(plots) + 1]] <- reporter$image(outprefix, c(), FALSE)
435
+ }
436
+ reporter$add2(
437
+ list(name = db, contents = plots),
438
+ hs = c(info$section, info$name),
439
+ hs2 = plotname,
440
+ ui = "tabs"
441
+ )
442
+ }
443
+ }
444
+
351
445
  process_overlaps <- function(markers, ovcases, casename, groupname) {
352
446
  name <- paste0(casename, "::", paste0(groupname, ": Overlaps"))
353
447
  info <- case_info(name, outdir, create = TRUE)
@@ -415,38 +509,71 @@ run_case <- function(name) {
415
509
 
416
510
  case <- extract_vars(
417
511
  case,
418
- "dbs", "sigmarkers", "allmarker_plots", "marker_plots", "enrich_plots", "overlaps",
419
- "original_case", "markers", "each_name", "each", "enrich_style",
512
+ "dbs", "sigmarkers", "allmarker_plots", "allenrich_plots", "marker_plots", "enrich_plots",
513
+ "overlaps", "original_case", "markers", "enriches", "each_name", "each", "enrich_style",
420
514
  allow_nonexisting = TRUE
421
515
  )
422
- if (!is.null(markers)) { # It is the overlap/allmarker case
423
- log$info("- Summarizing markers in subcases (by each: {each}) ...")
424
- # handle the overlaps / allmarkers analysis here
425
- if (!is.data.frame(markers)) {
426
- markers <- do_call(rbind, lapply(names(markers), function(x) {
427
- markers_df <- markers[[x]]
428
- markers_df[[each]] <- x
429
- markers_df
430
- }))
431
- }
432
- # gene, p_val, avg_log2FC, pct.1, pct.2, p_val_adj, diff_pct, <each>
433
516
 
434
- if (length(allmarker_plots) > 0) {
435
- log$info("- Visualizing all markers together ...")
436
- attr(markers, "object") <- srtobj
437
- attr(markers, "group.by") <- each
438
- attr(markers, "ident.1") <- NULL
439
- attr(markers, "ident.2") <- NULL
440
- process_allmarkers(markers, allmarker_plots, name, each)
517
+ if (!is.null(markers) || !is.null(enriches)) {
518
+ if (!is.null(markers)) { # It is the overlap/allmarker case
519
+ log$info("- Summarizing markers in subcases (by each: {each}) ...")
520
+ # handle the overlaps / allmarkers analysis here
521
+ if (!is.data.frame(markers)) {
522
+ each_levels <- names(markers)
523
+ markers <- do_call(rbind, lapply(each_levels, function(x) {
524
+ markers_df <- markers[[x]]
525
+ if (nrow(markers_df) > 0) {
526
+ markers_df[[each]] <- x
527
+ } else {
528
+ markers_df[[each]] <- character(0) # Empty case
529
+ }
530
+ markers_df
531
+ }))
532
+ markers[[each]] <- factor(markers[[each]], levels = each_levels)
533
+ }
534
+ # gene, p_val, avg_log2FC, pct.1, pct.2, p_val_adj, diff_pct, <each>
535
+
536
+ if (length(allmarker_plots) > 0) {
537
+ log$info("- Visualizing all markers together ...")
538
+ attr(markers, "object") <- srtobj
539
+ attr(markers, "group.by") <- each
540
+ attr(markers, "ident.1") <- NULL
541
+ attr(markers, "ident.2") <- NULL
542
+ process_allmarkers(markers, allmarker_plots, name, each)
543
+ }
544
+
545
+ if (length(overlaps) > 0) {
546
+ log$info("- Visualizing overlaps between subcases ...")
547
+ process_overlaps(markers, overlaps, name, each)
548
+ }
549
+
441
550
  }
442
551
 
443
- if (length(overlaps) > 0) {
444
- log$info("- Visualizing overlaps between subcases ...")
445
- process_overlaps(markers, overlaps, name, each)
552
+ if (!is.null(enriches)) {
553
+ log$info("- Summarizing enrichments in subcases (by each: {each}) ...")
554
+ if (!is.data.frame(enriches)) {
555
+ each_levels <- names(enriches)
556
+ enriches <- do_call(rbind, lapply(each_levels, function(x) {
557
+ enrich_df <- enriches[[x]]
558
+ if (nrow(enrich_df) > 0) {
559
+ enrich_df[[each]] <- x
560
+ } else {
561
+ enrich_df[[each]] <- character(0) # Empty case
562
+ }
563
+ enrich_df
564
+ }))
565
+ enriches[[each]] <- factor(enriches[[each]], levels = each_levels)
566
+ }
567
+
568
+ if (length(allenrich_plots) > 0) {
569
+ log$info("- Visualizing all enrichments together ...")
570
+ process_allenriches(enriches, allenrich_plots, name, each)
571
+ }
446
572
  }
447
573
 
448
574
  return(invisible())
449
575
  }
576
+
450
577
  case$object <- srtobj
451
578
  markers <- do_call(RunSeuratDEAnalysis, case)
452
579
  case$object <- NULL
@@ -454,6 +581,7 @@ run_case <- function(name) {
454
581
 
455
582
  if (is.null(case$ident.1)) {
456
583
  all_idents <- unique(as.character(markers[[case$group.by]]))
584
+ enriches <- list()
457
585
  for (ident in all_idents) {
458
586
  log$info("- {case$group.by}: {ident} ...")
459
587
  ident_markers <- markers[markers[[case$group.by]] == ident, , drop = TRUE]
@@ -461,7 +589,7 @@ run_case <- function(name) {
461
589
  info <- case_info(casename, outdir, create = TRUE)
462
590
 
463
591
  attr(ident_markers, "ident.1") <- ident
464
- process_markers(ident_markers, info = info, case = list(
592
+ enrich <- process_markers(ident_markers, info = info, case = list(
465
593
  dbs = dbs,
466
594
  sigmarkers = sigmarkers,
467
595
  enrich_style = enrich_style,
@@ -470,6 +598,7 @@ run_case <- function(name) {
470
598
  error = case$error,
471
599
  ident = NULL
472
600
  ))
601
+ enriches[[ident]] <- enrich
473
602
  }
474
603
 
475
604
  if (length(allmarker_plots) > 0) {
@@ -481,9 +610,14 @@ run_case <- function(name) {
481
610
  log$info("- Visualizing overlaps between subcases ...")
482
611
  process_overlaps(markers, overlaps, name, case$group.by)
483
612
  }
613
+
614
+ if (length(allenrich_plots) > 0) {
615
+ log$info("- Visualizing all enrichments together ...")
616
+ process_allenriches(enriches, allenrich_plots, name, case$group.by)
617
+ }
484
618
  } else {
485
619
  info <- case_info(name, outdir, create = TRUE)
486
- process_markers(markers, info = info, case = list(
620
+ enrich <- process_markers(markers, info = info, case = list(
487
621
  dbs = dbs,
488
622
  sigmarkers = sigmarkers,
489
623
  enrich_style = enrich_style,
@@ -493,9 +627,10 @@ run_case <- function(name) {
493
627
  ident = if (is.null(case$ident.2)) case$ident.1 else paste0(case$ident.1, " vs ", case$ident.2)
494
628
  ))
495
629
 
496
- if (!is.null(original_case)) {
630
+ if (!is.null(original_case) && !is.null(cases[[original_case]])) {
497
631
  markers[[each_name]] <- each
498
632
  cases[[original_case]]$markers[[each]] <<- markers
633
+ cases[[original_case]]$enriches[[each]] <<- enrich
499
634
  }
500
635
  }
501
636
 
@@ -18,6 +18,8 @@ top <- {{envs.top | r}} # nolint
18
18
  minsize <- {{envs.minSize | default: envs.minsize | r}} # nolint
19
19
  maxsize <- {{envs.maxSize | default: envs.maxsize | r}} # nolint
20
20
  eps <- {{envs.eps | r}} # nolint
21
+ allpathway_plots_defaults <- {{envs.allpathway_plots_defaults | r}} # nolint
22
+ allpathway_plots <- {{envs.allpathway_plots | r}} #
21
23
  ncores <- {{envs.ncores | r}} # nolint
22
24
  rest <- {{envs.rest | r: todot="-"}} # nolint
23
25
  cases <- {{envs.cases | r: todot="-"}} # nolint
@@ -25,6 +27,10 @@ cases <- {{envs.cases | r: todot="-"}} # nolint
25
27
  log <- get_logger()
26
28
  reporter <- get_reporter()
27
29
 
30
+ allpathway_plots <- lapply(allpathway_plots, function(x) {
31
+ list_update(allpathway_plots_defaults, x)
32
+ })
33
+
28
34
  log$info("Reading Seurat object ...")
29
35
  srtobj <- read_obj(srtfile)
30
36
  if (!"Identity" %in% colnames(srtobj@meta.data)) {
@@ -48,6 +54,8 @@ defaults <- list(
48
54
  minsize = minsize,
49
55
  maxsize = maxsize,
50
56
  eps = eps,
57
+ allpathway_plots_defaults = allpathway_plots_defaults,
58
+ allpathway_plots = allpathway_plots,
51
59
  ncores = ncores,
52
60
  rest = rest
53
61
  )
@@ -58,6 +66,10 @@ expand_each <- function(name, case) {
58
66
  case$group.by <- case$group.by %||% "Identity"
59
67
 
60
68
  if (is.null(case$each) || is.na(case$each) || nchar(case$each) == 0 || isFALSE(each)) {
69
+ if (length(case$allpathway_plots) > 0) {
70
+ stop("Cannot perform `allpathway_plots` without `each` defined.")
71
+ }
72
+
61
73
  outcases[[name]] <- case
62
74
  } else {
63
75
  eachs <- if (!is.null(case$subset)) {
@@ -77,10 +89,13 @@ expand_each <- function(name, case) {
77
89
  newname <- paste0(case$each, "::", each)
78
90
  newcase <- case
79
91
 
80
- newcase$original_case <- name
92
+ newcase$original_case <- paste0(name, " (all ", case$each,")")
81
93
  newcase$each_name <- case$each
82
94
  newcase$each <- each
83
95
 
96
+ newcase$allpathway_plots_defaults <- NULL
97
+ newcase$allpathway_plots <- NULL
98
+
84
99
  if (!is.null(case$subset)) {
85
100
  newcase$subset <- paste0(case$subset, " & ", bQuote(case$each), " == '", each, "'")
86
101
  } else {
@@ -89,6 +104,18 @@ expand_each <- function(name, case) {
89
104
 
90
105
  outcases[[newname]] <- newcase
91
106
  }
107
+
108
+ if (length(case$allpathway_plots) > 0) {
109
+ newcase <- case
110
+
111
+ newcase$gseas <- list()
112
+ newcase$allpathway_plots <- lapply(
113
+ newcase$allpathway_plots,
114
+ function(x) { list_update(newcase$allpathway_plots_defaults, x) }
115
+ )
116
+
117
+ outcases[[paste0(name, " (all ", case$each,")")]] <- newcase
118
+ }
92
119
  }
93
120
  outcases
94
121
  }
@@ -108,12 +135,50 @@ ensure_sobj <- function(expr, allow_empty) {
108
135
  })
109
136
  }
110
137
 
111
-
112
138
  do_case <- function(name) {
113
139
  log$info("- Processing case: {name} ...")
114
140
  case <- cases[[name]]
115
141
  info <- case_info(name, outdir, create = TRUE)
116
142
 
143
+ if (!is.null(case$gseas)) {
144
+
145
+ each_levels <- names(case$gseas)
146
+ gseas <- do_call(rbind, lapply(each_levels, function(x) {
147
+ gsea_df <- case$gseas[[x]]
148
+ if (nrow(gsea_df) > 0) {
149
+ gsea_df[[case$each]] <- x
150
+ } else {
151
+ gsea_df[[case$each]] <- character(0) # Empty case
152
+ }
153
+ gsea_df
154
+ }))
155
+ gseas[[case$each]] <- factor(gseas[[case$each]], levels = each_levels)
156
+
157
+ for (plotname in names(case$allpathway_plots)) {
158
+ plotargs <- case$allpathway_plots[[plotname]]
159
+ plotargs <- extract_vars(plotargs, "devpars")
160
+ plotargs$gsea_results <- gseas
161
+ plotargs$group_by <- case$each
162
+ if (plotargs$plot_type == "heatmap") {
163
+ plotargs$show_row_names <- plotargs$show_row_names %||% TRUE
164
+ plotargs$show_column_names <- plotargs$show_column_names %||% TRUE
165
+ }
166
+
167
+ p <- do_call(VizGSEA, plotargs)
168
+
169
+ outprefix <- file.path(info$prefix, paste0("all.", slugify(plotname)))
170
+ save_plot(p, outprefix, devpars, formats = "png")
171
+ reporter$add2(
172
+ list(kind = "descr", content = paste0("Pathways for all ", case$each, ".")),
173
+ list(kind = "image", src = paste0(outprefix, ".png")),
174
+ hs = c(info$section, info$name),
175
+ hs2 = plotname
176
+ )
177
+ }
178
+
179
+ return(invisible(NULL))
180
+ }
181
+
117
182
  allow_empty = !is.null(case$each)
118
183
  # prepare expression matrix
119
184
  log$info(" Preparing expression matrix...")
@@ -167,9 +232,9 @@ do_case <- function(name) {
167
232
  log$info(" Getting preranks...")
168
233
  ranks <- RunGSEAPreRank(exprs, allclasses, case$ident.1, case$ident.2, case$method)
169
234
  write.table(
170
- ranks,
171
- file.path(info$prefix, "fgsea.rank"),
172
- row.names = FALSE,
235
+ as.data.frame(ranks),
236
+ file.path(info$prefix, "fgsea.rank.txt"),
237
+ row.names = TRUE,
173
238
  col.names = TRUE,
174
239
  sep = "\t",
175
240
  quote = FALSE
@@ -216,15 +281,17 @@ do_case <- function(name) {
216
281
  quote = FALSE
217
282
  )
218
283
 
284
+ aspect.ratio <- sqrt(case$top) / sqrt(10)
219
285
  p_summary <- VizGSEA(
220
286
  result,
221
287
  plot_type = "summary",
222
- top_term = case$top
288
+ top_term = case$top,
289
+ aspect.ratio = aspect.ratio
223
290
  )
224
291
  save_plot(
225
292
  p_summary,
226
293
  file.path(info$prefix, "summary"),
227
- devpars = list(res = 100, height = attr(p_summary, "height") * 100, width = attr(p_summary, "width") * 100),
294
+ devpars = list(res = 100, height = attr(p_summary, "height") * 100 / 1.5, width = attr(p_summary, "width") * 100),
228
295
  formats = "png"
229
296
  )
230
297
 
@@ -243,13 +310,13 @@ do_case <- function(name) {
243
310
 
244
311
  reporter$add2(
245
312
  list(
246
- name = "Table",
313
+ name = paste0("Table (", case$ident.1, " vs ", case$ident.2, ")"),
247
314
  contents = list(
248
315
  list(kind = "descr", content = paste0(
249
316
  "Showing top 50 pathways by padj in descending order. ",
250
317
  "Use 'Download the entire data' button to download all pathways."
251
318
  )),
252
- list(kind = "table", src = file.path(info$prefix, "fgsea"), data = list(nrows = 50))
319
+ list(kind = "table", src = file.path(info$prefix, "fgsea.tsv"), data = list(nrows = 50))
253
320
  )
254
321
  ),
255
322
  list(
@@ -269,8 +336,14 @@ do_case <- function(name) {
269
336
  hs = c(info$section, info$name),
270
337
  ui = "tabs"
271
338
  )
339
+
340
+ if (!is.null(case$original_case) && !is.null(cases[[case$original_case]])) {
341
+ cases[[case$original_case]]$gseas[[case$each]] <<- result
342
+ }
343
+
344
+ invisible()
272
345
  }
273
346
 
274
- sapply(sort(names(cases)), function(name) do_case(name))
347
+ sapply(names(cases), function(name) do_case(name))
275
348
 
276
349
  reporter$save(joboutdir)
@@ -53,6 +53,10 @@ hvf <- NULL
53
53
  }
54
54
  }
55
55
 
56
+ if (is.list(features)) {
57
+ return(lapply(features, function(x) {.get_features(x, object) }))
58
+ }
59
+
56
60
  return (trimws(unlist(strsplit(features, ","))))
57
61
  }
58
62
 
@@ -144,7 +144,9 @@ process_markers <- function(markers, info, case) {
144
144
  p <- do_call(VizEnrichment, plotargs)
145
145
 
146
146
  outprefix <- file.path(info$prefix, paste0("enrich.", slugify(db), ".", slugify(plotname)))
147
- attr(p, "height") <- attr(p, "height") / 1.5
147
+ if (plotargs$plot_type == "bar") {
148
+ attr(p, "height") <- attr(p, "height") / 1.5
149
+ }
148
150
  save_plot(p, outprefix, plotargs$devpars, formats = "png")
149
151
  plots[[length(plots) + 1]] <- reporter$image(outprefix, c(), FALSE)
150
152
  }