biopipen 0.34.6__tar.gz → 0.34.8__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 (290) hide show
  1. {biopipen-0.34.6 → biopipen-0.34.8}/PKG-INFO +1 -1
  2. biopipen-0.34.8/biopipen/__init__.py +1 -0
  3. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/scrna.py +6 -0
  4. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/MarkersFinder.R +31 -19
  5. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/PseudoBulkDEG.R +112 -27
  6. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/ScFGSEA.R +19 -21
  7. {biopipen-0.34.6 → biopipen-0.34.8}/pyproject.toml +1 -1
  8. {biopipen-0.34.6 → biopipen-0.34.8}/setup.py +1 -1
  9. biopipen-0.34.6/biopipen/__init__.py +0 -1
  10. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/core/__init__.py +0 -0
  11. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/core/config.py +0 -0
  12. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/core/config.toml +0 -0
  13. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/core/defaults.py +0 -0
  14. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/core/filters.py +0 -0
  15. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/core/proc.py +0 -0
  16. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/core/testing.py +0 -0
  17. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/__init__.py +0 -0
  18. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/bam.py +0 -0
  19. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/bed.py +0 -0
  20. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/cellranger.py +0 -0
  21. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/cellranger_pipeline.py +0 -0
  22. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/cnv.py +0 -0
  23. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/cnvkit.py +0 -0
  24. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/cnvkit_pipeline.py +0 -0
  25. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/delim.py +0 -0
  26. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/gene.py +0 -0
  27. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/gsea.py +0 -0
  28. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/misc.py +0 -0
  29. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/plot.py +0 -0
  30. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/protein.py +0 -0
  31. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/regulatory.py +0 -0
  32. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/rnaseq.py +0 -0
  33. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/scrna_metabolic_landscape.py +0 -0
  34. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/snp.py +0 -0
  35. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/stats.py +0 -0
  36. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/tcgamaf.py +0 -0
  37. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/tcr.py +0 -0
  38. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/vcf.py +0 -0
  39. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/ns/web.py +0 -0
  40. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/bam/CNAClinic.svelte +0 -0
  41. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/bam/CNVpytor.svelte +0 -0
  42. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/bam/ControlFREEC.svelte +0 -0
  43. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/cellranger/CellRangerCount.svelte +0 -0
  44. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/cellranger/CellRangerSummary.svelte +0 -0
  45. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/cellranger/CellRangerVdj.svelte +0 -0
  46. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/cnv/AneuploidyScore.svelte +0 -0
  47. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/cnv/AneuploidyScoreSummary.svelte +0 -0
  48. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/cnv/TMADScoreSummary.svelte +0 -0
  49. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/cnvkit/CNVkitDiagram.svelte +0 -0
  50. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/cnvkit/CNVkitHeatmap.svelte +0 -0
  51. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/cnvkit/CNVkitScatter.svelte +0 -0
  52. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/common.svelte +0 -0
  53. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/gsea/FGSEA.svelte +0 -0
  54. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/gsea/GSEA.svelte +0 -0
  55. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/protein/ProdigySummary.svelte +0 -0
  56. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/scrna/CellsDistribution.svelte +0 -0
  57. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/scrna/DimPlots.svelte +0 -0
  58. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/scrna/MarkersFinder.svelte +0 -0
  59. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/scrna/MetaMarkers.svelte +0 -0
  60. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/scrna/RadarPlots.svelte +0 -0
  61. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/scrna_metabolic_landscape/MetabolicFeatures.svelte +0 -0
  62. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayActivity.svelte +0 -0
  63. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.svelte +0 -0
  64. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/snp/PlinkCallRate.svelte +0 -0
  65. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/snp/PlinkFreq.svelte +0 -0
  66. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/snp/PlinkHWE.svelte +0 -0
  67. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/snp/PlinkHet.svelte +0 -0
  68. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/snp/PlinkIBD.svelte +0 -0
  69. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/tcr/CDR3AAPhyschem.svelte +0 -0
  70. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/tcr/ClonalStats.svelte +0 -0
  71. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/tcr/CloneResidency.svelte +0 -0
  72. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/tcr/Immunarch.svelte +0 -0
  73. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/tcr/SampleDiversity.svelte +0 -0
  74. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/tcr/TCRClusterStats.svelte +0 -0
  75. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/tcr/TESSA.svelte +0 -0
  76. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/tcr/VJUsage.svelte +0 -0
  77. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/utils/misc.liq +0 -0
  78. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/vcf/TruvariBenchSummary.svelte +0 -0
  79. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/reports/vcf/TruvariConsistency.svelte +0 -0
  80. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bam/BamMerge.py +0 -0
  81. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bam/BamSampling.py +0 -0
  82. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bam/BamSort.py +0 -0
  83. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bam/BamSplitChroms.py +0 -0
  84. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bam/BamSubsetByBed.py +0 -0
  85. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bam/CNAClinic.R +0 -0
  86. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bam/CNVpytor.py +0 -0
  87. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bam/ControlFREEC.py +0 -0
  88. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bam/SamtoolsView.py +0 -0
  89. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bed/Bed2Vcf.py +0 -0
  90. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bed/BedConsensus.py +0 -0
  91. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bed/BedLiftOver.sh +0 -0
  92. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bed/BedtoolsIntersect.py +0 -0
  93. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bed/BedtoolsMakeWindows.py +0 -0
  94. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/bed/BedtoolsMerge.py +0 -0
  95. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cellranger/CellRangerCount.py +0 -0
  96. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cellranger/CellRangerSummary.R +0 -0
  97. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cellranger/CellRangerVdj.py +0 -0
  98. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnv/AneuploidyScore.R +0 -0
  99. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnv/AneuploidyScoreSummary.R +0 -0
  100. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnv/TMADScore.R +0 -0
  101. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnv/TMADScoreSummary.R +0 -0
  102. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/CNVkitAccess.py +0 -0
  103. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/CNVkitAutobin.py +0 -0
  104. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/CNVkitBatch.py +0 -0
  105. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/CNVkitCall.py +0 -0
  106. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/CNVkitCoverage.py +0 -0
  107. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/CNVkitDiagram.py +0 -0
  108. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/CNVkitFix.py +0 -0
  109. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/CNVkitGuessBaits.py +0 -0
  110. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/CNVkitHeatmap.py +0 -0
  111. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/CNVkitReference.py +0 -0
  112. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/CNVkitScatter.py +0 -0
  113. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/CNVkitSegment.py +0 -0
  114. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/cnvkit/guess_baits.py +0 -0
  115. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/delim/RowsBinder.R +0 -0
  116. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/delim/SampleInfo.R +0 -0
  117. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/gene/GeneNameConversion.R +0 -0
  118. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/gene/GenePromoters.R +0 -0
  119. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/gsea/Enrichr.R +0 -0
  120. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/gsea/FGSEA.R +0 -0
  121. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/gsea/GSEA.R +0 -0
  122. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/gsea/PreRank.R +0 -0
  123. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/misc/Config2File.py +0 -0
  124. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/misc/Plot.R +0 -0
  125. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/misc/Shell.sh +0 -0
  126. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/misc/Str2File.py +0 -0
  127. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/plot/Heatmap.R +0 -0
  128. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/plot/Manhattan.R +0 -0
  129. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/plot/QQPlot.R +0 -0
  130. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/plot/ROC.R +0 -0
  131. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/plot/Scatter.R +0 -0
  132. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/plot/VennDiagram.R +0 -0
  133. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/protein/MMCIF2PDB.py +0 -0
  134. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/protein/PDB2Fasta.py +0 -0
  135. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/protein/Prodigy.py +0 -0
  136. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/protein/ProdigySummary.R +0 -0
  137. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/protein/RMSD.py +0 -0
  138. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/regulatory/MotifAffinityTest.R +0 -0
  139. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/regulatory/MotifAffinityTest_AtSNP.R +0 -0
  140. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/regulatory/MotifAffinityTest_MotifBreakR.R +0 -0
  141. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/regulatory/MotifScan.py +0 -0
  142. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/regulatory/VariantMotifPlot.R +0 -0
  143. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/regulatory/motifs-common.R +0 -0
  144. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/rnaseq/Simulation-ESCO.R +0 -0
  145. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/rnaseq/Simulation-RUVcorr.R +0 -0
  146. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/rnaseq/Simulation.R +0 -0
  147. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/rnaseq/UnitConversion.R +0 -0
  148. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/AnnData2Seurat.R +0 -0
  149. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/CCPlotR-patch.R +0 -0
  150. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/CellCellCommunication.py +0 -0
  151. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/CellCellCommunicationPlots.R +0 -0
  152. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/CellTypeAnnotation-celltypist.R +0 -0
  153. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/CellTypeAnnotation-direct.R +0 -0
  154. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/CellTypeAnnotation-hitype.R +0 -0
  155. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/CellTypeAnnotation-sccatch.R +0 -0
  156. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/CellTypeAnnotation-sctype.R +0 -0
  157. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/CellTypeAnnotation.R +0 -0
  158. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/CellsDistribution.R +0 -0
  159. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/DimPlots.R +0 -0
  160. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/ExprImputation-alra.R +0 -0
  161. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/ExprImputation-rmagic.R +0 -0
  162. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/ExprImputation-scimpute.R +0 -0
  163. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/ExprImputation.R +0 -0
  164. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/LoomTo10X.R +0 -0
  165. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/MetaMarkers.R +0 -0
  166. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/ModuleScoreCalculator.R +0 -0
  167. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/RadarPlots.R +0 -0
  168. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SCImpute.R +0 -0
  169. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/ScSimulation.R +0 -0
  170. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/ScVelo.py +0 -0
  171. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/Seurat2AnnData.R +0 -0
  172. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratClusterStats-clustree.R +0 -0
  173. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratClusterStats-dimplots.R +0 -0
  174. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratClusterStats-features.R +0 -0
  175. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratClusterStats-ngenes.R +0 -0
  176. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratClusterStats-stats.R +0 -0
  177. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratClusterStats.R +0 -0
  178. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratClustering.R +0 -0
  179. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratFilter.R +0 -0
  180. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratLoading.R +0 -0
  181. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratMap2Ref.R +0 -0
  182. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratMetadataMutater.R +0 -0
  183. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratPreparing.R +0 -0
  184. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratSplit.R +0 -0
  185. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratSubClustering.R +0 -0
  186. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratSubset.R +0 -0
  187. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/SeuratTo10X.R +0 -0
  188. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/Slingshot.R +0 -0
  189. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/Subset10X.R +0 -0
  190. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/TopExpressingGenes.R +0 -0
  191. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/celltypist-wrapper.py +0 -0
  192. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/sctype.R +0 -0
  193. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna/seurat_anndata_conversion.py +0 -0
  194. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna_metabolic_landscape/MetabolicFeatures.R +0 -0
  195. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayActivity.R +0 -0
  196. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.R +0 -0
  197. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/snp/MatrixEQTL.R +0 -0
  198. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/snp/Plink2GTMat.py +0 -0
  199. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/snp/PlinkCallRate.R +0 -0
  200. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/snp/PlinkFilter.py +0 -0
  201. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/snp/PlinkFreq.R +0 -0
  202. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/snp/PlinkFromVcf.py +0 -0
  203. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/snp/PlinkHWE.R +0 -0
  204. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/snp/PlinkHet.R +0 -0
  205. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/snp/PlinkIBD.R +0 -0
  206. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/snp/PlinkSimulation.py +0 -0
  207. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/snp/PlinkUpdateName.py +0 -0
  208. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/stats/ChowTest.R +0 -0
  209. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/stats/DiffCoexpr.R +0 -0
  210. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/stats/LiquidAssoc.R +0 -0
  211. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/stats/Mediation.R +0 -0
  212. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/stats/MetaPvalue.R +0 -0
  213. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/stats/MetaPvalue1.R +0 -0
  214. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcgamaf/Maf2Vcf.py +0 -0
  215. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcgamaf/MafAddChr.py +0 -0
  216. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcgamaf/maf2vcf.pl +0 -0
  217. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/Attach2Seurat.R +0 -0
  218. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/CDR3AAPhyschem.R +0 -0
  219. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/ClonalStats.R +0 -0
  220. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/CloneResidency.R +0 -0
  221. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/CloneSizeQQPlot.R +0 -0
  222. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/GIANA/GIANA.py +0 -0
  223. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/GIANA/GIANA4.py +0 -0
  224. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/GIANA/Imgt_Human_TRBV.fasta +0 -0
  225. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/GIANA/query.py +0 -0
  226. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/Immunarch-basic.R +0 -0
  227. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/Immunarch-clonality.R +0 -0
  228. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/Immunarch-diversity.R +0 -0
  229. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/Immunarch-geneusage.R +0 -0
  230. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/Immunarch-kmer.R +0 -0
  231. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/Immunarch-overlap.R +0 -0
  232. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/Immunarch-spectratyping.R +0 -0
  233. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/Immunarch-tracking.R +0 -0
  234. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/Immunarch-vjjunc.R +0 -0
  235. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/Immunarch.R +0 -0
  236. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/Immunarch2VDJtools.R +0 -0
  237. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/ImmunarchFilter.R +0 -0
  238. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/ImmunarchLoading.R +0 -0
  239. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/ImmunarchSplitIdents.R +0 -0
  240. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/SampleDiversity.R +0 -0
  241. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/ScRepCombiningExpression.R +0 -0
  242. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/ScRepLoading.R +0 -0
  243. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TCRClusterStats.R +0 -0
  244. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TCRClustering.R +0 -0
  245. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TCRDock.py +0 -0
  246. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TESSA.R +0 -0
  247. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TESSA_source/Atchley_factors.csv +0 -0
  248. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TESSA_source/BriseisEncoder.py +0 -0
  249. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TESSA_source/MCMC_control.R +0 -0
  250. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TESSA_source/TrainedEncoder.h5 +0 -0
  251. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TESSA_source/fixed_b.csv +0 -0
  252. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TESSA_source/initialization.R +0 -0
  253. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TESSA_source/post_analysis.R +0 -0
  254. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TESSA_source/real_data.R +0 -0
  255. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TESSA_source/update.R +0 -0
  256. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/TESSA_source/utility.R +0 -0
  257. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/VJUsage.R +0 -0
  258. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/immunarch-patched.R +0 -0
  259. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/tcr/vdjtools-patch.sh +0 -0
  260. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/BcftoolsAnnotate.py +0 -0
  261. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/BcftoolsFilter.py +0 -0
  262. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/BcftoolsMerge.py +0 -0
  263. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/BcftoolsSort.py +0 -0
  264. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/BcftoolsView.py +0 -0
  265. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/TruvariBench.sh +0 -0
  266. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/TruvariBenchSummary.R +0 -0
  267. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/TruvariConsistency.R +0 -0
  268. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/Vcf2Bed.py +0 -0
  269. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/VcfAnno.py +0 -0
  270. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/VcfDownSample.sh +0 -0
  271. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/VcfFilter.py +0 -0
  272. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/VcfFix.py +0 -0
  273. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/VcfFix_utils.py +0 -0
  274. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/VcfIndex.py +0 -0
  275. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/VcfIntersect.py +0 -0
  276. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/VcfLiftOver.sh +0 -0
  277. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/VcfSplitSamples.py +0 -0
  278. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/vcf/bcftools_utils.py +0 -0
  279. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/web/Download.py +0 -0
  280. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/web/DownloadList.py +0 -0
  281. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/web/GCloudStorageDownloadBucket.py +0 -0
  282. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/web/GCloudStorageDownloadFile.py +0 -0
  283. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/scripts/web/gcloud_common.py +0 -0
  284. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/utils/__init__.py +0 -0
  285. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/utils/common_docstrs.py +0 -0
  286. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/utils/gene.py +0 -0
  287. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/utils/misc.py +0 -0
  288. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/utils/reference.py +0 -0
  289. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/utils/reporter.py +0 -0
  290. {biopipen-0.34.6 → biopipen-0.34.8}/biopipen/utils/vcf.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: biopipen
