biopipen 0.21.0__py3-none-any.whl → 0.34.26__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- biopipen/__init__.py +1 -1
- biopipen/core/config.toml +28 -0
- biopipen/core/filters.py +79 -4
- biopipen/core/proc.py +12 -3
- biopipen/core/testing.py +75 -3
- biopipen/ns/bam.py +148 -6
- biopipen/ns/bed.py +75 -0
- biopipen/ns/cellranger.py +186 -0
- biopipen/ns/cellranger_pipeline.py +126 -0
- biopipen/ns/cnv.py +19 -3
- biopipen/ns/cnvkit.py +1 -1
- biopipen/ns/cnvkit_pipeline.py +20 -12
- biopipen/ns/delim.py +34 -35
- biopipen/ns/gene.py +68 -23
- biopipen/ns/gsea.py +63 -37
- biopipen/ns/misc.py +39 -14
- biopipen/ns/plot.py +304 -1
- biopipen/ns/protein.py +183 -0
- biopipen/ns/regulatory.py +290 -0
- biopipen/ns/rnaseq.py +142 -5
- biopipen/ns/scrna.py +2053 -473
- biopipen/ns/scrna_metabolic_landscape.py +228 -382
- biopipen/ns/snp.py +659 -0
- biopipen/ns/stats.py +484 -0
- biopipen/ns/tcr.py +683 -98
- biopipen/ns/vcf.py +236 -2
- biopipen/ns/web.py +97 -6
- biopipen/reports/bam/CNVpytor.svelte +4 -9
- biopipen/reports/cellranger/CellRangerCount.svelte +18 -0
- biopipen/reports/cellranger/CellRangerSummary.svelte +16 -0
- biopipen/reports/cellranger/CellRangerVdj.svelte +18 -0
- biopipen/reports/cnvkit/CNVkitDiagram.svelte +1 -1
- biopipen/reports/cnvkit/CNVkitHeatmap.svelte +1 -1
- biopipen/reports/cnvkit/CNVkitScatter.svelte +1 -1
- biopipen/reports/common.svelte +15 -0
- biopipen/reports/protein/ProdigySummary.svelte +16 -0
- biopipen/reports/scrna/CellsDistribution.svelte +4 -39
- biopipen/reports/scrna/DimPlots.svelte +1 -1
- biopipen/reports/scrna/MarkersFinder.svelte +6 -126
- biopipen/reports/scrna/MetaMarkers.svelte +3 -75
- biopipen/reports/scrna/RadarPlots.svelte +4 -20
- biopipen/reports/scrna_metabolic_landscape/MetabolicFeatures.svelte +61 -22
- biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayActivity.svelte +88 -82
- biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.svelte +70 -10
- biopipen/reports/snp/PlinkCallRate.svelte +24 -0
- biopipen/reports/snp/PlinkFreq.svelte +18 -0
- biopipen/reports/snp/PlinkHWE.svelte +18 -0
- biopipen/reports/snp/PlinkHet.svelte +18 -0
- biopipen/reports/snp/PlinkIBD.svelte +18 -0
- biopipen/reports/tcr/CDR3AAPhyschem.svelte +19 -66
- biopipen/reports/tcr/ClonalStats.svelte +16 -0
- biopipen/reports/tcr/CloneResidency.svelte +3 -93
- biopipen/reports/tcr/Immunarch.svelte +4 -155
- biopipen/reports/tcr/TCRClusterStats.svelte +3 -45
- biopipen/reports/tcr/TESSA.svelte +11 -28
- biopipen/reports/utils/misc.liq +22 -7
- biopipen/scripts/bam/BamMerge.py +11 -15
- biopipen/scripts/bam/BamSampling.py +90 -0
- biopipen/scripts/bam/BamSort.py +141 -0
- biopipen/scripts/bam/BamSplitChroms.py +10 -10
- biopipen/scripts/bam/BamSubsetByBed.py +38 -0
- biopipen/scripts/bam/CNAClinic.R +41 -5
- biopipen/scripts/bam/CNVpytor.py +153 -54
- biopipen/scripts/bam/ControlFREEC.py +13 -14
- biopipen/scripts/bam/SamtoolsView.py +33 -0
- biopipen/scripts/bed/Bed2Vcf.py +5 -5
- biopipen/scripts/bed/BedConsensus.py +5 -5
- biopipen/scripts/bed/BedLiftOver.sh +6 -4
- biopipen/scripts/bed/BedtoolsIntersect.py +54 -0
- biopipen/scripts/bed/BedtoolsMakeWindows.py +47 -0
- biopipen/scripts/bed/BedtoolsMerge.py +4 -4
- biopipen/scripts/cellranger/CellRangerCount.py +138 -0
- biopipen/scripts/cellranger/CellRangerSummary.R +181 -0
- biopipen/scripts/cellranger/CellRangerVdj.py +112 -0
- biopipen/scripts/cnv/AneuploidyScore.R +55 -20
- biopipen/scripts/cnv/AneuploidyScoreSummary.R +221 -163
- biopipen/scripts/cnv/TMADScore.R +25 -9
- biopipen/scripts/cnv/TMADScoreSummary.R +57 -86
- biopipen/scripts/cnvkit/CNVkitAccess.py +7 -6
- biopipen/scripts/cnvkit/CNVkitAutobin.py +26 -18
- biopipen/scripts/cnvkit/CNVkitBatch.py +6 -6
- biopipen/scripts/cnvkit/CNVkitCall.py +3 -3
- biopipen/scripts/cnvkit/CNVkitCoverage.py +4 -3
- biopipen/scripts/cnvkit/CNVkitDiagram.py +5 -5
- biopipen/scripts/cnvkit/CNVkitFix.py +3 -3
- biopipen/scripts/cnvkit/CNVkitGuessBaits.py +12 -8
- biopipen/scripts/cnvkit/CNVkitHeatmap.py +5 -5
- biopipen/scripts/cnvkit/CNVkitReference.py +6 -5
- biopipen/scripts/cnvkit/CNVkitScatter.py +5 -5
- biopipen/scripts/cnvkit/CNVkitSegment.py +5 -5
- biopipen/scripts/cnvkit/guess_baits.py +166 -93
- biopipen/scripts/delim/RowsBinder.R +1 -1
- biopipen/scripts/delim/SampleInfo.R +116 -118
- biopipen/scripts/gene/GeneNameConversion.R +67 -0
- biopipen/scripts/gene/GenePromoters.R +61 -0
- biopipen/scripts/gsea/Enrichr.R +5 -5
- biopipen/scripts/gsea/FGSEA.R +184 -50
- biopipen/scripts/gsea/GSEA.R +2 -2
- biopipen/scripts/gsea/PreRank.R +5 -5
- biopipen/scripts/misc/Config2File.py +2 -2
- biopipen/scripts/misc/Plot.R +80 -0
- biopipen/scripts/misc/Shell.sh +15 -0
- biopipen/scripts/misc/Str2File.py +2 -2
- biopipen/scripts/plot/Heatmap.R +3 -3
- biopipen/scripts/plot/Manhattan.R +147 -0
- biopipen/scripts/plot/QQPlot.R +146 -0
- biopipen/scripts/plot/ROC.R +88 -0
- biopipen/scripts/plot/Scatter.R +112 -0
- biopipen/scripts/plot/VennDiagram.R +5 -9
- biopipen/scripts/protein/MMCIF2PDB.py +33 -0
- biopipen/scripts/protein/PDB2Fasta.py +60 -0
- biopipen/scripts/protein/Prodigy.py +119 -0
- biopipen/scripts/protein/ProdigySummary.R +140 -0
- biopipen/scripts/protein/RMSD.py +178 -0
- biopipen/scripts/regulatory/MotifAffinityTest.R +102 -0
- biopipen/scripts/regulatory/MotifAffinityTest_AtSNP.R +127 -0
- biopipen/scripts/regulatory/MotifAffinityTest_MotifBreakR.R +104 -0
- biopipen/scripts/regulatory/MotifScan.py +159 -0
- biopipen/scripts/regulatory/VariantMotifPlot.R +78 -0
- biopipen/scripts/regulatory/motifs-common.R +324 -0
- biopipen/scripts/rnaseq/Simulation-ESCO.R +180 -0
- biopipen/scripts/rnaseq/Simulation-RUVcorr.R +45 -0
- biopipen/scripts/rnaseq/Simulation.R +21 -0
- biopipen/scripts/rnaseq/UnitConversion.R +325 -54
- biopipen/scripts/scrna/AnnData2Seurat.R +40 -0
- biopipen/scripts/scrna/CCPlotR-patch.R +161 -0
- biopipen/scripts/scrna/CellCellCommunication.py +150 -0
- biopipen/scripts/scrna/CellCellCommunicationPlots.R +93 -0
- biopipen/scripts/scrna/CellSNPLite.py +30 -0
- biopipen/scripts/scrna/CellTypeAnnotation-celltypist.R +185 -0
- biopipen/scripts/scrna/CellTypeAnnotation-direct.R +68 -31
- biopipen/scripts/scrna/CellTypeAnnotation-hitype.R +27 -22
- biopipen/scripts/scrna/CellTypeAnnotation-sccatch.R +28 -20
- biopipen/scripts/scrna/CellTypeAnnotation-sctype.R +48 -25
- biopipen/scripts/scrna/CellTypeAnnotation.R +37 -1
- biopipen/scripts/scrna/CellsDistribution.R +456 -167
- biopipen/scripts/scrna/DimPlots.R +1 -1
- biopipen/scripts/scrna/ExprImputation-alra.R +109 -0
- biopipen/scripts/scrna/ExprImputation-rmagic.R +256 -0
- biopipen/scripts/scrna/{ExprImpution-scimpute.R → ExprImputation-scimpute.R} +8 -5
- biopipen/scripts/scrna/ExprImputation.R +7 -0
- biopipen/scripts/scrna/LoomTo10X.R +51 -0
- biopipen/scripts/scrna/MQuad.py +25 -0
- biopipen/scripts/scrna/MarkersFinder.R +679 -400
- biopipen/scripts/scrna/MetaMarkers.R +265 -161
- biopipen/scripts/scrna/ModuleScoreCalculator.R +66 -11
- biopipen/scripts/scrna/PseudoBulkDEG.R +678 -0
- biopipen/scripts/scrna/RadarPlots.R +355 -134
- biopipen/scripts/scrna/ScFGSEA.R +298 -100
- biopipen/scripts/scrna/ScSimulation.R +65 -0
- biopipen/scripts/scrna/ScVelo.py +617 -0
- biopipen/scripts/scrna/Seurat2AnnData.R +7 -0
- biopipen/scripts/scrna/SeuratClusterStats-clustree.R +87 -0
- biopipen/scripts/scrna/SeuratClusterStats-dimplots.R +36 -30
- biopipen/scripts/scrna/SeuratClusterStats-features.R +138 -187
- biopipen/scripts/scrna/SeuratClusterStats-ngenes.R +81 -0
- biopipen/scripts/scrna/SeuratClusterStats-stats.R +78 -89
- biopipen/scripts/scrna/SeuratClusterStats.R +47 -10
- biopipen/scripts/scrna/SeuratClustering.R +36 -233
- biopipen/scripts/scrna/SeuratLoading.R +2 -2
- biopipen/scripts/scrna/SeuratMap2Ref.R +84 -113
- biopipen/scripts/scrna/SeuratMetadataMutater.R +16 -6
- biopipen/scripts/scrna/SeuratPreparing.R +223 -173
- biopipen/scripts/scrna/SeuratSubClustering.R +64 -0
- biopipen/scripts/scrna/SeuratTo10X.R +27 -0
- biopipen/scripts/scrna/Slingshot.R +65 -0
- biopipen/scripts/scrna/Subset10X.R +2 -2
- biopipen/scripts/scrna/TopExpressingGenes.R +169 -135
- biopipen/scripts/scrna/celltypist-wrapper.py +195 -0
- biopipen/scripts/scrna/scvelo_paga.py +313 -0
- biopipen/scripts/scrna/seurat_anndata_conversion.py +98 -0
- biopipen/scripts/scrna_metabolic_landscape/MetabolicFeatures.R +447 -82
- biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayActivity.R +348 -241
- biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.R +188 -166
- biopipen/scripts/snp/MatrixEQTL.R +217 -0
- biopipen/scripts/snp/Plink2GTMat.py +148 -0
- biopipen/scripts/snp/PlinkCallRate.R +199 -0
- biopipen/scripts/snp/PlinkFilter.py +100 -0
- biopipen/scripts/snp/PlinkFreq.R +291 -0
- biopipen/scripts/snp/PlinkFromVcf.py +81 -0
- biopipen/scripts/snp/PlinkHWE.R +85 -0
- biopipen/scripts/snp/PlinkHet.R +96 -0
- biopipen/scripts/snp/PlinkIBD.R +196 -0
- biopipen/scripts/snp/PlinkSimulation.py +124 -0
- biopipen/scripts/snp/PlinkUpdateName.py +124 -0
- biopipen/scripts/stats/ChowTest.R +146 -0
- biopipen/scripts/stats/DiffCoexpr.R +152 -0
- biopipen/scripts/stats/LiquidAssoc.R +135 -0
- biopipen/scripts/stats/Mediation.R +108 -0
- biopipen/scripts/stats/MetaPvalue.R +130 -0
- biopipen/scripts/stats/MetaPvalue1.R +74 -0
- biopipen/scripts/tcgamaf/Maf2Vcf.py +2 -2
- biopipen/scripts/tcgamaf/MafAddChr.py +2 -2
- biopipen/scripts/tcr/Attach2Seurat.R +3 -2
- biopipen/scripts/tcr/CDR3AAPhyschem.R +211 -143
- biopipen/scripts/tcr/CDR3Clustering.R +343 -0
- biopipen/scripts/tcr/ClonalStats.R +526 -0
- biopipen/scripts/tcr/CloneResidency.R +255 -131
- biopipen/scripts/tcr/CloneSizeQQPlot.R +4 -4
- biopipen/scripts/tcr/GIANA/GIANA.py +1356 -797
- biopipen/scripts/tcr/GIANA/GIANA4.py +1362 -789
- biopipen/scripts/tcr/GIANA/query.py +164 -162
- biopipen/scripts/tcr/Immunarch-basic.R +31 -9
- biopipen/scripts/tcr/Immunarch-clonality.R +25 -5
- biopipen/scripts/tcr/Immunarch-diversity.R +352 -134
- biopipen/scripts/tcr/Immunarch-geneusage.R +45 -5
- biopipen/scripts/tcr/Immunarch-kmer.R +68 -8
- biopipen/scripts/tcr/Immunarch-overlap.R +84 -4
- biopipen/scripts/tcr/Immunarch-spectratyping.R +35 -6
- biopipen/scripts/tcr/Immunarch-tracking.R +38 -6
- biopipen/scripts/tcr/Immunarch-vjjunc.R +165 -0
- biopipen/scripts/tcr/Immunarch.R +63 -11
- biopipen/scripts/tcr/Immunarch2VDJtools.R +2 -2
- biopipen/scripts/tcr/ImmunarchFilter.R +4 -4
- biopipen/scripts/tcr/ImmunarchLoading.R +38 -29
- biopipen/scripts/tcr/SampleDiversity.R +1 -1
- biopipen/scripts/tcr/ScRepCombiningExpression.R +40 -0
- biopipen/scripts/tcr/ScRepLoading.R +166 -0
- biopipen/scripts/tcr/TCRClusterStats.R +176 -22
- biopipen/scripts/tcr/TCRDock.py +110 -0
- biopipen/scripts/tcr/TESSA.R +102 -118
- biopipen/scripts/tcr/VJUsage.R +5 -5
- biopipen/scripts/tcr/immunarch-patched.R +142 -0
- biopipen/scripts/tcr/vdjtools-patch.sh +1 -1
- biopipen/scripts/vcf/BcftoolsAnnotate.py +91 -0
- biopipen/scripts/vcf/BcftoolsFilter.py +90 -0
- biopipen/scripts/vcf/BcftoolsMerge.py +31 -0
- biopipen/scripts/vcf/BcftoolsSort.py +113 -0
- biopipen/scripts/vcf/BcftoolsView.py +73 -0
- biopipen/scripts/vcf/TruvariBench.sh +14 -7
- biopipen/scripts/vcf/TruvariBenchSummary.R +16 -13
- biopipen/scripts/vcf/TruvariConsistency.R +1 -1
- biopipen/scripts/vcf/Vcf2Bed.py +2 -2
- biopipen/scripts/vcf/VcfAnno.py +11 -11
- biopipen/scripts/vcf/VcfDownSample.sh +22 -10
- biopipen/scripts/vcf/VcfFilter.py +5 -5
- biopipen/scripts/vcf/VcfFix.py +7 -7
- biopipen/scripts/vcf/VcfFix_utils.py +13 -4
- biopipen/scripts/vcf/VcfIndex.py +3 -3
- biopipen/scripts/vcf/VcfIntersect.py +3 -3
- biopipen/scripts/vcf/VcfLiftOver.sh +5 -0
- biopipen/scripts/vcf/VcfSplitSamples.py +4 -4
- biopipen/scripts/vcf/bcftools_utils.py +52 -0
- biopipen/scripts/web/Download.py +8 -4
- biopipen/scripts/web/DownloadList.py +5 -5
- biopipen/scripts/web/GCloudStorageDownloadBucket.py +82 -0
- biopipen/scripts/web/GCloudStorageDownloadFile.py +23 -0
- biopipen/scripts/web/gcloud_common.py +49 -0
- biopipen/utils/gene.py +108 -60
- biopipen/utils/misc.py +146 -20
- biopipen/utils/reference.py +64 -20
- biopipen/utils/reporter.py +177 -0
- biopipen/utils/vcf.py +1 -1
- biopipen-0.34.26.dist-info/METADATA +27 -0
- biopipen-0.34.26.dist-info/RECORD +292 -0
- {biopipen-0.21.0.dist-info → biopipen-0.34.26.dist-info}/WHEEL +1 -1
- {biopipen-0.21.0.dist-info → biopipen-0.34.26.dist-info}/entry_points.txt +6 -2
- biopipen/ns/bcftools.py +0 -111
- biopipen/ns/scrna_basic.py +0 -255
- biopipen/reports/delim/SampleInfo.svelte +0 -36
- biopipen/reports/scrna/GeneExpressionInvistigation.svelte +0 -32
- biopipen/reports/scrna/ScFGSEA.svelte +0 -35
- biopipen/reports/scrna/SeuratClusterStats.svelte +0 -82
- biopipen/reports/scrna/SeuratMap2Ref.svelte +0 -20
- biopipen/reports/scrna/SeuratPreparing.svelte +0 -38
- biopipen/reports/scrna/TopExpressingGenes.svelte +0 -55
- biopipen/reports/scrna_metabolic_landscape/MetabolicFeaturesIntraSubset.svelte +0 -31
- biopipen/reports/utils/gsea.liq +0 -110
- biopipen/scripts/bcftools/BcftoolsAnnotate.py +0 -42
- biopipen/scripts/bcftools/BcftoolsFilter.py +0 -79
- biopipen/scripts/bcftools/BcftoolsSort.py +0 -19
- biopipen/scripts/gene/GeneNameConversion.py +0 -66
- biopipen/scripts/scrna/ExprImpution-alra.R +0 -32
- biopipen/scripts/scrna/ExprImpution-rmagic.R +0 -29
- biopipen/scripts/scrna/ExprImpution.R +0 -7
- biopipen/scripts/scrna/GeneExpressionInvistigation.R +0 -132
- biopipen/scripts/scrna/Write10X.R +0 -11
- biopipen/scripts/scrna_metabolic_landscape/MetabolicFeaturesIntraSubset.R +0 -150
- biopipen/scripts/tcr/TCRClustering.R +0 -280
- biopipen/utils/common_docstrs.py +0 -61
- biopipen/utils/gene.R +0 -49
- biopipen/utils/gsea.R +0 -193
- biopipen/utils/io.R +0 -20
- biopipen/utils/misc.R +0 -114
- biopipen/utils/mutate_helpers.R +0 -433
- biopipen/utils/plot.R +0 -173
- biopipen/utils/rnaseq.R +0 -48
- biopipen/utils/single_cell.R +0 -115
- biopipen-0.21.0.dist-info/METADATA +0 -22
- biopipen-0.21.0.dist-info/RECORD +0 -218
|
@@ -1,138 +1,18 @@
|
|
|
1
1
|
{% from "utils/misc.liq" import report_jobs -%}
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
<script>
|
|
4
|
-
import { Image, DataTable } from "$libs";
|
|
5
|
-
import { Tabs, Tab, TabContent, InlineNotification } from "$ccs";
|
|
4
|
+
import { Image, DataTable, Descr } from "$libs";
|
|
5
|
+
import { Tabs, Tab, TabContent, InlineNotification, Accordion, AccordionItem } from "$ccs";
|
|
6
6
|
</script>
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
{%- macro report_job(job, h=1) -%}
|
|
10
|
-
{
|
|
11
|
-
{%- set ovdir = job.out.outdir | joinpaths: "OVERLAPS" -%}
|
|
12
|
-
{%- set secdirs = [] -%}
|
|
13
|
-
{%- for adir in alldirs -%}
|
|
14
|
-
{%- if basename(adir) != "OVERLAPS" -%}
|
|
15
|
-
{%- set _ = secdirs.append(adir) -%}
|
|
16
|
-
{%- endif -%}
|
|
17
|
-
{%- endfor -%}
|
|
18
|
-
|
|
19
|
-
{%- if len(secdirs) == 1 -%}
|
|
20
|
-
{%- set secname = secdirs | first | basename -%}
|
|
21
|
-
{%- for casedir in secdirs[0] | glob: "*" -%}
|
|
22
|
-
{%- if secname == "DEFAULT" -%}
|
|
23
|
-
<h{{h}}>{{casedir | basename | escape}}</h{{h}}>
|
|
24
|
-
{%- else -%}
|
|
25
|
-
<h{{h}}>{{secname | escape}} - {{casedir | basename | escape}}</h{{h}}>
|
|
26
|
-
{%- endif -%}
|
|
27
|
-
{%- if casedir | joinpaths: "error.txt" | exists -%}
|
|
28
|
-
<InlineNotification
|
|
29
|
-
hideCloseButton
|
|
30
|
-
lowContrast
|
|
31
|
-
kind="warning"
|
|
32
|
-
subtitle={{ casedir | joinpaths: "error.txt" | read | quote }}
|
|
33
|
-
/>
|
|
34
|
-
{%- else -%}
|
|
35
|
-
<h{{h+1}}>Markers</h{{h+1}}>
|
|
36
|
-
<Tabs>
|
|
37
|
-
<Tab label="Markers" />
|
|
38
|
-
<Tab label="Volcano Plot" />
|
|
39
|
-
<Tab label="Dot Plot" />
|
|
40
|
-
<svelte:fragment slot="content">
|
|
41
|
-
<TabContent>
|
|
42
|
-
<DataTable
|
|
43
|
-
src={{ casedir | joinpaths: "markers.txt" | quote }}
|
|
44
|
-
data={ {{ casedir | joinpaths: "markers.txt" | datatable: sep="\t", nrows=100 }} }
|
|
45
|
-
/>
|
|
46
|
-
</TabContent>
|
|
47
|
-
<TabContent>
|
|
48
|
-
<Image src={{ casedir | joinpaths: "volcano.png" | quote }} />
|
|
49
|
-
</TabContent>
|
|
50
|
-
<TabContent>
|
|
51
|
-
<Image src={{ casedir | joinpaths: "dotplot.png" | quote }} />
|
|
52
|
-
</TabContent>
|
|
53
|
-
</svelte:fragment>
|
|
54
|
-
</Tabs>
|
|
55
|
-
|
|
56
|
-
<h{{h+1}}>Enrichment analysis</h{{h+1}}>
|
|
57
|
-
{{ enrichr_report(casedir) }}
|
|
58
|
-
{%- endif -%}
|
|
59
|
-
{%- endfor -%}
|
|
60
|
-
{%- else -%}
|
|
61
|
-
{%- for secdir in secdirs -%}
|
|
62
|
-
{%- set sec = secdir | basename -%}
|
|
63
|
-
<h{{h}}>{{sec | escape}}</h{{h}}>
|
|
64
|
-
{%- for casedir in secdir | glob: "*" -%}
|
|
65
|
-
<h{{h+1}}>{{casedir | basename | escape}}</h{{h+1}}>
|
|
66
|
-
{%- if casedir | joinpaths: "error.txt" | exists -%}
|
|
67
|
-
<InlineNotification
|
|
68
|
-
hideCloseButton
|
|
69
|
-
lowContrast
|
|
70
|
-
kind="warning"
|
|
71
|
-
subtitle={{ casedir | joinpaths: "error.txt" | read | quote }}
|
|
72
|
-
/>
|
|
73
|
-
{%- else -%}
|
|
74
|
-
<h{{h+2}}>Markers</h{{h+2}}>
|
|
75
|
-
<Tabs>
|
|
76
|
-
<Tab label="Markers" />
|
|
77
|
-
<Tab label="Volcano Plot" />
|
|
78
|
-
<Tab label="Dot Plot" />
|
|
79
|
-
<svelte:fragment slot="content">
|
|
80
|
-
<TabContent>
|
|
81
|
-
<DataTable
|
|
82
|
-
src={{ casedir | joinpaths: "markers.txt" | quote }}
|
|
83
|
-
data={ {{ casedir | joinpaths: "markers.txt" | datatable: sep="\t", nrows=100 }} }
|
|
84
|
-
/>
|
|
85
|
-
</TabContent>
|
|
86
|
-
<TabContent>
|
|
87
|
-
<Image src={{ casedir | joinpaths: "volcano.png" | quote }} />
|
|
88
|
-
</TabContent>
|
|
89
|
-
<TabContent>
|
|
90
|
-
<Image src={{ casedir | joinpaths: "dotplot.png" | quote }} />
|
|
91
|
-
</TabContent>
|
|
92
|
-
</svelte:fragment>
|
|
93
|
-
</Tabs>
|
|
94
|
-
|
|
95
|
-
<h{{h+2}}>Enrichment analysis</h{{h+2}}>
|
|
96
|
-
{{ enrichr_report(casedir) }}
|
|
97
|
-
{%- endif -%}
|
|
98
|
-
{%- endfor -%}
|
|
99
|
-
{%- endfor -%}
|
|
100
|
-
{%- endif -%}
|
|
101
|
-
|
|
102
|
-
{%- if ovdir | exists -%}
|
|
103
|
-
<h{{h}}>Overlapping Markers</h{{h}}>
|
|
104
|
-
{%- for casedir in ovdir | glob: "*" -%}
|
|
105
|
-
<h{{h+1}}>{{casedir | basename | escape}}</h{{h+1}}>
|
|
106
|
-
<Tabs>
|
|
107
|
-
{%- if casedir | joinpaths: "venn.png" | exists -%}
|
|
108
|
-
<Tab label="Venn Diagram" />
|
|
109
|
-
{%- endif -%}
|
|
110
|
-
<Tab label="UpSet Plot" />
|
|
111
|
-
<Tab label="Marks" />
|
|
112
|
-
<svelte:fragment slot="content">
|
|
113
|
-
{%- if casedir | joinpaths: "venn.png" | exists -%}
|
|
114
|
-
<TabContent>
|
|
115
|
-
<Image src={{ casedir | joinpaths: "venn.png" | quote }} />
|
|
116
|
-
</TabContent>
|
|
117
|
-
{%- endif -%}
|
|
118
|
-
<TabContent>
|
|
119
|
-
<Image src={{ casedir | joinpaths: "upset.png" | quote }} />
|
|
120
|
-
</TabContent>
|
|
121
|
-
<TabContent>
|
|
122
|
-
<DataTable
|
|
123
|
-
src={{ casedir | joinpaths: "markers.txt" | quote }}
|
|
124
|
-
data={ {{ casedir | joinpaths: "markers.txt" | datatable: sep="\t" }} }
|
|
125
|
-
/>
|
|
126
|
-
</TabContent>
|
|
127
|
-
</svelte:fragment>
|
|
128
|
-
</Tabs>
|
|
129
|
-
{%- endfor -%}
|
|
130
|
-
{%- endif -%}
|
|
10
|
+
{{ job | render_job: h=h }}
|
|
131
11
|
{%- endmacro -%}
|
|
132
12
|
|
|
133
13
|
|
|
134
14
|
{%- macro head_job(job) -%}
|
|
135
|
-
|
|
15
|
+
<h1>{{job.in.srtobj | stem | escape}}</h1>
|
|
136
16
|
{%- endmacro -%}
|
|
137
17
|
|
|
138
|
-
{{ report_jobs(jobs, head_job, report_job) }}
|
|
18
|
+
{{ report_jobs(jobs, head_job, report_job) }}
|
|
@@ -1,85 +1,13 @@
|
|
|
1
1
|
{% from "utils/misc.liq" import report_jobs, table_of_images -%}
|
|
2
2
|
{% from "utils/gsea.liq" import enrichr_report -%}
|
|
3
3
|
<script>
|
|
4
|
-
import { Image, DataTable } from "$libs";
|
|
5
|
-
import { Tabs, Tab, TabContent, InlineNotification } from "$ccs";
|
|
4
|
+
import { Image, DataTable, Descr } from "$libs";
|
|
5
|
+
import { Tabs, Tab, TabContent, InlineNotification, Accordion, AccordionItem } from "$ccs";
|
|
6
6
|
</script>
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
{%- macro report_job(job, h=1) -%}
|
|
10
|
-
{
|
|
11
|
-
{%- if len(secdirs) == 1 -%}
|
|
12
|
-
{%- set secname = secdirs | first | basename -%}
|
|
13
|
-
{%- for casedir in secdirs[0] | glob: "*" -%}
|
|
14
|
-
{%- if secname == "DEFAULT" -%}
|
|
15
|
-
<h{{h}}>{{casedir | basename | escape}}</h{{h}}>
|
|
16
|
-
{%- else -%}
|
|
17
|
-
<h{{h}}>{{secname | escape}} - {{casedir | basename | escape}}</h{{h}}>
|
|
18
|
-
{%- endif -%}
|
|
19
|
-
{%- if casedir | joinpaths: "error.txt" | exists -%}
|
|
20
|
-
<InlineNotification
|
|
21
|
-
hideCloseButton
|
|
22
|
-
lowContrast
|
|
23
|
-
kind="warning"
|
|
24
|
-
subtitle={{ casedir | joinpaths: "error.txt" | read | quote }}
|
|
25
|
-
/>
|
|
26
|
-
{%- else -%}
|
|
27
|
-
<h{{h+1}}>Markers</h{{h+1}}>
|
|
28
|
-
<Tabs>
|
|
29
|
-
<Tab label="Top 10 genes" />
|
|
30
|
-
<Tab label="Table of top 100 genes" />
|
|
31
|
-
<div slot="content">
|
|
32
|
-
<TabContent>
|
|
33
|
-
{{ table_of_images(glob(casedir, "plots", "*.png"), col = 4) }}
|
|
34
|
-
</TabContent>
|
|
35
|
-
<TabContent>
|
|
36
|
-
<DataTable
|
|
37
|
-
src={{ casedir | joinpaths: "markers.txt" | quote }}
|
|
38
|
-
data={ {{ casedir | joinpaths: "markers.txt" | datatable: sep="\t", nrows=100 }} }
|
|
39
|
-
/>
|
|
40
|
-
</TabContent>
|
|
41
|
-
</div>
|
|
42
|
-
</Tabs>
|
|
43
|
-
|
|
44
|
-
<h{{h+1}}>Enrichment analysis</h{{h+1}}>
|
|
45
|
-
{{ enrichr_report(casedir) }}
|
|
46
|
-
{%- endif -%}
|
|
47
|
-
{%- endfor -%}
|
|
48
|
-
{%- else -%}
|
|
49
|
-
{%- for secdir in secdirs -%}
|
|
50
|
-
{%- set sec = secdir | basename -%}
|
|
51
|
-
<h{{h}}>{{sec | escape}}</h{{h}}>
|
|
52
|
-
{%- for casedir in secdir | glob: "*" -%}
|
|
53
|
-
<h{{h+1}}>{{casedir | basename | escape}}</h{{h+1}}>
|
|
54
|
-
{%- if casedir | joinpaths: "error.txt" | exists -%}
|
|
55
|
-
<InlineNotification
|
|
56
|
-
hideCloseButton
|
|
57
|
-
lowContrast
|
|
58
|
-
kind="warning"
|
|
59
|
-
subtitle={{ casedir | joinpaths: "error.txt" | read | quote }}
|
|
60
|
-
/>
|
|
61
|
-
{%- else -%}
|
|
62
|
-
<h{{h+2}}>Markers</h{{h+2}}>
|
|
63
|
-
<Tabs>
|
|
64
|
-
<Tab label="Top 10 genes" />
|
|
65
|
-
<Tab label="Table of top 100 genes" />
|
|
66
|
-
<TabContent>
|
|
67
|
-
{{ table_of_images(glob(casedir, "plots", "*.png"), col = 4) }}
|
|
68
|
-
</TabContent>
|
|
69
|
-
<TabContent>
|
|
70
|
-
<DataTable
|
|
71
|
-
src={{ casedir | joinpaths: "markers.txt" | quote }}
|
|
72
|
-
data={ {{ casedir | joinpaths: "markers.txt" | datatable: sep="\t", nrows=100 }} }
|
|
73
|
-
/>
|
|
74
|
-
</TabContent>
|
|
75
|
-
</Tabs>
|
|
76
|
-
|
|
77
|
-
<h{{h+2}}>Enrichment analysis</h{{h+2}}>
|
|
78
|
-
{{ enrichr_report(casedir) }}
|
|
79
|
-
{%- endif -%}
|
|
80
|
-
{%- endfor -%}
|
|
81
|
-
{%- endfor -%}
|
|
82
|
-
{%- endif -%}
|
|
10
|
+
{{ job | render_job: h=h }}
|
|
83
11
|
{%- endmacro -%}
|
|
84
12
|
|
|
85
13
|
|
|
@@ -1,31 +1,15 @@
|
|
|
1
1
|
{% from "utils/misc.liq" import report_jobs, table_of_images -%}
|
|
2
2
|
<script>
|
|
3
|
-
import { Image } from "$libs";
|
|
3
|
+
import { Image, DataTable } from "$libs";
|
|
4
|
+
import { Tabs, Tab, TabContent } from "$ccs";
|
|
4
5
|
</script>
|
|
5
6
|
|
|
6
7
|
{%- macro report_job(job, h=1) -%}
|
|
7
|
-
{
|
|
8
|
-
{%- if section_file | exists -%}
|
|
9
|
-
{%- set sections = section_file | config: "toml" -%}
|
|
10
|
-
{%- for section, cases in sections.items() -%}
|
|
11
|
-
<h{{h}}>{{section | escape}}</h{{h}}>
|
|
12
|
-
{%- set imgs = [] -%}
|
|
13
|
-
{%- for case in cases -%}
|
|
14
|
-
{%- set img = job.out.outdir | joinpaths: case + ".png" -%}
|
|
15
|
-
{%- set _ = imgs.append(img) -%}
|
|
16
|
-
{%- endfor -%}
|
|
17
|
-
{{ table_of_images(imgs) }}
|
|
18
|
-
{%- endfor -%}
|
|
19
|
-
{%- else -%}
|
|
20
|
-
{%- for img in job.out.outdir | glob: "*.png" -%}
|
|
21
|
-
<h{{h}}>{{img | stem | escape}}</h{{h}}>
|
|
22
|
-
<Image src={{img | quote}} />
|
|
23
|
-
{%- endfor -%}
|
|
24
|
-
{%- endif -%}
|
|
8
|
+
{{ job | render_job: h=h }}
|
|
25
9
|
{%- endmacro -%}
|
|
26
10
|
|
|
27
11
|
{%- macro head_job(job) -%}
|
|
28
|
-
<h1>{{job.in.srtobj | stem}}</h1>
|
|
12
|
+
<h1>{{job.in.srtobj | stem}}</h1>
|
|
29
13
|
{%- endmacro -%}
|
|
30
14
|
|
|
31
15
|
{{ report_jobs(jobs, head_job, report_job) }}
|
|
@@ -1,31 +1,70 @@
|
|
|
1
|
-
{% from "utils/misc.liq" import report_jobs
|
|
2
|
-
{% from "utils/gsea.liq" import fgsea_report_script, fgsea_report, gsea_report -%}
|
|
3
|
-
|
|
1
|
+
{% from "utils/misc.liq" import report_jobs -%}
|
|
4
2
|
<script>
|
|
5
|
-
{
|
|
3
|
+
import { Image, DataTable, Descr } from "$libs";
|
|
4
|
+
import { Tabs, Tab, TabContent, UnorderedList, ListItem, InlineNotification, Tile } from "$ccs";
|
|
6
5
|
</script>
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
7
|
+
<h1>Introduction</h1>
|
|
8
|
+
|
|
9
|
+
<Descr>
|
|
10
|
+
Metabolic landscape of single cells in the tumor microenvironment.
|
|
11
|
+
</Descr>
|
|
12
|
+
|
|
13
|
+
<h2>Workflow of the original analysis</h2>
|
|
14
|
+
<Image src="https://raw.githubusercontent.com/LocasaleLab/Single-Cell-Metabolic-Landscape/master/pipeline.png" />
|
|
15
|
+
|
|
16
|
+
<h2>Reference</h2>
|
|
17
|
+
<UnorderedList>
|
|
18
|
+
<ListItem><a href="https://www.nature.com/articles/s41467-019-11738-0" target="_blank">
|
|
19
|
+
Zhengtao, Ziwei Dai, and Jason W. Locasale.
|
|
20
|
+
"Metabolic landscape of the tumor microenvironment at single cell resolution."
|
|
21
|
+
Nature communications 10.1 (2019): 1-12.
|
|
22
|
+
</a></ListItem>
|
|
23
|
+
<ListItem><a href="https://github.com/LocasaleLab/Single-Cell-Metabolic-Landscape" target="_blank">
|
|
24
|
+
Orginal pipeline
|
|
25
|
+
</a></ListItem>
|
|
26
|
+
</UnorderedList>
|
|
27
|
+
|
|
28
|
+
<h2>Analyses with this pipeline</h2>
|
|
29
|
+
|
|
30
|
+
<Descr>
|
|
31
|
+
The cells are grouped at 2 dimensions: `subset_by`, usually the clinic groups that bring biological meaning
|
|
32
|
+
(i.e. different timepoints or sample types (tumor/normal)), and `group_by`, usually the cell types.
|
|
33
|
+
</Descr>
|
|
34
|
+
|
|
35
|
+
<UnorderedList>
|
|
36
|
+
<ListItem>
|
|
37
|
+
<a href="?proc=MetabolicPathwayActivity" class="listitem">MetabolicPathwayActivity</a>
|
|
38
|
+
<Tile><p>Investigating the metabolic pathways of the cells in different subsets and groups.</p></Tile>
|
|
39
|
+
</ListItem>
|
|
40
|
+
<ListItem>
|
|
41
|
+
<a href="?proc=MetabolicPathwayHeterogeneity" class="listitem">MetabolicPathwayHeterogeneity</a>
|
|
42
|
+
<Tile><p>Showing metabolic pathways enriched in genes with highest contribution to the metabolic heterogeneities</p></Tile>
|
|
43
|
+
</ListItem>
|
|
44
|
+
<ListItem>
|
|
45
|
+
<span class="listitem">MetabolicFeatures (this page)</span>
|
|
46
|
+
<Tile>
|
|
47
|
+
<p>Gene set enrichment analysis against the metabolic pathways for comparisons by different groups in different subsets.</p>
|
|
48
|
+
<p>The metabolic features are actual gene set enrichment analysis (GSEA) results for the metabolic pathways with given comparisons.</p>
|
|
49
|
+
</Tile>
|
|
50
|
+
</ListItem>
|
|
51
|
+
</UnorderedList>
|
|
52
|
+
|
|
53
|
+
<style>
|
|
54
|
+
.listitem {
|
|
55
|
+
font-size: large;
|
|
56
|
+
font-weight: bold;
|
|
57
|
+
margin: 1rem 0 0.5rem 0;
|
|
58
|
+
display: inline-block;
|
|
59
|
+
}
|
|
60
|
+
</style>
|
|
61
|
+
|
|
62
|
+
{%- macro report_job(job, h=1) -%}
|
|
63
|
+
{{ job | render_job: h=h }}
|
|
25
64
|
{%- endmacro -%}
|
|
26
65
|
|
|
27
66
|
{%- macro head_job(job) -%}
|
|
28
|
-
|
|
67
|
+
<h1>{{job.in | attr: "values" | call | first | stem0 | escape}}</h1>
|
|
29
68
|
{%- endmacro -%}
|
|
30
69
|
|
|
31
70
|
{{ report_jobs(jobs, head_job, report_job) }}
|
|
@@ -1,97 +1,103 @@
|
|
|
1
1
|
{% from "utils/misc.liq" import report_jobs -%}
|
|
2
|
-
|
|
3
2
|
<script>
|
|
4
|
-
import { Image } from "$libs";
|
|
3
|
+
import { Image, DataTable, Descr, Math } from "$libs";
|
|
4
|
+
import { Tabs, Tab, TabContent, UnorderedList, ListItem, InlineNotification, Tile } from "$ccs";
|
|
5
5
|
</script>
|
|
6
6
|
|
|
7
7
|
<h1>Introduction</h1>
|
|
8
8
|
|
|
9
|
-
<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
9
|
+
<Descr>
|
|
10
|
+
Metabolic landscape of single cells in the tumor microenvironment.
|
|
11
|
+
</Descr>
|
|
12
|
+
|
|
13
|
+
<h2>Workflow of the original analysis</h2>
|
|
14
|
+
<Image src="https://raw.githubusercontent.com/LocasaleLab/Single-Cell-Metabolic-Landscape/master/pipeline.png" />
|
|
15
|
+
|
|
16
|
+
<h2>Reference</h2>
|
|
17
|
+
<UnorderedList>
|
|
18
|
+
<ListItem><a href="https://www.nature.com/articles/s41467-019-11738-0" target="_blank">
|
|
19
|
+
Zhengtao, Ziwei Dai, and Jason W. Locasale.
|
|
20
|
+
"Metabolic landscape of the tumor microenvironment at single cell resolution."
|
|
21
|
+
Nature communications 10.1 (2019): 1-12.
|
|
22
|
+
</a></ListItem>
|
|
23
|
+
<ListItem><a href="https://github.com/LocasaleLab/Single-Cell-Metabolic-Landscape" target="_blank">
|
|
24
|
+
Orginal pipeline
|
|
25
|
+
</a></ListItem>
|
|
26
|
+
</UnorderedList>
|
|
27
|
+
|
|
28
|
+
<h2>Analyses with this pipeline</h2>
|
|
29
|
+
|
|
30
|
+
<Descr>
|
|
31
|
+
The cells are grouped at 2 dimensions: `subset_by`, usually the clinic groups that bring biological meaning
|
|
32
|
+
(i.e. different timepoints or sample types (tumor/normal)), and `group_by`, usually the cell types.
|
|
33
|
+
</Descr>
|
|
34
|
+
|
|
35
|
+
<UnorderedList>
|
|
36
|
+
<ListItem>
|
|
37
|
+
<span class="listitem">MetabolicPathwayActivity (this page)</span>
|
|
38
|
+
<Tile>
|
|
39
|
+
<p>Investigating the metabolic pathways of the cells in different subsets and groups.</p>
|
|
40
|
+
<p>The cells are first subset by subsets and then the metabolic activities are examined for each groups in different subsets.</p>
|
|
41
|
+
<p> </p>
|
|
42
|
+
<p>A pathway activity score defined as the relative gene expression value averaged over all genes in the pathway and all cells of the group.</p>
|
|
43
|
+
<p> </p>
|
|
44
|
+
<p>For the i-th metabolic gene, we first calculated its mean expression level across cells of the j-th cell group:
|
|
45
|
+
<Math displayMode>E_{i,j} = \frac{ {\mathop {\sum }\nolimits_{k = 1}^{n_j} g_{i,k}}}{ {n_j}},\,i \in 1 \ldots M,j \in 1 \ldots N</Math>
|
|
46
|
+
<p>
|
|
47
|
+
In which n<sub>j</sub> is the number of cells in the j-th cell group, g<sub>i,k</sub> is the expression level of the i-th gene in the k-th cell in this cell group,
|
|
48
|
+
M is the number of metabolic genes, and N is the number of cell groups. The relative expression level of the i-th gene in the j-th cell group was then
|
|
49
|
+
defined as the ratio of E<sub>i,j</sub> to its average over all cell groups:
|
|
50
|
+
</p>
|
|
51
|
+
<Math displayMode>r_{i,j} = \frac{ {E_{i,j}}}{ {\frac{1}{N}\mathop {\sum }\nolimits_j^N E_{i,j}}}</Math>
|
|
52
|
+
<p>
|
|
53
|
+
Here r<sub>i,j</sub> quantifies the relative expression level of gene i in cell group j comparing to the average expression level of this gene in all cell groups.
|
|
54
|
+
A r<sub>i,j</sub> value >1 means that expression level of gene i is higher in cell group j compared to its average expression level over all cell groups.
|
|
55
|
+
The pathway activity score for the t-th pathway and the j-th cell group was then defined as the weighted average of r<sub>i,j</sub> over all genes included
|
|
56
|
+
in this pathway:
|
|
57
|
+
</p>
|
|
58
|
+
<Math displayMode>p_{t,j} = \frac{ {\mathop {\sum }\nolimits_{i = 1}^{m_t} w_i \times r_{i,j}}}{ {\mathop {\sum }\nolimits_{i = 1}^{m_t} w_i}}</Math>
|
|
59
|
+
<p>Where p<sub>t,j</sub> represents the activity of the t-th pathway in the j-th cell group, m<sub>t</sub> is the number of genes in the pathway t, w<sub>i</sub>
|
|
60
|
+
is the weighting factor equal to the reciprocal of number of pathways that include the i-th gene.
|
|
61
|
+
To avoid the possibility that pathway activity scores were affected by genes with low expression level or high drop-out rates,
|
|
62
|
+
we excluded the outliers in each pathway defined by genes with relative expression levels greater than three times 75th percentile or below 1/3 times 25th percentile.
|
|
63
|
+
Statistical significance of higher or lower pathway activity in a specific cell group was then evaluated by a random permutation test,
|
|
64
|
+
in which the cell group labels were randomly shuffled for 5000 (for the scRNA datasets) to simulate a null distribution of the pathway activity scores
|
|
65
|
+
and compare to the pathway activity scores in the original, non-shuffled dataset.
|
|
66
|
+
For the pathway activity score p<sub>t,j</sub>, we then calculated a p-value defined as the fraction of random pathway activity scores larger than pt,j
|
|
67
|
+
(if p<sub>t,j</sub> is >1) or smaller than p<sub>t,j</sub> (if p<sub>t,j</sub> is <1) to assess if activity of this pathway is significantly
|
|
68
|
+
higher or lower in this cell group than average.</p>
|
|
69
|
+
</Tile>
|
|
70
|
+
</ListItem>
|
|
71
|
+
<ListItem>
|
|
72
|
+
<a href="?proc=MetabolicPathwayHeterogeneity" class="listitem">MetabolicPathwayHeterogeneity</a>
|
|
73
|
+
<Tile>
|
|
74
|
+
<p>Showing metabolic pathways enriched in genes with highest contribution to the metabolic heterogeneities</p>
|
|
75
|
+
</Tile>
|
|
76
|
+
</ListItem>
|
|
77
|
+
<ListItem>
|
|
78
|
+
<a href="?proc=MetabolicFeatures" class="listitem">MetabolicFeatures</a>
|
|
79
|
+
<Tile>
|
|
80
|
+
<p>Gene set enrichment analysis against the metabolic pathways for comparisons by different groups in different subsets.</p>
|
|
81
|
+
</Tile>
|
|
82
|
+
</ListItem>
|
|
83
|
+
</UnorderedList>
|
|
43
84
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
<h{{h}}>{{ ssdir | stem }}</h{{h}}>
|
|
53
|
-
|
|
54
|
-
<h{{ h+1 }}>Metabolic pathway activities by {{envs.grouping}}</h{{ h+1 }}>
|
|
55
|
-
<Image src="{{ssdir | joinpaths: 'KEGGpathway_activity_heatmap.png'}}" />
|
|
56
|
-
|
|
57
|
-
<h{{ h+1 }}>Distributions of pathway activities by {{envs.grouping}}</h{{ h+1 }}>
|
|
58
|
-
<Image src="{{ssdir | joinpaths: 'pathway_activity_violinplot.png'}}" />
|
|
59
|
-
{%- endfor -%}
|
|
85
|
+
<style>
|
|
86
|
+
.listitem {
|
|
87
|
+
font-size: large;
|
|
88
|
+
font-weight: bold;
|
|
89
|
+
margin: 1rem 0 0.5rem 0;
|
|
90
|
+
display: inline-block;
|
|
91
|
+
}
|
|
92
|
+
</style>
|
|
60
93
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
{% for group_hm in job.out.outdir | glob: "*.group-*.png" -%}
|
|
64
|
-
{%- if group_hm.endswith(".group-unclustered.png") -%}
|
|
65
|
-
<h{{h+1}}>{{group_hm | stem | replace: ".group-unclustered", " (Group Unclustered)"}}</h{{h+1}}>
|
|
66
|
-
<Image src="{{group_hm}}" />
|
|
67
|
-
{%- else -%}
|
|
68
|
-
<h{{h+1}}>{{group_hm | stem | replace: ".group-clustered", " (Group Clustered)"}}</h{{h+1}}>
|
|
69
|
-
<Image src="{{group_hm}}" />
|
|
70
|
-
{%- endif -%}
|
|
71
|
-
{%- endfor -%}
|
|
72
|
-
{%- endif -%}
|
|
94
|
+
{%- macro report_job(job, h=1) -%}
|
|
95
|
+
{{ job | render_job: h=h }}
|
|
73
96
|
{%- endmacro -%}
|
|
74
97
|
|
|
75
98
|
{%- macro head_job(job) -%}
|
|
76
|
-
|
|
99
|
+
<h1>{{job.in | attr: "values" | call | first | stem0 | escape}}</h1>
|
|
77
100
|
{%- endmacro -%}
|
|
78
101
|
|
|
79
102
|
{{ report_jobs(jobs, head_job, report_job) }}
|
|
80
103
|
|
|
81
|
-
<style>
|
|
82
|
-
|
|
83
|
-
.markdown-wrap ul {
|
|
84
|
-
list-style-position: inside;
|
|
85
|
-
list-style-type: disc;
|
|
86
|
-
margin-top: 0.2rem;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.markdown-wrap ul li p {
|
|
90
|
-
padding-left: 1.2rem;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.markdown-wrap ul li > p:first-of-type {
|
|
94
|
-
padding-left: 0;
|
|
95
|
-
display: inline;
|
|
96
|
-
}
|
|
97
|
-
</style>
|
|
@@ -1,21 +1,81 @@
|
|
|
1
|
-
{% from "utils/misc.liq" import report_jobs
|
|
2
|
-
|
|
1
|
+
{% from "utils/misc.liq" import report_jobs -%}
|
|
3
2
|
<script>
|
|
4
|
-
import { Image } from "$libs";
|
|
3
|
+
import { Image, DataTable, Descr } from "$libs";
|
|
4
|
+
import { Tabs, Tab, TabContent, UnorderedList, ListItem, InlineNotification, Tile } from "$ccs";
|
|
5
5
|
</script>
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
<h1>Introduction</h1>
|
|
8
|
+
|
|
9
|
+
<Descr>
|
|
10
|
+
Metabolic landscape of single cells in the tumor microenvironment.
|
|
11
|
+
</Descr>
|
|
12
|
+
|
|
13
|
+
<h2>Workflow of the original analysis</h2>
|
|
14
|
+
<Image src="https://raw.githubusercontent.com/LocasaleLab/Single-Cell-Metabolic-Landscape/master/pipeline.png" />
|
|
15
|
+
|
|
16
|
+
<h2>Reference</h2>
|
|
17
|
+
<UnorderedList>
|
|
18
|
+
<ListItem><a href="https://www.nature.com/articles/s41467-019-11738-0" target="_blank">
|
|
19
|
+
Zhengtao, Ziwei Dai, and Jason W. Locasale.
|
|
20
|
+
"Metabolic landscape of the tumor microenvironment at single cell resolution."
|
|
21
|
+
Nature communications 10.1 (2019): 1-12.
|
|
22
|
+
</a></ListItem>
|
|
23
|
+
<ListItem><a href="https://github.com/LocasaleLab/Single-Cell-Metabolic-Landscape" target="_blank">
|
|
24
|
+
Orginal pipeline
|
|
25
|
+
</a></ListItem>
|
|
26
|
+
</UnorderedList>
|
|
27
|
+
|
|
28
|
+
<h2>Analyses with this pipeline</h2>
|
|
29
|
+
|
|
30
|
+
<Descr>
|
|
31
|
+
The cells are grouped at 2 dimensions: `subset_by`, usually the clinic groups that bring biological meaning
|
|
32
|
+
(i.e. different timepoints or sample types (tumor/normal)), and `group_by`, usually the cell types.
|
|
33
|
+
</Descr>
|
|
34
|
+
|
|
35
|
+
<UnorderedList>
|
|
36
|
+
<ListItem>
|
|
37
|
+
<a href="?proc=MetabolicPathwayActivity" class="listitem">MetabolicPathwayActivity</a>
|
|
38
|
+
<Tile>
|
|
39
|
+
<p>Investigating the metabolic pathways of the cells in different subsets and groups.</p>
|
|
40
|
+
</Tile>
|
|
41
|
+
</ListItem>
|
|
42
|
+
<ListItem>
|
|
43
|
+
<span class="listitem">MetabolicPathwayHeterogeneity (this page)</span>
|
|
44
|
+
<Tile>
|
|
45
|
+
<p>Showing metabolic pathways enriched in genes with highest contribution to the metabolic heterogeneities</p>
|
|
46
|
+
<p>
|
|
47
|
+
The PCA analysis was applied on normalized expression values.
|
|
48
|
+
The function prcomp in R was used to perform the PCA analysis.
|
|
49
|
+
For each metabolic gene, we computed its PCA score defined as the sum of absolute values of the loadings of this gene in the top PCs
|
|
50
|
+
that in total account for certain variance to measure variability of gene expression across cells.
|
|
51
|
+
We then sorted the PCA scores of the genes in descending order and applied GSEA analysis to the ranked list of genes to identify metabolic pathways
|
|
52
|
+
enriched in genes with highest variability.
|
|
53
|
+
</p>
|
|
54
|
+
</Tile>
|
|
55
|
+
</ListItem>
|
|
56
|
+
<ListItem>
|
|
57
|
+
<a href="?proc=MetabolicFeatures" class="listitem">MetabolicFeatures</a>
|
|
58
|
+
<Tile>
|
|
59
|
+
<p>Gene set enrichment analysis against the metabolic pathways for comparisons by different groups in different subsets.</p>
|
|
60
|
+
</Tile>
|
|
61
|
+
</ListItem>
|
|
62
|
+
</UnorderedList>
|
|
10
63
|
|
|
11
|
-
|
|
12
|
-
|
|
64
|
+
<style>
|
|
65
|
+
.listitem {
|
|
66
|
+
font-size: large;
|
|
67
|
+
font-weight: bold;
|
|
68
|
+
margin: 1rem 0 0.5rem 0;
|
|
69
|
+
display: inline-block;
|
|
70
|
+
}
|
|
71
|
+
</style>
|
|
13
72
|
|
|
14
|
-
|
|
73
|
+
{%- macro report_job(job, h=1) -%}
|
|
74
|
+
{{ job | render_job: h=h }}
|
|
15
75
|
{%- endmacro -%}
|
|
16
76
|
|
|
17
77
|
{%- macro head_job(job) -%}
|
|
18
|
-
|
|
78
|
+
<h1>{{job.in | attr: "values" | call | first | stem0 | escape}}</h1>
|
|
19
79
|
{%- endmacro -%}
|
|
20
80
|
|
|
21
81
|
{{ report_jobs(jobs, head_job, report_job) }}
|