biopipen 0.21.2__py3-none-any.whl → 0.22.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of biopipen might be problematic. Click here for more details.
- biopipen/__init__.py +1 -1
- biopipen/core/filters.py +142 -0
- biopipen/ns/scrna.py +19 -1
- biopipen/ns/tcr.py +30 -10
- biopipen/reports/delim/SampleInfo.svelte +2 -22
- biopipen/reports/scrna/CellsDistribution.svelte +4 -39
- biopipen/reports/scrna/MarkersFinder.svelte +6 -126
- biopipen/reports/scrna/MetaMarkers.svelte +3 -75
- biopipen/reports/scrna/RadarPlots.svelte +4 -20
- biopipen/reports/scrna/ScFGSEA.svelte +4 -23
- biopipen/reports/scrna/SeuratClusterStats.svelte +3 -69
- biopipen/reports/scrna/SeuratPreparing.svelte +3 -26
- biopipen/reports/scrna/TopExpressingGenes.svelte +3 -41
- biopipen/reports/scrna_metabolic_landscape/MetabolicFeatures.svelte +17 -16
- biopipen/reports/scrna_metabolic_landscape/MetabolicFeaturesIntraSubset.svelte +13 -16
- biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayActivity.svelte +44 -52
- biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.svelte +2 -8
- biopipen/reports/tcr/CDR3AAPhyschem.svelte +18 -65
- biopipen/reports/tcr/CloneResidency.svelte +3 -93
- biopipen/reports/tcr/Immunarch.svelte +4 -168
- biopipen/reports/tcr/TCRClusterStats.svelte +3 -45
- biopipen/reports/tcr/TESSA.svelte +11 -28
- biopipen/scripts/delim/SampleInfo.R +41 -7
- biopipen/scripts/scrna/CellsDistribution.R +127 -16
- biopipen/scripts/scrna/MarkersFinder.R +245 -100
- biopipen/scripts/scrna/MetaMarkers.R +163 -82
- biopipen/scripts/scrna/RadarPlots.R +163 -110
- biopipen/scripts/scrna/ScFGSEA.R +51 -11
- biopipen/scripts/scrna/SeuratClusterStats-dimplots.R +26 -13
- biopipen/scripts/scrna/SeuratClusterStats-features.R +58 -53
- biopipen/scripts/scrna/SeuratClusterStats-stats.R +39 -21
- biopipen/scripts/scrna/SeuratClusterStats.R +4 -2
- biopipen/scripts/scrna/SeuratClustering.R +73 -26
- biopipen/scripts/scrna/SeuratMetadataMutater.R +13 -1
- biopipen/scripts/scrna/SeuratPreparing.R +93 -19
- biopipen/scripts/scrna/TopExpressingGenes.R +100 -18
- biopipen/scripts/scrna_metabolic_landscape/MetabolicFeatures.R +21 -8
- biopipen/scripts/scrna_metabolic_landscape/MetabolicFeaturesIntraSubset.R +25 -3
- biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayActivity.R +1 -0
- biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.R +14 -3
- biopipen/scripts/tcr/Attach2Seurat.R +2 -1
- biopipen/scripts/tcr/CDR3AAPhyschem.R +123 -10
- biopipen/scripts/tcr/CloneResidency.R +114 -34
- biopipen/scripts/tcr/Immunarch-basic.R +18 -4
- biopipen/scripts/tcr/Immunarch-clonality.R +14 -0
- biopipen/scripts/tcr/Immunarch-diversity.R +123 -18
- biopipen/scripts/tcr/Immunarch-geneusage.R +23 -1
- biopipen/scripts/tcr/Immunarch-kmer.R +45 -3
- biopipen/scripts/tcr/Immunarch-overlap.R +62 -0
- biopipen/scripts/tcr/Immunarch-spectratyping.R +18 -2
- biopipen/scripts/tcr/Immunarch-tracking.R +24 -1
- biopipen/scripts/tcr/Immunarch-vjjunc.R +17 -2
- biopipen/scripts/tcr/Immunarch.R +7 -0
- biopipen/scripts/tcr/ImmunarchLoading.R +22 -23
- biopipen/scripts/tcr/TCRClusterStats.R +124 -11
- biopipen/scripts/tcr/TCRClustering.R +8 -9
- biopipen/scripts/tcr/TESSA.R +66 -41
- biopipen/utils/misc.R +96 -1
- {biopipen-0.21.2.dist-info → biopipen-0.22.1.dist-info}/METADATA +1 -1
- {biopipen-0.21.2.dist-info → biopipen-0.22.1.dist-info}/RECORD +62 -62
- {biopipen-0.21.2.dist-info → biopipen-0.22.1.dist-info}/WHEEL +0 -0
- {biopipen-0.21.2.dist-info → biopipen-0.22.1.dist-info}/entry_points.txt +0 -0
|
@@ -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,35 +1,16 @@
|
|
|
1
1
|
{% from "utils/gsea.liq" import fgsea_report -%}
|
|
2
2
|
{% from "utils/misc.liq" import report_jobs -%}
|
|
3
3
|
<script>
|
|
4
|
-
import { Image, DataTable } from "$libs";
|
|
4
|
+
import { Image, DataTable, Descr } from "$libs";
|
|
5
|
+
import { Accordion, AccordionItem, Tabs, Tab, TabContent } from "$ccs";
|
|
5
6
|
</script>
|
|
6
7
|
|
|
7
8
|
{%- macro report_job(job, h=1) -%}
|
|
8
|
-
{
|
|
9
|
-
{%- if len(secdirs) == 1 -%}
|
|
10
|
-
{%- set secname = secdirs | first | basename -%}
|
|
11
|
-
{%- for casedir in secdirs | first | glob: "*" -%}
|
|
12
|
-
{%- if secname == "DEFAULT" -%}
|
|
13
|
-
<h{{h}}>{{ casedir | basename | escape }}</h{{h}}>
|
|
14
|
-
{%- else -%}
|
|
15
|
-
<h{{h}}>{{secname | escape }} - {{ casedir | basename | escape }}</h{{h}}>
|
|
16
|
-
{%- endif -%}
|
|
17
|
-
{{ fgsea_report(casedir, h + 1) }}
|
|
18
|
-
{%- endfor -%}
|
|
19
|
-
{%- else -%}
|
|
20
|
-
{%- for secdir in secdirs -%}
|
|
21
|
-
{%- set sec = secdir | basename -%}
|
|
22
|
-
<h{{h}}>{{sec | escape}}</h{{h}}>
|
|
23
|
-
{%- for casedir in secdir | glob: "*" -%}
|
|
24
|
-
<h{{h+1}}>{{casedir | basename | escape}}</h{{h+1}}>
|
|
25
|
-
{{ fgsea_report(casedir, h + 2) }}
|
|
26
|
-
{%- endfor -%}
|
|
27
|
-
{%- endfor -%}
|
|
28
|
-
{%- endif -%}
|
|
9
|
+
{{ job | render_job: h=h }}
|
|
29
10
|
{%- endmacro -%}
|
|
30
11
|
|
|
31
12
|
{%- macro head_job(job) -%}
|
|
32
|
-
<h1>{{job.in.srtobj | stem0 | escape}}</h1>
|
|
13
|
+
<h1>{{job.in.srtobj | stem0 | escape}}</h1>
|
|
33
14
|
{%- endmacro -%}
|
|
34
15
|
|
|
35
16
|
{{ report_jobs(jobs, head_job, report_job) }}
|
|
@@ -1,82 +1,16 @@
|
|
|
1
1
|
{% from "utils/misc.liq" import report_jobs, table_of_images -%}
|
|
2
2
|
{% from_ os import path %}
|
|
3
3
|
<script>
|
|
4
|
-
import { DataTable, Image } from "$libs";
|
|
4
|
+
import { DataTable, Image, Descr } from "$libs";
|
|
5
5
|
import { Tabs, Tab, TabContent } from "$ccs";
|
|
6
6
|
</script>
|
|
7
7
|
|
|
8
8
|
{%- macro report_job(job, h=1) -%}
|
|
9
|
-
{
|
|
10
|
-
{%- set features_reports_file = job.out.outdir | joinpaths: "features", "report_toc.json" -%}
|
|
11
|
-
{%- set dimplots_reports_file = job.out.outdir | joinpaths: "dimplots", "report_toc.json" -%}
|
|
12
|
-
|
|
13
|
-
{%- if stats_reports_file | exists -%}
|
|
14
|
-
{%- set stats = stats_reports_file | config: "json" -%}
|
|
15
|
-
{% for key, value in stats.items() -%}
|
|
16
|
-
<h{{h}}>{{key | escape}}</h{{h}}>
|
|
17
|
-
<Tabs>
|
|
18
|
-
{% if 'bar' in value -%}
|
|
19
|
-
<Tab label="Bar plot" />
|
|
20
|
-
{% endif -%}
|
|
21
|
-
{% if 'pie' in value -%}
|
|
22
|
-
<Tab label="Pie chart" />
|
|
23
|
-
{% endif -%}
|
|
24
|
-
{% if 'table' in value -%}
|
|
25
|
-
<Tab label="Table" />
|
|
26
|
-
{% endif -%}
|
|
27
|
-
<svelte:fragment slot="content">
|
|
28
|
-
{% if 'bar' in value -%}
|
|
29
|
-
<TabContent>
|
|
30
|
-
<Image src="{{job.out.outdir}}/stats/{{value.bar}}" />
|
|
31
|
-
</TabContent>
|
|
32
|
-
{% endif -%}
|
|
33
|
-
{% if 'pie' in value -%}
|
|
34
|
-
<TabContent>
|
|
35
|
-
<Image src="{{job.out.outdir}}/stats/{{value.pie}}" />
|
|
36
|
-
</TabContent>
|
|
37
|
-
{% endif -%}
|
|
38
|
-
{% if 'table' in value -%}
|
|
39
|
-
<TabContent>
|
|
40
|
-
<DataTable src="{{job.out.outdir}}/stats/{{value.table}}"
|
|
41
|
-
data={ {{job.out.outdir | joinpaths: "stats", value.table | datatable: sep="\t", nrows=100 }} }
|
|
42
|
-
/>
|
|
43
|
-
</TabContent>
|
|
44
|
-
{% endif -%}
|
|
45
|
-
</svelte:fragment>
|
|
46
|
-
</Tabs>
|
|
47
|
-
{%- endfor -%}
|
|
48
|
-
{%- endif -%}
|
|
49
|
-
|
|
50
|
-
{%- if features_reports_file | exists -%}
|
|
51
|
-
{%- set features = features_reports_file | config: "json" %}
|
|
52
|
-
{% for key, value in features.items() -%}
|
|
53
|
-
<h{{h}}>{{key | escape}}</h{{h}}>
|
|
54
|
-
{% for val in value -%}
|
|
55
|
-
{% if "name" in val -%}
|
|
56
|
-
<h{{h+1}}>{{val.name | escape}}</h{{h+1}}>
|
|
57
|
-
{%- endif -%}
|
|
58
|
-
{% if val.kind == "table" -%}
|
|
59
|
-
<DataTable src="{{job.out.outdir}}/features/{{val.file}}"
|
|
60
|
-
data={ {{job.out.outdir | joinpaths: "features", val.file | datatable: sep="\t", nrows=100 }} }
|
|
61
|
-
/>
|
|
62
|
-
{% else -%}
|
|
63
|
-
<Image src="{{job.out.outdir}}/features/{{val.file}}" />
|
|
64
|
-
{% endif -%}
|
|
65
|
-
{%- endfor -%}
|
|
66
|
-
{%- endfor -%}
|
|
67
|
-
{%- endif -%}
|
|
68
|
-
|
|
69
|
-
{%- if dimplots_reports_file | exists -%}
|
|
70
|
-
{%- set dimplots = dimplots_reports_file | config: "json" %}
|
|
71
|
-
{% for key, value in dimplots.items() -%}
|
|
72
|
-
<h{{h}}>{{key | escape}}</h{{h}}>
|
|
73
|
-
<Image src="{{job.out.outdir}}/dimplots/{{value}}" />
|
|
74
|
-
{%- endfor -%}
|
|
75
|
-
{%- endif -%}
|
|
9
|
+
{{ job | render_job: h=h }}
|
|
76
10
|
{%- endmacro -%}
|
|
77
11
|
|
|
78
12
|
{%- macro head_job(job) -%}
|
|
79
|
-
<h1>{{job.in.srtobj | stem}}</h1>
|
|
13
|
+
<h1>{{job.in.srtobj | stem}}</h1>
|
|
80
14
|
{%- endmacro -%}
|
|
81
15
|
|
|
82
16
|
{{ report_jobs(jobs, head_job, report_job) }}
|
|
@@ -1,34 +1,11 @@
|
|
|
1
|
-
{% from "utils/misc.liq" import report_jobs
|
|
1
|
+
{% from "utils/misc.liq" import report_jobs -%}
|
|
2
2
|
{% from_ os import path %}
|
|
3
3
|
<script>
|
|
4
|
-
import { Image, DataTable } from "$libs";
|
|
5
|
-
import { Tile } from "$ccs";
|
|
4
|
+
import { Image, DataTable, Descr } from "$libs";
|
|
6
5
|
</script>
|
|
7
6
|
|
|
8
7
|
{%- macro report_job(job, h=1) -%}
|
|
9
|
-
|
|
10
|
-
<Tile>
|
|
11
|
-
<p>Cell filters: {{envs.cell_qc | str | escape}}</p>
|
|
12
|
-
<p>Gene filters: {{
|
|
13
|
-
proc.envs.gene_qc
|
|
14
|
-
| str
|
|
15
|
-
| replace: "{", "{"
|
|
16
|
-
| replace: "}", "}"
|
|
17
|
-
}}</p>
|
|
18
|
-
|
|
19
|
-
<DataTable
|
|
20
|
-
src={{job.outdir | joinpaths: 'plots', 'dim.txt' | quote}}
|
|
21
|
-
data={ {{job.outdir | joinpaths: 'plots', 'dim.txt' | datatable: sep="\t"}} } />
|
|
22
|
-
</Tile>
|
|
23
|
-
|
|
24
|
-
<h{{h}}>Violin plots</h{{h}}>
|
|
25
|
-
{% set qcimgs = job.outdir | glob: "plots", "*.vln.png" %}
|
|
26
|
-
{{ table_of_images(qcimgs) }}
|
|
27
|
-
|
|
28
|
-
<h{{h}}>Scatter plots</h{{h}}>
|
|
29
|
-
{% set qcimgs = job.outdir | glob: "plots", "*.scatter.png" %}
|
|
30
|
-
{{ table_of_images(qcimgs) }}
|
|
31
|
-
|
|
8
|
+
{{ job | render_job: h=h }}
|
|
32
9
|
{%- endmacro -%}
|
|
33
10
|
|
|
34
11
|
{%- macro head_job(job) -%}
|
|
@@ -1,51 +1,13 @@
|
|
|
1
1
|
{% from "utils/misc.liq" import report_jobs -%}
|
|
2
2
|
{% from "utils/gsea.liq" import enrichr_report -%}
|
|
3
3
|
<script>
|
|
4
|
-
import { Image, DataTable } from "$libs";
|
|
5
|
-
import { Tabs, Tab, TabContent
|
|
4
|
+
import { Image, DataTable, Descr } from "$libs";
|
|
5
|
+
import { Accordion, AccordionItem, Tabs, Tab, TabContent } 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
|
-
|
|
20
|
-
<h{{h+1}}>Markers</h{{h+1}}>
|
|
21
|
-
<DataTable
|
|
22
|
-
src={{ casedir | joinpaths: "exprn.txt" | quote }}
|
|
23
|
-
data={ {{ casedir | joinpaths: "exprn.txt" | datatable: sep="\t", nrows=100 }} }
|
|
24
|
-
/>
|
|
25
|
-
|
|
26
|
-
<h{{h+1}}>Enrichment analysis</h{{h+1}}>
|
|
27
|
-
{{ enrichr_report(casedir) }}
|
|
28
|
-
|
|
29
|
-
{%- endfor -%}
|
|
30
|
-
{%- else -%}
|
|
31
|
-
{%- for secdir in secdirs -%}
|
|
32
|
-
{%- set sec = secdir | basename -%}
|
|
33
|
-
<h{{h}}>{{sec | escape}}</h{{h}}>
|
|
34
|
-
{%- for casedir in secdir | glob: "*" -%}
|
|
35
|
-
<h{{h+1}}>{{casedir | basename | escape}}</h{{h+1}}>
|
|
36
|
-
|
|
37
|
-
<h{{h+2}}>Markers</h{{h+2}}>
|
|
38
|
-
<DataTable
|
|
39
|
-
src={{ casedir | joinpaths: "exprn.txt" | quote }}
|
|
40
|
-
data={ {{ casedir | joinpaths: "exprn.txt" | datatable: sep="\t", nrows=100 }} }
|
|
41
|
-
/>
|
|
42
|
-
|
|
43
|
-
<h{{h+2}}>Enrichment analysis</h{{h+2}}>
|
|
44
|
-
{{ enrichr_report(casedir) }}
|
|
45
|
-
|
|
46
|
-
{%- endfor -%}
|
|
47
|
-
{%- endfor -%}
|
|
48
|
-
{%- endif -%}
|
|
10
|
+
{{ job | render_job: h=h }}
|
|
49
11
|
{%- endmacro -%}
|
|
50
12
|
|
|
51
13
|
{%- macro head_job(job) -%}
|
|
@@ -2,26 +2,27 @@
|
|
|
2
2
|
{% from "utils/gsea.liq" import fgsea_report_script, fgsea_report, gsea_report -%}
|
|
3
3
|
|
|
4
4
|
<script>
|
|
5
|
-
{
|
|
5
|
+
import { Image, DataTable, Descr } from "$libs";
|
|
6
|
+
import { Tabs, Tab, TabContent, Accordion, AccordionItem } from "$ccs";
|
|
6
7
|
</script>
|
|
7
8
|
|
|
8
9
|
{%- macro report_job(job, h=2) -%}
|
|
9
|
-
{
|
|
10
|
-
{
|
|
11
|
-
|
|
12
|
-
{%-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
{% if envs.fgsea %}
|
|
11
|
+
{{ job | render_job: h=h }}
|
|
12
|
+
{% else %}
|
|
13
|
+
{%- for ssdir in job.out.outdir | glob: "*" -%}
|
|
14
|
+
{%- if basename(ssdir) == "ALL" -%}
|
|
15
|
+
{%- set h = 1 -%}
|
|
16
|
+
{%- else -%}
|
|
17
|
+
<h{{h}}>{{ ssdir | stem }}</h{{h}}>
|
|
18
|
+
{%- endif -%}
|
|
15
19
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
{% endif %}
|
|
23
|
-
{% endfor %}
|
|
24
|
-
{%- endfor -%}
|
|
20
|
+
{% for cldir in ssdir | glob: '*' %}
|
|
21
|
+
<h{{h+1}}>{{ cldir | basename }}</h{{h+1}}>
|
|
22
|
+
{{ gsea_report(cldir, h+2, envs, envs.top) }}
|
|
23
|
+
{% endfor %}
|
|
24
|
+
{%- endfor -%}
|
|
25
|
+
{% endif %}
|
|
25
26
|
{%- endmacro -%}
|
|
26
27
|
|
|
27
28
|
{%- macro head_job(job) -%}
|
|
@@ -2,26 +2,23 @@
|
|
|
2
2
|
{% from "utils/gsea.liq" import fgsea_report, gsea_report -%}
|
|
3
3
|
|
|
4
4
|
<script>
|
|
5
|
-
import { Image, DataTable } from "$libs";
|
|
5
|
+
import { Image, DataTable, Descr } from "$libs";
|
|
6
|
+
import { Tabs, Tab, TabContent, Accordion, AccordionItem } from "$ccs";
|
|
6
7
|
</script>
|
|
7
8
|
|
|
8
9
|
{%- macro report_job(job, h=2) -%}
|
|
9
|
-
{%
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
{%
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
{% endif %}
|
|
20
|
-
{% else %}
|
|
21
|
-
{{ gsea_report(dsdir, h+2, envs, envs.top) }}
|
|
22
|
-
{% endif %}
|
|
10
|
+
{% if envs.fgsea %}
|
|
11
|
+
{{ job | render_job: h=h }}
|
|
12
|
+
{% else %}
|
|
13
|
+
{% for groupdir in job.out.outdir | glob: "*" %}
|
|
14
|
+
<h{{h}}>{{groupdir | basename}}</h{{h}}>
|
|
15
|
+
{%- set dsdirs = groupdir | glob: "*" -%}
|
|
16
|
+
{% for dsdir in groupdir | glob: "*" %}
|
|
17
|
+
<h{{h+1}}>{{ dsdir | basename }}</h{{h+1}}>
|
|
18
|
+
{{ gsea_report(dsdir, h+2, envs, envs.top) }}
|
|
19
|
+
{% endfor %}
|
|
23
20
|
{% endfor %}
|
|
24
|
-
{%
|
|
21
|
+
{% endif %}
|
|
25
22
|
{%- endmacro -%}
|
|
26
23
|
|
|
27
24
|
{%- macro head_job(job) -%}
|
|
@@ -1,48 +1,58 @@
|
|
|
1
1
|
{% from "utils/misc.liq" import report_jobs -%}
|
|
2
2
|
|
|
3
3
|
<script>
|
|
4
|
-
import { Image } from "$libs";
|
|
4
|
+
import { Image, Descr } from "$libs";
|
|
5
|
+
import { ListItem, UnorderedList } from "$ccs";
|
|
5
6
|
</script>
|
|
6
7
|
|
|
7
8
|
<h1>Introduction</h1>
|
|
8
9
|
|
|
9
|
-
<
|
|
10
|
-
|
|
10
|
+
<Descr>
|
|
11
|
+
Metabolic landscape of single cells in the tumor microenvironment.
|
|
12
|
+
</Descr>
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## Workflow of the original analysis
|
|
14
|
+
<h2>Workflow of the original analysis</h2>
|
|
15
15
|
<Image src="https://github.com/LocasaleLab/Single-Cell-Metabolic-Landscape/raw/master/pipeline.png" />
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
<h2>Reference</h2>
|
|
18
|
+
<UnorderedList>
|
|
19
|
+
<ListItem><a href="https://www.nature.com/articles/s41467-019-11738-0" target="_blank">
|
|
20
|
+
Zhengtao, Ziwei Dai, and Jason W. Locasale.
|
|
21
|
+
"Metabolic landscape of the tumor microenvironment at single cell resolution."
|
|
22
|
+
Nature communications 10.1 (2019): 1-12.
|
|
23
|
+
</a></ListItem>
|
|
24
|
+
<ListItem><a href="https://github.com/LocasaleLab/Single-Cell-Metabolic-Landscape" target="_blank">
|
|
25
|
+
Orginal pipeline
|
|
26
|
+
</a></ListItem>
|
|
27
|
+
</UnorderedList>
|
|
28
|
+
|
|
29
|
+
<h2>Analyses with this pipeline</h2>
|
|
30
|
+
|
|
31
|
+
<Descr>
|
|
23
32
|
The cells are grouped at 2 dimensions: `grouping`, usually the cell types, and `subsetting`, usually
|
|
24
33
|
the groups that bring biological meaning (i.e. different timepoints or sample types (tumor/normal)).
|
|
34
|
+
</Descr>
|
|
35
|
+
|
|
36
|
+
<UnorderedList>
|
|
37
|
+
<ListItem>
|
|
38
|
+
MetabolicPathwayActivity (this page)
|
|
39
|
+
<p>Investigating the metabolic pathways of the cells in different groups and subsets.</p>
|
|
40
|
+
<p>The cells are first grouped by subsets and then the metabolic activities are examined for each groups in different subsets.</p>
|
|
41
|
+
</ListItem>
|
|
42
|
+
<ListItem>
|
|
43
|
+
<a href="../MetabolicPathwayHeterogeneity/index.html">MetabolicPathwayHeterogeneity</a>
|
|
44
|
+
<p>Showing metabolic pathways enriched in genes with highest contribution to the metabolic heterogeneities</p>
|
|
45
|
+
</ListItem>
|
|
46
|
+
<ListItem>
|
|
47
|
+
<a href="../MetabolicFeatures/index.html">MetabolicFeatures</a>
|
|
48
|
+
<p>Gene set enrichment analysis against the metabolic pathways for groups in different subsets.</p>
|
|
49
|
+
</ListItem>
|
|
50
|
+
<ListItem>
|
|
51
|
+
<a href="../MetabolicFeaturesIntraSubsets/index.html">MetabolicFeaturesIntraSubsets</a>
|
|
52
|
+
<p>Gene set enrichment analysis against the metabolic pathways for subsets in different groups.</p>
|
|
53
|
+
</ListItem>
|
|
54
|
+
</UnorderedList>
|
|
25
55
|
|
|
26
|
-
- **MetabolicPathwayActivity (this page)**
|
|
27
|
-
|
|
28
|
-
Investigating the metabolic pathways of the cells in different groups and subsets.
|
|
29
|
-
|
|
30
|
-
The cells are first grouped by subsets and then the metabolic activities are examined for each groups in different subsets.
|
|
31
|
-
|
|
32
|
-
- **MetabolicPathwayHeterogeneity**
|
|
33
|
-
|
|
34
|
-
Showing metabolic pathways enriched in genes with highest contribution to the metabolic heterogeneities
|
|
35
|
-
|
|
36
|
-
- **MetabolicFeatures**
|
|
37
|
-
|
|
38
|
-
Gene set enrichment analysis against the metabolic pathways for groups in different subsets.
|
|
39
|
-
|
|
40
|
-
- **MetabolicFeaturesIntraSubsets** (optional)
|
|
41
|
-
|
|
42
|
-
Gene set enrichment analysis against the metabolic pathways for subsets based on the designed comparison in different groups.
|
|
43
|
-
|
|
44
|
-
</Markdown>
|
|
45
|
-
</div>
|
|
46
56
|
|
|
47
57
|
{%- macro report_job(job, h=2) -%}
|
|
48
58
|
{%- for ssdir in job.out.outdir | glob: "*" -%}
|
|
@@ -51,10 +61,10 @@ the groups that bring biological meaning (i.e. different timepoints or sample ty
|
|
|
51
61
|
{%- endif -%}
|
|
52
62
|
<h{{h}}>{{ ssdir | stem }}</h{{h}}>
|
|
53
63
|
|
|
54
|
-
<h{{ h+1 }}>Metabolic pathway activities by {{envs.grouping}}</h{{ h+1 }}>
|
|
64
|
+
<h{{ h+1 }}>Metabolic pathway activities by <code>{{envs.grouping}}</code></h{{ h+1 }}>
|
|
55
65
|
<Image src="{{ssdir | joinpaths: 'KEGGpathway_activity_heatmap.png'}}" />
|
|
56
66
|
|
|
57
|
-
<h{{ h+1 }}>Distributions of pathway activities by {{envs.grouping}}</h{{ h+1 }}>
|
|
67
|
+
<h{{ h+1 }}>Distributions of pathway activities by <code>{{envs.grouping}}</code></h{{ h+1 }}>
|
|
58
68
|
<Image src="{{ssdir | joinpaths: 'pathway_activity_violinplot.png'}}" />
|
|
59
69
|
{%- endfor -%}
|
|
60
70
|
|
|
@@ -77,21 +87,3 @@ the groups that bring biological meaning (i.e. different timepoints or sample ty
|
|
|
77
87
|
{%- endmacro -%}
|
|
78
88
|
|
|
79
89
|
{{ report_jobs(jobs, head_job, report_job) }}
|
|
80
|
-
|
|
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,17 +1,11 @@
|
|
|
1
1
|
{% from "utils/misc.liq" import report_jobs, table_of_images -%}
|
|
2
2
|
|
|
3
3
|
<script>
|
|
4
|
-
import { Image } from "$libs";
|
|
4
|
+
import { Image, Descr } from "$libs";
|
|
5
5
|
</script>
|
|
6
6
|
|
|
7
7
|
{%- macro report_job(job, h=2) -%}
|
|
8
|
-
{
|
|
9
|
-
<h{{h}}>{{ ssdir | stem }}</h{{h}}>
|
|
10
|
-
|
|
11
|
-
<h{{h+1}}>Metabolic pathways enriched in genes with highest contribution to the metabolic heterogeneities</h{{h+1}}>
|
|
12
|
-
<Image src="{{ssdir | joinpaths: 'pathway_heterogeneity.png'}}" />
|
|
13
|
-
|
|
14
|
-
{%- endfor -%}
|
|
8
|
+
{{ job | render_job: h=h }}
|
|
15
9
|
{%- endmacro -%}
|
|
16
10
|
|
|
17
11
|
{%- macro head_job(job) -%}
|
|
@@ -1,67 +1,28 @@
|
|
|
1
1
|
{% from "utils/misc.liq" import report_jobs -%}
|
|
2
2
|
<script>
|
|
3
|
-
import { Image, DataTable } from "$libs";
|
|
3
|
+
import { Image, DataTable, Descr } from "$libs";
|
|
4
4
|
import { Tile, UnorderedList, ListItem, Link, Tabs, Tab, TabContent } from "$ccs";
|
|
5
5
|
</script>
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<ListItem
|
|
21
|
-
<ListItem class="ccs-li"><Link href="https://www.nature.com/articles/s41590-022-01129-x" target="_blank">https://www.nature.com/articles/s41590-022-01129-x</Link></ListItem>
|
|
22
|
-
<ListItem class="ccs-li">Wimley, W. C. & White, S. H. Experimentally determined hydrophobicity scale for proteins at membrane - interfaces. Nat. Struct. Biol. 3, 842-848 (1996).</ListItem>
|
|
23
|
-
<ListItem class="ccs-li">Hdbk of chemistry & physics 72nd edition. (CRC Press, 1991).</ListItem>
|
|
24
|
-
<ListItem class="ccs-li">Zamyatnin, A. A. Protein volume in solution. Prog. Biophys. Mol. Biol. 24, 107-123 (1972).</ListItem>
|
|
7
|
+
<h1>Summary</h1>
|
|
8
|
+
<Descr>
|
|
9
|
+
The idea is to perform a regression between two groups of cells
|
|
10
|
+
(e.g. Treg vs Tconv) at different length of CDR3 AA sequences.
|
|
11
|
+
The regression will be performed for each physicochemical feature of the
|
|
12
|
+
AA (hydrophobicity, volume and isolectric point).
|
|
13
|
+
|
|
14
|
+
<h2>Reference</h2>
|
|
15
|
+
<UnorderedList>
|
|
16
|
+
<ListItem><Link href="https://www.nature.com/articles/ni.3491" target="_blank">https://www.nature.com/articles/ni.3491</Link></ListItem>
|
|
17
|
+
<ListItem><Link href="https://www.nature.com/articles/s41590-022-01129-x" target="_blank">https://www.nature.com/articles/s41590-022-01129-x</Link></ListItem>
|
|
18
|
+
<ListItem>Wimley, W. C. & White, S. H. Experimentally determined hydrophobicity scale for proteins at membrane - interfaces. Nat. Struct. Biol. 3, 842-848 (1996).</ListItem>
|
|
19
|
+
<ListItem>Hdbk of chemistry & physics 72nd edition. (CRC Press, 1991).</ListItem>
|
|
20
|
+
<ListItem>Zamyatnin, A. A. Protein volume in solution. Prog. Biophys. Mol. Biol. 24, 107-123 (1972).</ListItem>
|
|
25
21
|
</UnorderedList>
|
|
22
|
+
</Descr>
|
|
26
23
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
src={{job.out.outdir | joinpaths: "stats.txt" | quote}}
|
|
30
|
-
data={ {{job.out.outdir | joinpaths: "stats.txt" | datatable: sep="\t", index_col=None}} }
|
|
31
|
-
/>
|
|
32
|
-
|
|
33
|
-
{% for subsetdir in job.out.outdir | glob: "*" %}
|
|
34
|
-
{% if not subsetdir | isdir %}
|
|
35
|
-
{% continue %}
|
|
36
|
-
{% endif %}
|
|
37
|
-
{% if basename(subsetdir) == "ALL" %}
|
|
38
|
-
{% set h = h - 1 %}
|
|
39
|
-
{% else %}
|
|
40
|
-
<h{{h}}>Subset: {{subsetdir | stem}}</h{{h}}>
|
|
41
|
-
{% endif %}
|
|
42
|
-
|
|
43
|
-
<h{{h+1}}>Estimated OR (per s.d.) for each physicochemical feature</h{{h+1}}>
|
|
44
|
-
<Tabs>
|
|
45
|
-
<Tab label="Plot" />
|
|
46
|
-
<Tab label="Table" />
|
|
47
|
-
<svelte:fragment slot="content">
|
|
48
|
-
<TabContent>
|
|
49
|
-
<Image src={{subsetdir | joinpaths: "estimated_coefficients.png" | quote}} />
|
|
50
|
-
</TabContent>
|
|
51
|
-
<TabContent>
|
|
52
|
-
<DataTable
|
|
53
|
-
src={{subsetdir | joinpaths: "estimates.txt" | quote}}
|
|
54
|
-
data={ {{subsetdir | joinpaths: "estimates.txt" | datatable: sep="\t", index_col=None}} }
|
|
55
|
-
/>
|
|
56
|
-
</TabContent>
|
|
57
|
-
</svelte:fragment>
|
|
58
|
-
</Tabs>
|
|
59
|
-
|
|
60
|
-
<h{{h+1}}>Hydrophobicity Distribution</h{{h+1}}>
|
|
61
|
-
<Image src={{subsetdir | joinpaths: "distribution.png" | quote}} />
|
|
62
|
-
|
|
63
|
-
{% endfor %}
|
|
64
|
-
|
|
24
|
+
{%- macro report_job(job, h=1) -%}
|
|
25
|
+
{{ job | render_job: h=h }}
|
|
65
26
|
{%- endmacro -%}
|
|
66
27
|
|
|
67
28
|
{%- macro head_job(job) -%}
|
|
@@ -69,11 +30,3 @@
|
|
|
69
30
|
{%- endmacro -%}
|
|
70
31
|
|
|
71
32
|
{{ report_jobs(jobs, head_job, report_job) }}
|
|
72
|
-
|
|
73
|
-
<style>
|
|
74
|
-
:global(.ccs-li) {
|
|
75
|
-
/* default will have messy bullet points */
|
|
76
|
-
list-style-type: square;
|
|
77
|
-
position: unset !important;
|
|
78
|
-
}
|
|
79
|
-
</style>
|