3
- Version: 0.34.6
3
+ Version: 0.34.8
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.8"
@@ -2706,6 +2706,7 @@ class PseudoBulkDEG(Proc):
2706
2706
  analysis.
2707
2707
 
2708
2708
  Envs:
2709
+ ncores (type=int): Number of cores to use for parallelization.
2709
2710
  mutaters (type=json): Mutaters to mutate the metadata of the
2710
2711
  seurat object. Keys are the new column names and values are the
2711
2712
  expressions to mutate the columns. These new columns can be
@@ -2715,6 +2716,9 @@ class PseudoBulkDEG(Proc):
2715
2716
  each: The column name in metadata to separate the cells into different cases.
2716
2717
  When specified, the case will be expanded to multiple cases for
2717
2718
  each value in the column.
2719
+ cache (type=auto): Where to cache the results.
2720
+ If `True`, cache to `outdir` of the job. If `False`, don't cache.
2721
+ Otherwise, specify the directory to cache to.
2718
2722
  subset: An expression in string to subset the cells.
2719
2723
  aggregate_by: The column names in metadata to aggregate the cells.
2720
2724
  layer: The layer to pull and aggregate the data.
@@ -2844,7 +2848,9 @@ class PseudoBulkDEG(Proc):
2844
2848
  lang = config.lang.rscript
