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.

Files changed (62) hide show
  1. biopipen/__init__.py +1 -1
  2. biopipen/core/filters.py +142 -0
  3. biopipen/ns/scrna.py +19 -1
  4. biopipen/ns/tcr.py +30 -10
  5. biopipen/reports/delim/SampleInfo.svelte +2 -22
  6. biopipen/reports/scrna/CellsDistribution.svelte +4 -39
  7. biopipen/reports/scrna/MarkersFinder.svelte +6 -126
  8. biopipen/reports/scrna/MetaMarkers.svelte +3 -75
  9. biopipen/reports/scrna/RadarPlots.svelte +4 -20
  10. biopipen/reports/scrna/ScFGSEA.svelte +4 -23
  11. biopipen/reports/scrna/SeuratClusterStats.svelte +3 -69
  12. biopipen/reports/scrna/SeuratPreparing.svelte +3 -26
  13. biopipen/reports/scrna/TopExpressingGenes.svelte +3 -41
  14. biopipen/reports/scrna_metabolic_landscape/MetabolicFeatures.svelte +17 -16
  15. biopipen/reports/scrna_metabolic_landscape/MetabolicFeaturesIntraSubset.svelte +13 -16
  16. biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayActivity.svelte +44 -52
  17. biopipen/reports/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.svelte +2 -8
  18. biopipen/reports/tcr/CDR3AAPhyschem.svelte +18 -65
  19. biopipen/reports/tcr/CloneResidency.svelte +3 -93
  20. biopipen/reports/tcr/Immunarch.svelte +4 -168
  21. biopipen/reports/tcr/TCRClusterStats.svelte +3 -45
  22. biopipen/reports/tcr/TESSA.svelte +11 -28
  23. biopipen/scripts/delim/SampleInfo.R +41 -7
  24. biopipen/scripts/scrna/CellsDistribution.R +127 -16
  25. biopipen/scripts/scrna/MarkersFinder.R +245 -100
  26. biopipen/scripts/scrna/MetaMarkers.R +163 -82
  27. biopipen/scripts/scrna/RadarPlots.R +163 -110
  28. biopipen/scripts/scrna/ScFGSEA.R +51 -11
  29. biopipen/scripts/scrna/SeuratClusterStats-dimplots.R +26 -13
  30. biopipen/scripts/scrna/SeuratClusterStats-features.R +58 -53
  31. biopipen/scripts/scrna/SeuratClusterStats-stats.R +39 -21
  32. biopipen/scripts/scrna/SeuratClusterStats.R +4 -2
  33. biopipen/scripts/scrna/SeuratClustering.R +73 -26
  34. biopipen/scripts/scrna/SeuratMetadataMutater.R +13 -1
  35. biopipen/scripts/scrna/SeuratPreparing.R +93 -19
  36. biopipen/scripts/scrna/TopExpressingGenes.R +100 -18
  37. biopipen/scripts/scrna_metabolic_landscape/MetabolicFeatures.R +21 -8
  38. biopipen/scripts/scrna_metabolic_landscape/MetabolicFeaturesIntraSubset.R +25 -3
  39. biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayActivity.R +1 -0
  40. biopipen/scripts/scrna_metabolic_landscape/MetabolicPathwayHeterogeneity.R +14 -3
  41. biopipen/scripts/tcr/Attach2Seurat.R +2 -1
  42. biopipen/scripts/tcr/CDR3AAPhyschem.R +123 -10
  43. biopipen/scripts/tcr/CloneResidency.R +114 -34
  44. biopipen/scripts/tcr/Immunarch-basic.R +18 -4
  45. biopipen/scripts/tcr/Immunarch-clonality.R +14 -0
  46. biopipen/scripts/tcr/Immunarch-diversity.R +123 -18
  47. biopipen/scripts/tcr/Immunarch-geneusage.R +23 -1
  48. biopipen/scripts/tcr/Immunarch-kmer.R +45 -3
  49. biopipen/scripts/tcr/Immunarch-overlap.R +62 -0
  50. biopipen/scripts/tcr/Immunarch-spectratyping.R +18 -2
  51. biopipen/scripts/tcr/Immunarch-tracking.R +24 -1
  52. biopipen/scripts/tcr/Immunarch-vjjunc.R +17 -2
  53. biopipen/scripts/tcr/Immunarch.R +7 -0
  54. biopipen/scripts/tcr/ImmunarchLoading.R +22 -23
  55. biopipen/scripts/tcr/TCRClusterStats.R +124 -11
  56. biopipen/scripts/tcr/TCRClustering.R +8 -9
  57. biopipen/scripts/tcr/TESSA.R +66 -41
  58. biopipen/utils/misc.R +96 -1
  59. {biopipen-0.21.2.dist-info → biopipen-0.22.1.dist-info}/METADATA +1 -1
  60. {biopipen-0.21.2.dist-info → biopipen-0.22.1.dist-info}/RECORD +62 -62
  61. {biopipen-0.21.2.dist-info → biopipen-0.22.1.dist-info}/WHEEL +0 -0
  62. {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
- {%- set section_file = job.out.outdir | joinpaths: "sections.toml" -%}
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
- {%- set secdirs = job.out.outdir | glob: "*" -%}
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
- {%- set stats_reports_file = job.out.outdir | joinpaths: "stats", "report_toc.json" -%}
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, table_of_images -%}
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
- <h{{h}}>Applied filters</h{{h}}>
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: "{", "&#123"
16
- | replace: "}", "&#125"
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, InlineNotification } from "$ccs";
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
- {%- set secdirs = job.out.outdir | glob: "*" -%}
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
- {{ fgsea_report_script() }}
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
- {%- for ssdir in job.out.outdir | glob: "*" -%}
10
- {%- if basename(ssdir) == "ALL" -%}
11
- {%- set h = 1 -%}
12
- {%- else -%}
13
- <h{{h}}>{{ ssdir | stem }}</h{{h}}>
14
- {%- endif -%}
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
- {% for cldir in ssdir | glob: '*' %}
17
- <h{{h+1}}>{{ cldir | basename }}</h{{h+1}}>
18
- {% if envs.fgsea %}
19
- {{ fgsea_report(cldir, h+2, envs, envs.top) }}
20
- {% else %}
21
- {{ gsea_report(cldir, h+2, envs, envs.top) }}
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
- {% for groupdir in job.out.outdir | glob: "*" %}
10
- <h{{h}}>{{groupdir | basename}}</h{{h}}>
11
- {%- set dsdirs = groupdir | glob: "*" -%}
12
- {% for dsdir in groupdir | glob: "*" %}
13
- <h{{h+1}}>{{ dsdir | basename }}</h{{h+1}}>
14
- {% if envs.fgsea %}
15
- {% if dsdir | joinpaths: "fgsea.txt" | isfile %}
16
- {{ fgsea_report(dsdir, h+2, envs, envs.top) }}
17
- {% else %}
18
- <p>Not enough events.</p>
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
- {% endfor %}
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
- <div class="markdown-wrap">
10
- <Markdown>
10
+ <Descr>
11
+ Metabolic landscape of single cells in the tumor microenvironment.
12
+ </Descr>
11
13
 
12
- Metabolic landscape of single cells in the tumor microenvironment.
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
- ## Reference
18
- - [Xiao, Zhengtao, Ziwei Dai, and Jason W. Locasale. "Metabolic landscape of the tumor microenvironment at single cell resolution." Nature communications 10.1 (2019): 1-12.](https://www.nature.com/articles/s41467-019-11738-0)
19
- - [Original pipeline](https://github.com/LocasaleLab/Single-Cell-Metabolic-Landscape)
20
-
21
- ## Analyses with this pipeline
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
- {%- for ssdir in job.out.outdir | glob: "*" -%}
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
- {%- macro report_job(job, h=1) -%}
9
-
10
- <h{{h}}>Summary</h{{h}}>
11
- <Tile>
12
- The idea is to perform a regression between two groups of cells
13
- (e.g. Treg vs Tconv) at different length of CDR3 AA sequences.
14
- The regression will be performed for each physicochemical feature of the
15
- AA (hydrophobicity, volume and isolectric point).
16
- </Tile>
17
-
18
- <h{{h+1}}>Reference</h{{h+1}}>
19
- <UnorderedList style="padding-left: 1rem">
20
- <ListItem class="ccs-li"><Link href="https://www.nature.com/articles/ni.3491" target="_blank">https://www.nature.com/articles/ni.3491</Link></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. &amp; 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 &amp; 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. &amp; 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 &amp; 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
- <h{{h}}>Available Cells</h{{h}}>
28
- <DataTable
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>