2845
2849
  script = "file://../scripts/scrna/PseudoBulkDEG.R"
2846
2850
  envs = {
2851
+ "ncores": config.misc.ncores,
2847
2852
  "mutaters": {},
2853
+ "cache": config.path.tmpdir,
2848
2854
  "each": None,
2849
2855
  "subset": None,
2850
2856
  "aggregate_by": None,
@@ -165,10 +165,12 @@ post_casing <- function(name, case) {
165
165
 
166
166
  if (length(cases) == 0 && name == "Marker Discovery") {
167
167
  name <- case$each
168
+ } else {
169
+ name <- paste0(name, " (", case$each, ")")
168
170
  }
169
171
 
170
172
  for (each in eachs) {
171
- newname <- paste0(name, " - ", each)
173
+ newname <- paste0(name, "::", each)
172
174
  newcase <- case
173
175
 
174
176
  newcase$original_case <- name
@@ -266,20 +268,22 @@ process_markers <- function(markers, info, case) {
266
268
  ui = "tabs"
267
269
  )
268
270
 
269
- for (plotname in names(case$marker_plots)) {
270
- plotargs <- case$marker_plots[[plotname]]
271
- plotargs$degs <- markers
272
- rownames(plotargs$degs) <- make.unique(markers$gene)
273
- plotargs$outprefix <- file.path(info$prefix, paste0("markers.", slugify(plotname)))
274
- do_call(VizDEGs, plotargs)
275
- reporter$add2(
276
- list(
277
- name = plotname,
278
- contents = list(reporter$image(plotargs$outprefix, plotargs$more_formats, plotargs$save_code))),
279
- hs = c(info$section, info$name),
280
- hs2 = ifelse(is.null(case$ident), "Markers", paste0("Markers (", case$ident, ")")),
281
- ui = "tabs"
282
- )
271
+ if (nrow(markers) > 0) {
272
+ for (plotname in names(case$marker_plots)) {
273
+ plotargs <- case$marker_plots[[plotname]]
274
+ plotargs$degs <- markers
275
+ rownames(plotargs$degs) <- make.unique(markers$gene)
276
+ plotargs$outprefix <- file.path(info$prefix, paste0("markers.", slugify(plotname)))
277
+ do_call(VizDEGs, plotargs)
278
+ reporter$add2(
279
+ list(
280
+ name = plotname,
281
+ contents = list(reporter$image(plotargs$outprefix, plotargs$more_formats, plotargs$save_code))),
282
+ hs = c(info$section, info$name),
283
+ hs2 = ifelse(is.null(case$ident), "Markers", paste0("Markers (", case$ident, ")")),
284
+ ui = "tabs"
285
+ )
286
+ }
283
287
  }
284
288
 
285
289
  # Do enrichment analysis
@@ -397,6 +401,10 @@ process_allmarkers <- function(markers, plotcases, casename, groupname) {
397
401
  plotargs <- plotcases[[plotname]]
398
402
  plotargs$degs <- markers
399
403
  plotargs$outprefix <- file.path(info$prefix, slugify(plotname))
404
+ if (identical(plotargs$plot_type, "heatmap")) {
405
+ plotargs$show_row_names = plotargs$show_row_names %||% TRUE
406
+ plotargs$show_column_names = plotargs$show_column_names %||% TRUE
407
+ }
400
408
  do_call(VizDEGs, plotargs)
401
409
  reporter$add2(
402
410
  list(
@@ -545,7 +553,9 @@ run_case <- function(name) {
545
553
  attr(markers, "group_by") <- each
546
554
  attr(markers, "ident_1") <- NULL
547
555
  attr(markers, "ident_2") <- NULL
548
- process_allmarkers(markers, allmarker_plots, name, each)
556
+ if (!is.null(markers) && nrow(markers) > 0) {
557
+ process_allmarkers(markers, allmarker_plots, name, each)
558
+ }
549
559
  }
550
560
 
551
561
  if (length(overlaps) > 0) {
@@ -555,7 +565,7 @@ run_case <- function(name) {
555
565
 
556
566
  }
557
567
 
558
- if (!is.null(enriches)) {
568
+ if (!is.null(enriches) && length(enriches) > 0) {
559
569
  log$info("- Summarizing enrichments in subcases (by each: {each}) ...")
560
570
  if (!is.data.frame(enriches)) {
561
571
  each_levels <- names(enriches)
@@ -571,7 +581,7 @@ run_case <- function(name) {
571
581
  enriches[[each]] <- factor(enriches[[each]], levels = each_levels)
572
582
  }
573
583
 
574
- if (length(allenrich_plots) > 0) {
584
+ if (length(allenrich_plots) > 0 && !is.null(enriches) && nrow(enriches) > 0) {
575
585
  log$info("- Visualizing all enrichments together ...")
576
586
  process_allenriches(enriches, allenrich_plots, name, each)
577
587
  }
@@ -634,7 +644,9 @@ run_case <- function(name) {
634
644
  ))
635
645
 
636
646
  if (!is.null(original_case) && !is.null(cases[[original_case]])) {
637
- markers[[each_name]] <- each
647
+ if (nrow(markers) > 0) {
648
+ markers[[each_name]] <- each
649
+ }
638
650
  cases[[original_case]]$markers[[each]] <<- markers
639
651
  cases[[original_case]]$enriches[[each]] <<- enrich
640
652
  }
@@ -8,7 +8,9 @@ outdir <- {{out.outdir | r}}
8
8
  joboutdir <- {{job.outdir | r}}
9
9
  each <- {{envs.each | r}}
10
10
  subset <- {{envs.subset | r}}
11
+ ncores <- {{envs.ncores | r}}
11
12
  mutaters <- {{envs.mutaters | r}}
13
+ cache <- {{ envs.cache | r }}
12
14
  aggregate_by <- {{envs.aggregate_by | r}}
13
15
  layer <- {{envs.layer | r}}
14
16
  assay <- {{envs.assay | r}}
@@ -35,6 +37,7 @@ overlaps <- {{ envs.overlaps | r }}
35
37
  cases <- {{envs.cases | r}}
36
38
 
37
39
  aggregate_by <- unique(c(aggregate_by, group_by, paired_by, each))
40
+ if (isTRUE(cache)) { cache <- joboutdir }
38
41
 
39
42
  log <- get_logger()
40
43
  reporter <- get_reporter()
@@ -74,10 +77,12 @@ defaults <- list(
74
77
  ident_1 = ident_1,
75
78
  ident_2 = ident_2,
76
79
  dbs = dbs,
80
+ ncores = ncores,
77
81
  sigmarkers = sigmarkers,
78
82
  enrich_style = enrich_style,
79
83
  paired_by = paired_by,
80
84
  tool = tool,
85
+ cache = cache,
81
86
  allmarker_plots_defaults = allmarker_plots_defaults,
82
87
  allmarker_plots = allmarker_plots,
83
88
  allenrich_plots_defaults = allenrich_plots_defaults,
@@ -131,12 +136,14 @@ expand_each <- function(name, case) {
131
136
 
132
137
  if (length(cases) == 0 && name == "DEG Analysis") {
133
138
  name <- case$each
139
+ } else {
140
+ name <- paste0(name, " (", case$each, ")")
134
141
  }
135
142
 
136
143
  case$aggregate_by <- unique(c(case$aggregate_by, case$group_by, case$paired_by, case$each))
137
144
 
138
145
  for (each in eachs) {
139
- newname <- paste0(case$each, "::", each)
146
+ newname <- paste0(name, "::", each)
140
147
  newcase <- case
141
148
 
142
149
  newcase$original_case <- name
@@ -179,6 +186,7 @@ expand_each <- function(name, case) {
179
186
  if (length(case$overlaps) > 0 || length(case$allmarker_plots) > 0 || length(case$allenrich_plots) > 0) {
180
187
  ovcase <- case
181
188
 
189
+ ovcase$allexprs <- list()
182
190
  ovcase$markers <- list()
183
191
  ovcase$allmarker_plots <- lapply(
184
192
  ovcase$allmarker_plots,
@@ -212,7 +220,52 @@ process_markers <- function(markers, info, case) {
212
220
  # markers <- markers %>%
213
221
  # mutate(gene = as.character(gene)) %>%
214
222
  # arrange(p_val_adj, desc(abs(avg_log2FC)))
223
+
224
+ empty <- if (case$enrich_style == "enrichr") {
225
+ data.frame(
226
+ Database = character(0),
227
+ Term = character(0),
228
+ Overlap = character(0),
229
+ P.value = numeric(0),
230
+ Adjusted.P.value = numeric(0),
231
+ Odds.Ratio = numeric(0),
232
+ Combined.Score = numeric(0),
233
+ Genes = character(0),
234
+ Rank = numeric(0)
235
+ )
236
+ } else { # clusterProfiler
237
+ data.frame(
238
+ ID = character(0),
239
+ Description = character(0),
240
+ GeneRatio = character(0),
241
+ BgRatio = character(0),
242
+ Count = integer(0),
243
+ pvalue = numeric(0),
244
+ p.adjust = numeric(0),
245
+ qvalue = numeric(0),
246
+ geneID = character(0),
247
+ Database = character(0)
248
+ )
249
+ }
250
+ if (is.null(markers) || nrow(markers) == 0) {
251
+ if (case$error) {
252
+ stop("Error: No markers found in case '", info$name, "'.")
253
+ } else {
254
+ log$warn("! Warning: No markers found in case '", info$name, "'.")
255
+ reporter$add2(
256
+ list(
257
+ name = "Warning",
258
+ contents = list(list(kind = "error", content = "No markers found.", kind_ = "warning"))),
259
+ hs = c(info$section, info$name),
260
+ hs2 = "DEG Analysis",
261
+ ui = "tabs"
262
+ )
263
+ return(empty)
264
+ }
265
+ }
215
266
  markers$gene <- as.character(markers$gene)
267
+ markers$p_val_adj <- as.numeric(markers$p_val_adj)
268
+ markers$log2FC <- as.numeric(markers$log2FC)
216
269
  markers <- markers[order(markers$p_val_adj, -abs(markers$log2FC)), ]
217
270
 
218
271
  # Save markers
@@ -287,7 +340,7 @@ process_markers <- function(markers, info, case) {
287
340
  stop("Error: Not enough significant DEGs with '", case$sigmarkers, "' in case '", info$name, "' found (< 5) for enrichment analysis.")
288
341
  } else {
289
342
  message <- paste0("Not enough significant DEGs with '", case$sigmarkers, "' found (< 5) for enrichment analysis.")
290
- log$warn(" ! Error: {message}")
343
+ log$warn("! Error: {message}")
291
344
  reporter$add2(
292
345
  list(
293
346
  name = "Warning",
@@ -345,7 +398,7 @@ process_markers <- function(markers, info, case) {
345
398
  if (case$error) {
346
399
  stop("Error: ", e$message)
347
400
  } else {
348
- log$warn(" ! Error: {e$message}")
401
+ log$warn("! Error: {e$message}")
349
402
  reporter$add2(
350
403
  list(
351
404
  name = "Warning",
@@ -478,6 +531,7 @@ process_overlaps <- function(markers, ovcases, casename, groupname) {
478
531
 
479
532
  run_case <- function(name) {
480
533
  case <- cases[[name]]
534
+ log$info("----------------------------------------")
481
535
  log$info("Case: {name} ...")
482
536
 
483
537
  case <- extract_vars(
@@ -485,18 +539,21 @@ run_case <- function(name) {
485
539
  "dbs", "sigmarkers", "allmarker_plots", "allenrich_plots", "marker_plots", "enrich_plots",
486
540
  "overlaps", "original_case", "markers", "enriches", "each_name", "each", "enrich_style",
487
541
  "aggregate_by", "subset", "layer", "assay", "group_by", "ident_1", "ident_2", "original_subset",
488
- "paired_by", "tool", "error",
542
+ "paired_by", "tool", "error", "ncores", "cache", "allexprs",
489
543
  allow_nonexisting = TRUE
490
544
  )
491
545
 
492
546
  if (!is.null(markers) || !is.null(enriches)) {
493
- if (!is.null(markers)) { # It is the overlap/allmarker case
494
- log$info("- Summarizing DEGs in subcases (by each: {each}) ...")
547
+ if (!is.null(markers) && length(markers) > 0) {
548
+ log$info("Summarizing DEGs in subcases (by each: {each}) ...")
495
549
  # handle the overlaps / allmarkers analysis here
496
550
  if (!is.data.frame(markers)) {
497
551
  each_levels <- names(markers)
498
552
  markers <- do_call(rbind, lapply(each_levels, function(x) {
499
553
  markers_df <- markers[[x]]
554
+ if (is.null(markers_df) || nrow(markers_df) == 0) {
555
+ return(NULL)
556
+ }
500
557
  if (nrow(markers_df) > 0) {
501
558
  markers_df[[each]] <- x
502
559
  } else {
@@ -508,17 +565,17 @@ run_case <- function(name) {
508
565
  }
509
566
  # gene, p_val, avg_log2FC, pct.1, pct.2, p_val_adj, diff_pct, <each>
510
567
 
568
+ if (!is.data.frame(allexprs)) {
569
+ meta <- do_call(rbind, lapply(allexprs, attr, "meta"))
570
+ allexprs <- do_call(cbind, allexprs)
571
+ } else {
572
+ meta <- attr(allexprs, "meta")
573
+ }
574
+
511
575
  if (length(allmarker_plots) > 0) {
512
- log$info("- Visualizing all DEGs together ...")
513
- exprs <- AggregateExpressionPseudobulk(
514
- srtobj, aggregate_by = aggregate_by, layer = layer, assay = assay,
515
- subset = original_subset, log = log
516
- )
517
- attr(markers, "object") <- AggregateExpressionPseudobulk(
518
- srtobj, aggregate_by = aggregate_by, layer = layer, assay = assay,
519
- subset = original_subset, log = log
520
- )
521
- attr(markers, "meta") <- attr(exprs, "meta")
576
+ log$info("Visualizing all DEGs together ...")
577
+ attr(markers, "object") <- allexprs
578
+ attr(markers, "meta") <- meta
522
579
  attr(markers, "group_by") <- each
523
580
  attr(markers, "paired_by") <- paired_by
524
581
  attr(markers, "ident_1") <- NULL
@@ -527,18 +584,21 @@ run_case <- function(name) {
527
584
  }
528
585
 
529
586
  if (length(overlaps) > 0) {
530
- log$info("- Visualizing overlaps between subcases ...")
587
+ log$info("Visualizing overlaps between subcases ...")
531
588
  process_overlaps(markers, overlaps, name, each)
532
589
  }
533
590
 
534
591
  }
535
592
 
536
- if (!is.null(enriches)) {
537
- log$info("- Summarizing enrichments in subcases (by each: {each}) ...")
593
+ if (!is.null(enriches) && length(enriches) > 0) {
594
+ log$info("Summarizing enrichments in subcases (by each: {each}) ...")
538
595
  if (!is.data.frame(enriches)) {
539
596
  each_levels <- names(enriches)
540
597
  enriches <- do_call(rbind, lapply(each_levels, function(x) {
541
598
  enrich_df <- enriches[[x]]
599
+ if (is.null(enrich_df) || nrow(enrich_df) == 0) {
600
+ return(NULL)
601
+ }
542
602
  if (nrow(enrich_df) > 0) {
543
603
  enrich_df[[each]] <- x
544
604
  } else {
@@ -546,11 +606,13 @@ run_case <- function(name) {
546
606
  }
547
607
  enrich_df
548
608
  }))
549
- enriches[[each]] <- factor(enriches[[each]], levels = each_levels)
609
+ if (!is.null(enriches) && nrow(enriches) > 0) {
610
+ enriches[[each]] <- factor(enriches[[each]], levels = each_levels)
611
+ }
550
612
  }
551
613
 
552
- if (length(allenrich_plots) > 0) {
553
- log$info("- Visualizing all enrichments together ...")
614
+ if (length(allenrich_plots) > 0 && !is.null(enriches) && nrow(enriches) > 0) {
615
+ log$info("Visualizing all enrichments together ...")
554
616
  process_allenriches(enriches, allenrich_plots, name, each)
555
617
  }
556
618
  }
@@ -558,16 +620,36 @@ run_case <- function(name) {
558
620
  return(invisible())
559
621
  }
560
622
 
623
+ info <- case_info(name, outdir, create = TRUE)
561
624
  exprs <- AggregateExpressionPseudobulk(
562
625
  srtobj, aggregate_by = aggregate_by, layer = layer, assay = assay,
563
626
  subset = subset, log = log
564
627
  )
565
- markers <- RunDEGAnalysis(
566
- exprs, group_by = group_by, ident_1 = ident_1, ident_2 = ident_2,
567
- paired_by = paired_by, tool = tool, log = log
628
+ markers <- tryCatch(
629
+ {
630
+ RunDEGAnalysis(
631
+ exprs, group_by = group_by, ident_1 = ident_1, ident_2 = ident_2,
632
+ paired_by = paired_by, tool = tool, log = log, ncores = ncores,
633
+ cache = cache
634
+ )
635
+ }, error = function(e) {
636
+ if (error) {
637
+ stop("Error: ", e$message)
638
+ } else {
639
+ log$warn("! Error: {e$message}")
640
+ reporter$add2(
641
+ list(
642
+ name = "Warning",
643
+ contents = list(list(kind = "error", content = e$message, kind_ = "warning"))),
644
+ hs = c(info$section, info$name),
645
+ hs2 = "DEG Analysis",
646
+ ui = "tabs"
647
+ )
648
+ return(invisible())
649
+ }
650
+ }
568
651
  )
569
652
 
570
- info <- case_info(name, outdir, create = TRUE)
571
653
  enrich <- process_markers(markers, info = info, case = list(
572
654
  dbs = dbs,
573
655
  sigmarkers = sigmarkers,
@@ -579,9 +661,12 @@ run_case <- function(name) {
579
661
  ))
580
662
 
581
663
  if (!is.null(original_case) && !is.null(cases[[original_case]])) {
582
- markers[[each_name]] <- each
664
+ if (!is.null(markers)) {
665
+ markers[[each_name]] <- each
666
+ }
583
667
  cases[[original_case]]$markers[[each]] <<- markers
584
668
  cases[[original_case]]$enriches[[each]] <<- enrich
669
+ cases[[original_case]]$allexprs[[each]] <<- exprs
585
670
  }
586
671
 
587
672
  invisible()
@@ -82,11 +82,13 @@ expand_each <- function(name, case) {
82
82
  }
83
83
 
84
84
  if (length(cases) == 0 && name == "GSEA") {
85
- name <- case$each
85
+ prefix <- case$each
86
+ } else {
87
+ prefix <- paste0(name, " (", case$each, ")")
86
88
  }
87
89
 
88
90
  for (each in eachs) {
89
- newname <- paste0(case$each, "::", each)
91
+ newname <- paste0(prefix, "::", each)
90
92
  newcase <- case
91
93
 
92
94
  newcase$original_case <- paste0(name, " (all ", case$each,")")
@@ -142,6 +144,11 @@ do_case <- function(name) {
142
144
 
143
145
  if (!is.null(case$gseas)) {
144
146
 
147
+ if (length(case$gseas) == 0) {
148
+ log$warn(" No GSEA results found for case {name}. Skipping.")
149
+ return(invisible(NULL))
150
+ }
151
+
145
152
  each_levels <- names(case$gseas)
146
153
  gseas <- do_call(rbind, lapply(each_levels, function(x) {
147
154
  gsea_df <- case$gseas[[x]]
@@ -240,25 +247,16 @@ do_case <- function(name) {
240
247
  quote = FALSE
241
248
  )
242
249
  if (all(is.na(ranks))) {
243
- if (length(allclasses) < 100) {
244
- log$warn(" Ignoring this case because all gene ranks are NA and there are <100 cells.")
245
- reporter$add2(
246
- list(
247
- kind = "error",
248
- content = paste0("Not enough cells (n = ", length(allclasses), ") to run fgsea.")
249
- ),
250
- hs = c(info$section, info$name)
251
- )
252
- return(NULL)
253
- } else {
254
- stop(paste0(
255
- "All gene ranks are NA (# cells = ",
256
- length(allclasses),
257
- "). ",
258
- "It's probably due to high missing rate in the data. ",
259
- "You may want to try a different `envs$method` for pre-ranking."
260
- ))
261
- }
250
+ log$warn(" All gene ranks are NA. It's probably due to high missing rate in the data.")
251
+ log$warn(" Case ignored, you may also try a different ranking method.")
252
+ reporter$add2(
253
+ list(
254
+ kind = "error",
255
+ content = "All gene ranks are NA. It's probably due to high missing rate in the data."
256
+ ),
257
+ hs = c(info$section, info$name)
258
+ )
259
+ return(invisible(NULL))
262
260
  }
263
261
 
264
262
  # run fgsea
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "biopipen"
3
- version = "0.34.6"
3
+ version = "0.34.8"
4
4
  description = "Bioinformatics processes/pipelines that can be run from `pipen run`"
5
5
  authors = ["pwwang <pwwang@pwwang.com>"]
6
6
  license = "MIT"
@@ -86,7 +86,7 @@ entry_points = \
86
86
 
87
87
  setup_kwargs = {
88
88
  'name': 'biopipen',
89
- 'version': '0.34.6',
89
+ 'version': '0.34.8',
90
90
  'description': 'Bioinformatics processes/pipelines that can be run from `pipen run`',
91
91
  'long_description': 'None',
92
92
  'author': 'pwwang',
@@ -1 +0,0 @@
1
- __version__ = "0.34.6"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes