├── .github
└── ISSUE_TEMPLATE
│ ├── analysis.md
│ ├── experiment.md
│ ├── experiment_cloning.md
│ ├── idea.md
│ └── literature.md
├── LICENSE
├── README.md
├── analysis
└── kchen
│ ├── barcodeseq
│ └── 117_hel2_syh1_mrna_grna
│ │ ├── annotations
│ │ └── sample_annotations.csv
│ │ ├── figures
│ │ ├── fig4_destab_diaa_in_wt.pdf
│ │ ├── fig4_wt_hel2_diaa_corr.pdf
│ │ ├── fig4_wt_syh1_diaa_corr.pdf
│ │ ├── sfig4a_cdf_reads_per_barcode.pdf
│ │ ├── sfig4a_cdf_reads_per_insert.pdf
│ │ ├── sfig4c_cdf_barcodes_per_insert.pdf
│ │ ├── sfig4e_wt_gc3_lfc_corr.pdf
│ │ └── sfig4f_gc_lfc_corr.pdf
│ │ └── scripts
│ │ ├── cluster.yaml
│ │ ├── plot_hel2_syh1_dipeptide_effects.ipynb
│ │ ├── plot_supp_aln_qc.ipynb
│ │ ├── run_analysis.smk
│ │ └── submit_cluster.sh
│ └── qpcr
│ └── 114_exp66_library_prep
│ ├── annotations
│ ├── sample_annotations_r1.csv
│ └── sample_annotations_r2.csv
│ ├── figures
│ ├── round1_qpcr_data.jpg
│ └── round2_qpcr_curves.jpg
│ └── scripts
│ ├── analyze_r1_qpcr_data.ipynb
│ └── analyze_r2_qpcr_data.ipynb
├── experiments
├── hpark
│ └── 78_hpark_exp377_clone_cytosolic_and_mitochondrial_8xdicodon_interacting_libraries.md
└── kchen
│ ├── 113_exp65_higheff_transfo_8xdicodon_rqc-del_strains.md
│ ├── 114_exp66_library_prep_rqc_del.md
│ ├── 114_exp67_redo_library_prep_rqc_del.md
│ └── img
│ ├── 20220830_exp66_r1_qpcr.jpg
│ ├── 20220901_exp66_r2_pcr_high.jpg
│ ├── 20220902_exp66_r2_pcr_redo_2_high.jpg
│ ├── 20220924_exp66_4cyc_r2_pcr_redo.jpg
│ ├── 20220924_exp66_4cyc_r2_pcr_redo_cut.jpg
│ ├── 20220924_exp66_r2_pcr_redo.jpg
│ ├── 20220924_exp66_r2_pcr_redo_cut.jpg
│ ├── 20221005_exp67_r1_qpcr_high.jpg
│ ├── 20221005_exp67_r1_qpcr_redo_high.jpg
│ ├── 20221006_exp66_p5_p7_phuflash.jpg
│ ├── 20221013_exp67_r2_tapestation.png
│ ├── IMG_9168.jpg
│ ├── IMG_9169.jpg
│ ├── IMG_9216.jpg
│ ├── IMG_9232.jpg
│ ├── IMG_9241.jpg
│ ├── IMG_9242.jpg
│ ├── IMG_9260.jpg
│ ├── IMG_9460.jpg
│ ├── exp51_exp66_tapestation.png
│ ├── exp66_exp51_round1_PCR_tapestation.png
│ └── spikein_2_5.png
├── manuscripts
├── kchen
│ └── dicodon
│ │ ├── README.md
│ │ └── maintext
│ │ ├── bibliography.json
│ │ ├── compile_pdf.sh
│ │ ├── maintext.md
│ │ ├── maintext.pdf
│ │ ├── pandoc
│ │ ├── nature.csl
│ │ ├── pandoc-metadata.yaml
│ │ ├── pandoc-svg.py
│ │ └── template.tex
│ │ └── svg
│ │ ├── fig1.svg
│ │ ├── fig2.svg
│ │ ├── fig3.svg
│ │ ├── fig4.svg
│ │ ├── fig5.svg
│ │ ├── fig6.svg
│ │ ├── graphical_abstract.svg
│ │ ├── supp_fig1.pdf
│ │ ├── supp_fig1.svg
│ │ ├── supp_fig2.pdf
│ │ ├── supp_fig2.svg
│ │ ├── supp_fig3.pdf
│ │ ├── supp_fig3.svg
│ │ ├── supp_fig4.pdf
│ │ ├── supp_fig4.svg
│ │ ├── supp_fig5.pdf
│ │ ├── supp_fig5.svg
│ │ ├── supp_fig6.pdf
│ │ └── supp_fig6.svg
└── maria
│ └── github_workflow
│ ├── bibliography.json
│ ├── compile_pdf.sh
│ ├── maintext.md
│ ├── maintext.pdf
│ └── svg
│ ├── fig1_structure.png
│ ├── fig1_structure.svg
│ ├── fig2_workflow.png
│ ├── fig2_workflow.svg
│ ├── fig3_person_vs_projects.png
│ ├── fig3_person_vs_projects.svg
│ ├── fig4_issues.png
│ ├── fig4_issues.svg
│ ├── fig5_folder_structure.png
│ ├── fig5_folder_structure.svg
│ ├── fig6_containers.png
│ ├── fig6_containers.svg
│ ├── orcid.logo.icon.png
│ └── orcid.logo.icon.svg
└── presentations
└── kchen
└── 20241214_thesis_defense
├── kchen-white.css
├── notes.md
├── presentation.md
└── svg
├── 0_title.svg
├── 10_integrating_library.svg
├── 11a_destabilized_dicodons.svg
├── 11b_aggregate_codon_effects.svg
├── 11c_aggregate_codon_effects.svg
├── 11d_aggregate_codon_effects.svg
├── 12b_destabilized_dipeptides.svg
├── 12c_destabilized_dipeptides.svg
├── 12d_destabilized_dipeptides.svg
├── 13a_conclusions_so_far.svg
├── 13b_hel2_syh1.svg
├── 13c_hel2_syh1.svg
├── 13d_hel2_syh1.svg
├── 13e_hel2_syh1.svg
├── 14a_hel2_syh1.svg
├── 14b_hel2_syh1.svg
├── 14c_hel2_syh1.svg
├── 14d_hel2_syh1.svg
├── 14e_hel2_syh1.svg
├── 14f_fk_flow.svg
├── 15c_conclusions.svg
├── 15d_conclusions.svg
├── 15e_conclusions.svg
├── 16a_dms_schematic.svg
├── 16b_dms_schematic.svg
├── 16d_dms_schematic.svg
├── 16e_dms_schematic.svg
├── 16f_dms_schematic.svg
├── 16g_dms_schematic.svg
├── 17_dms_nmd.svg
├── 17b_dms_nmd.svg
├── 17c_dms_nmd.svg
├── 18_dms_posbulky.svg
├── 18b_dms_posbulky.svg
├── 18c_dms_posbulky.svg
├── 18d_dms_posbulky.svg
├── 18e_dms_posbulky.svg
├── 18f_conclusions.svg
├── 19_sdd1.svg
├── 19b_conclusions.svg
├── 1_central_dogma.svg
├── 21a_endo_screen.svg
├── 21b_endo_screen.svg
├── 21c_endo_screen.svg
├── 22_conclusions.svg
├── 2_translation_and_decay_important.svg
├── 3_simple_translation.svg
├── 4_canonical_translation_decay_factor_binding.svg
├── 5_cds_more_than_protein_sequence.svg
├── 6_cds_ribosome_collision.svg
├── 7_cds_ribosome_collision_rqc.svg
├── 8_cds_ribosome_collision_rqc.svg
├── 8b_cds_ribosome_collision_rqc.svg
├── 9_rqc_sequences.svg
├── backup_conclusions.svg
├── backup_conclusions2.svg
├── backup_conclusions3.svg
├── backup_conclusions_a.svg
├── backup_conclusions_so_far.svg
├── backup_conclusions_syh1_.svg
└── thanks.svg
/.github/ISSUE_TEMPLATE/analysis.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Analysis
3 | about: Use this issue to start an analysis
4 | title: ''
5 | labels: analysis, todo
6 | assignees: rasi
7 |
8 | ---
9 |
10 | Estimated Start: YYYY-MM-DD
11 |
12 | Estimated End: YYYY-MM-DD
13 |
14 |
15 |
16 | Instructions
17 |
18 |
19 | - Finish `Background` and `Strategy` below before you start an analysis.
20 | - Provide an estimated start date and end date above. Usually, the start wil be when you open this issue and end date will be when you expect to close this issue. You can revise these dates if necessary.
21 | - Keep revising and adding to this top comment area so that it captures all critical points about this issue.
22 | - Use comments below to discuss any changes or points that are unclear.
23 | - Assign `Projects` and `Assignees` on the side as appropriate so that it shows up correctly on the `Experiments` Projects page.
24 | - Assign an existing or new label (for eg. `todo` → `ongoing`).
25 | - Delete all instruction placeholders below as you are writing.
26 | - Write `Brief Conclusions` after you finish the analysis before closing the issue.
27 | - Go through the Checklist below before closing the issue.
28 |
29 |
30 |
31 |
32 |
33 | Checklist before closing issue
34 |
35 |
36 | - [ ] Have you committed all code to https://github.com/rasilab/lab_analysis_code/?
37 | - [ ] Are all key results from your analyses shown below?
38 | - [ ] Correct the assignee, change the label from `ongoing` to `successful`,`abandoned`,`paused`
39 | - [ ] Remove from your Project Board and close this issue.
40 |
41 |
42 |
43 | ### Background
44 |
45 | Describe what let you to do this analysis. Your description should be understandable without reading further background. However link to issues containing previous experiments, analyses and external citations that will help someone who wants to dig into the details.
46 |
47 | ### Solution
48 |
49 | Propose in a few lines how you are trying to address the problem or question you describe in the background.
50 |
51 | ### Results
52 |
53 | Provide a link to the analysis code and upload the figures and tables from your analysis.
54 |
55 | ### Brief conclusion
56 |
57 | Describe the conclusions here after performing the analysis. Provide links to follow up issues containing experiments or analyses. Close the issue after reaching consensus with everyone who was involved in the planning and execution of this experiment.
58 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/experiment.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Experiment
3 | about: Use this issue to start an experiment
4 | title: ''
5 | labels: experiment, todo
6 | assignees: rasi
7 |
8 | ---
9 |
10 | Estimated Start: YYYY-MM-DD
11 |
12 | Estimated End: YYYY-MM-DD
13 |
14 |
15 |
16 | Instructions
17 |
18 |
19 | - Finish `Background` and `Strategy` below before you start an experiment.
20 | - Provide an estimated start date and end date above. Usually, the start wil be when you open this issue and end date will be when you expect to close this issue. You can revise these dates if necessary.
21 | - Keep revising and adding to this top comment area so that it captures all critical points about this issue.
22 | - Use comments below to discuss any changes or points that are unclear.
23 | - Assign `Projects` and `Assignees` on the side as appropriate so that it shows up correctly on the `Experiments` Projects page.
24 | - Assign an existing or new label so that you can search for this experiment in the future.
25 | - Delete all instruction placeholders below as you are writing.
26 | - Write `Brief Conclusions` after you finish the experiment before closing the issue.
27 | - Go through the Checklist below before closing the issue.
28 |
29 |
30 |
31 |
32 |
33 | Checklist before closing issue
34 |
35 |
36 | - [ ] Are all plasmids, oligos, and cell lines in their correct location?
37 | - [ ] Is the plasmid / cell line entered into our lab database?
38 | - [ ] Is the plasmid map given appropriate name and moved to the `lab_database` folder on Snapgene?
39 | - [ ] Is the plasmid map pushed to https://github.com/rasilab/snapgene_maps/?
40 | - [ ] Is the lab notebook link up-to-date without any broken links to images?
41 | - [ ] Are there any intermediate plates or reagents that need to be disposed off?
42 | - [ ] Correct the assignee, change the label from `ongoing` to `successful`,`abandoned`,`paused`
43 | - [ ] Remove from your Project Board and close this issue.
44 |
45 |
46 |
47 | ### Background
48 |
49 | Describe what let you to do this experiment. Your description should be understandable without reading further background. However link to issues containing previous experiments, analyses and external citations that will help someone who wants to dig into the details.
50 | Propose in a few lines how you are trying to address the problem or question you describe in the background.
51 |
52 | ### Strategy
53 |
54 | Outline the experimental strategy in plain and understandable full sentences.
55 | You can link to detailed planning notes in the Markdown document linked below that lists materials that need to be purchased and the detailed execution steps for this experiment.
56 |
57 | ### Experiment Links
58 |
59 | Provide a link to the Markdown document that you pushed to the experiments/YOUR_USERNAME folder of this repository that is named as `YYYY-MM-DD_ExpNN_title-of-experiment.md`. Give the link text as `ExpNN title of experiment`. Check that this link works.
60 |
61 | ### Brief conclusion
62 |
63 | Describe the conclusions here after performing the experiment. Provide links to follow up issues containing experiments or analyses. Close the issue after reaching consensus with everyone who was involved in the planning and execution of this experiment.
64 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/experiment_cloning.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Cloning experiment
3 | about: Use this issue to start a cloning experiment
4 | title: ''
5 | labels: experiment, todo
6 | assignees: rasi
7 |
8 | ---
9 |
10 | Estimated Start: YYYY-MM-DD
11 |
12 | Estimated End: YYYY-MM-DD
13 |
14 |
15 |
16 | Instructions
17 |
18 |
19 | - Finish `Background` and `Strategy` below before you start an experiment.
20 | - Provide an estimated start date and end date above. Usually, the start wil be when you open this issue and end date will be when you expect to close this issue. You can revise these dates if necessary.
21 | - Keep revising and adding to this top comment area so that it captures all critical points about this issue.
22 | - Use comments below to discuss any changes or points that are unclear.
23 | - Assign `Projects` and `Assignees` on the side as appropriate so that it shows up correctly on the `Experiments` Projects page.
24 | - Assign an existing or new label so that you can search for this experiment in the future.
25 | - Delete all instruction placeholders below as you are writing.
26 | - Write `Brief Conclusions` after you finish the experiment before closing the issue.
27 | - Go through the Checklist below before closing the issue.
28 |
29 |
30 |
31 |
32 |
33 | Checklist before closing issue
34 |
35 |
36 | - [ ] Are all plasmids, oligos, and cell lines in their correct location?
37 | - [ ] Is the plasmid / cell line entered into our lab database?
38 | - [ ] Is the plasmid map given appropriate name and moved to the `lab_database` folder on Snapgene?
39 | - [ ] Is the plasmid map pushed to https://github.com/rasilab/snapgene_maps/?
40 | - [ ] Is the lab notebook link up-to-date without any broken links to images?
41 | - [ ] Are there any intermediate plates or reagents that need to be disposed off?
42 | - [ ] Correct the assignee, change the label from `ongoing` to `successful`,`abandoned`,`paused`
43 | - [ ] Remove from your Project Board and close this issue.
44 |
45 |
46 |
47 | ### Background
48 |
49 | Describe what let you to do this experiment. Your description should be understandable without reading further background. However link to issues containing previous experiments, analyses and external citations that will help someone who wants to dig into the details.
50 | Propose in a few lines how you are trying to address the problem or question you describe in the background.
51 |
52 | ### Strategy
53 |
54 | Outline the experimental strategy by filling the template below.
55 | You can link to detailed planning notes in the Markdown document linked below that lists materials that need to be purchased and the detailed execution steps for this experiment.
56 |
57 | **Backbone**:
58 |
59 |
60 | **Backbone digestion enzymes**:
61 |
62 | -
63 | -
64 |
65 | **Expected fragment size from backbone digestion**:
66 |
67 | -
68 | -
69 |
70 | **PCRs**:
71 |
72 |
73 | | label | name | template | fwd primer | rev primer | length | Tm | DpnI treatment |
74 | | :---- | :--- | :------- | :--------- | :--------- | :----- | :--- | :------------- |
75 | | P1 | xxxx | pASnnn | oASnn | oASnn | nn bp | nnC | yes/no |
76 |
77 | **Gibson**:
78 |
79 |
80 | | backbone | insert 1 | insert 2 | final size |
81 | | :------- | :------- | :------- | :--------- |
82 | | B1 | P1 | P2 | nnn bp |
83 |
84 | **Resistance marker**: Amp / Kan / Chl
85 |
86 |
87 | **Plasmid map of final construct**:
88 |
89 |
90 | **Cloning check enzymes**:
91 |
92 |
93 | **Map of restricted construct and parent vector**:
94 |
95 |
96 | **Sanger sequencing primers**:
97 |
98 | - oASnn
99 | - oASnn
100 |
101 |
102 | ### Experiment Links
103 |
104 | Provide a link to the Markdown document that you pushed to the experiments/YOUR_USERNAME folder of this repository that is named as `YYYY-MM-DD_ExpNN_title-of-experiment.md`. Give the link text as `ExpNN title of experiment`. Check that this link works.
105 |
106 | ### Brief conclusion
107 |
108 | Describe the conclusions here after performing the experiment. Provide links to follow up issues containing experiments or analyses. Close the issue after reaching consensus with everyone who was involved in the planning and execution of this experiment.
109 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/idea.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Idea
3 | about: 'Use this issue to develop and discuss a new idea '
4 | title: ''
5 | labels: idea, todo
6 | assignees: rasi
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/literature.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Literature
3 | about: Use this issue to collect notes on a topic
4 | title: ''
5 | labels: literature, todo
6 | assignees: rasi
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 Subramaniam Lab
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # GitHub is an effective platform for collaborative and reproducible laboratory research
2 |
3 | ## Getting Started
4 | - This repository is an example to demonstrate the organizational principles discussed in [Chen et al., 2024](https://arxiv.org/abs/2408.09344).
5 | - In each project's repository, open an Issue to discuss ideas, experiments, analyses, or literature.
6 | - Create Issue templates (e.g. for Literature, Ideas, Experiments, Analyses) to streamline this process.
7 |
8 | ## Repository Organization
9 | - Experiments, Analyses, Grants, Presentations, and Manuscripts go into separate folders.
10 | - Each project contributor creates a sub-folder within the above folders to store their work.
11 | - Do not store data files in the repository. Instead, create symbolic links from where the data is stored (e.g. server or cloud-based storage) so it can be easily accessed in the future.
12 | - The described structure allows all users to be able push to the ```main``` branch without introducing merge conflicts, so we do not generally find added benefit in using branches.
13 |
14 | ### Experiments
15 |
16 | ```
17 | experiments
18 | |--LABMEMBER_A
19 | |--ISSUENUMBER_1_lab_notebook_ngs_short_desc.md
20 | |--LABMEMBER_B
21 | |--ISSUENUMBER_2_lab_notebook_flow_short_desc.md
22 | ```
23 |
24 | ### Analysis
25 |
26 | ```
27 | analysis
28 | |--LABMEMBER_A
29 | |--ANALYSIS_TYPE (eg. NGS)
30 | |--ISSUENUMBER_1_short_desc
31 | |--data
32 | |--data_type_1 (eg. genome)
33 | |--chromosome.fasta
34 | |--data_type_2 (eg. sra)
35 | |--SRRnnnnnn.fastq
36 | |--scripts
37 | |--analyze_in_R_python.ipynb
38 | |--snakemake_workflow.smk
39 | |--download_data_from_remote_folder.sh
40 | |--annotations
41 | |--sample_metadata.csv
42 | |--tables
43 | |--processed_summary_table.csv
44 | |--figures
45 | |--summary_fig.png
46 | |--LABMEMBER_B
47 | |--ANALYSIS_TYPE (eg. flow)
48 | |--ISSUENUMBER_2_short_desc
49 | |--data
50 | |--data_type_1 (eg. facs)
51 | |--sample_1.fcs
52 | |--sample_2.fcs
53 | |--scripts
54 | |--analyze_in_R_python.ipynb
55 | |--annotations
56 | |--sample_metadata.csv
57 | |--tables
58 | |--processed_summary_table.csv
59 | |--figures
60 | |--summary_fig.png
61 | ```
62 |
63 | ### Manuscripts
64 |
65 | ```
66 | manuscripts
67 | |--LABMEMBER_A
68 | |--manuscript_short_name
69 | |--maintext
70 | |--maintext.md
71 | |--bibliography.yaml
72 | |--latex_template.tex
73 | |--bibliography_style.csl
74 | |--svg
75 | |--figure_1.svg
76 | |--figure_2.svg
77 | |--cover_letter
78 | |--cover_letter.md
79 | |--latex_template.tex
80 | ```
81 |
82 |
83 | ### Grants & Fellowships
84 |
85 | ```
86 | grants
87 | |--LABMEMBER_A
88 | |--YYYY_grant_short_name
89 | |--research_proposal.md
90 | |--bibliography.yaml
91 | |--latex_template.tex
92 | |--bibliography_style.csl
93 | |--svg
94 | |--figure_1.svg
95 | |--figure_2.svg
96 | |--project_abstract.md
97 | |--budget_justification.md
98 | ```
99 |
100 | ### Presentations
101 |
102 | ```
103 | presentations
104 | |--LABMEMBER_A
105 | |--USER
106 | |--YYYYMMDD_presentation_short_desc
107 | |--presentation.md
108 | |--html_style.css
109 | |--svg
110 | |--figure-1.svg
111 | |--figure-2.svg
112 | ```
113 |
114 | ## Software Installation
115 |
116 | - Install [Docker](https://docs.docker.com/engine/install/) and [VSCode](https://code.visualstudio.com/download).
117 | - In VSCode, install the [Remote Tunnels](https://code.visualstudio.com/docs/remote/tunnels) extension.
118 | - Use Docker to pull the containers necessary for your analyses. Commonly used containers from our registry include:
119 | - [R](https://github.com/rasilab/r/pkgs/container/r)
120 | - [Python](https://github.com/rasilab/python/pkgs/container/python)
121 | - [R and Python](https://github.com/rasilab/r_python/pkgs/container/r_python)
122 | - [Pandoc-latex](https://github.com/rasilab/pandoc-latex/pkgs/container/pandoc-latex)
123 | - To start a container from the command line on your computer, do:
124 |
125 | ```bash
126 | docker pull ghcr.io/rasilab/pandoc-latex:1.3.0
127 | docker run -i -d --name pandoc-latex -v $HOME:$HOME ghcr.io/rasilab/pandoc-latex:1.3.0
128 | ```
129 |
130 | - You can use the above container as a standalone environment to run any code from the command line. For example, to compile [manuscripts/kchen/dicodon/maintext/maintext.md](https://github.com/rasilab/github_demo/tree/main/manuscripts/kchen/dicodon/maintext/maintext.md), run:
131 |
132 | ```bash
133 | docker exec -w $(pwd) pandoc-latex:1.3.0 pandoc maintext.md --filter=pandoc-svg.py --citeproc --template=template.tex --metadata-file=pandoc-metadata.yaml --pdf-engine=xelatex -o maintext.pdf
134 | ```
135 |
136 | - You can also use any of the above containers from within VSCode. For example, we commonly use the [R and Python](https://github.com/rasilab/r_python/pkgs/container/r_python) container for interactive analyses (e.g. Jupyter notebooks) in VSCode from our institution's cluster. See instructions [here](https://github.com/rasilab/r_python/pkgs/container/r_python#how-to-use-the-singularity-container-for-interactive-data-analysis-in-r-and-python) for how to set this up.
137 |
138 | ## Presentations
139 |
140 | - Write your presentations as markdown files following the template [here](https://github.com/rasilab/github_demo/blob/main/presentations/kchen/20241214_thesis_defense/presentation.md).
141 | - Use [vscode-reveal](https://marketplace.visualstudio.com/items?itemName=evilz.vscode-reveal) extension to open or export the markdown file as a reveal.js presentation.
142 |
--------------------------------------------------------------------------------
/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/annotations/sample_annotations.csv:
--------------------------------------------------------------------------------
1 | # optional comment for each column in this row. All commented out rows are preceded by # which can be ignored by dplyr and pandas.,,,,,,,,,# 1-based indexing,,,,,,
2 | owner,sample_type,sample_name,plasmid,library_type,illumina_sample_id,sample_id,srr,barcode_read,barcode_start,barcode_length,linkage_ref,r1_file,r2_file,r3_file,i1_file
3 | kc,dicodon_yeast,hel2_mrna,pHPSC1142,mrna,67lib1-2,67lib1,SRR24831409,1,1,24,yeast_cyto_linkage,kc_67lib1-2_S1_R1_001,kc_67lib1-2_S1_R2_001,,
4 | kc,dicodon_yeast,hel2_gdna,pHPSC1142,grna,67lib3-2,67lib3,SRR24831408,1,1,24,yeast_cyto_linkage,kc_67lib3-2_S3_R1_001,kc_67lib3-2_S3_R2_001,,
5 | kc,dicodon_yeast,hel2_mrna_reseq,pHPSC1142,mrna,67lib1-2,67lib1,SRR24725021,1,7,24,yeast_cyto_linkage,kc_67lib1_2_S6_R1_001,kc_67lib1_2_S6_R2_001,kc_67lib1_2_S6_R3_001,kc_67lib1_2_S6_I1_001
6 | kc,dicodon_yeast,hel2_gdna_reseq,pHPSC1142,grna,67lib3-2,67lib3,SRR24725019,1,7,24,yeast_cyto_linkage,kc_67lib3_2_S7_R1_001,kc_67lib3_2_S7_R2_001,kc_67lib3_2_S7_R3_001,kc_67lib3_2_S7_I1_001
7 | kc,dicodon_yeast,syh1_mrna,pHPSC1142,mrna,67lib2-2,67lib2,SRR24725020,1,1,24,yeast_cyto_linkage,kc_67lib2-2_S2_R1_001,kc_67lib2-2_S2_R2_001,,
8 | kc,dicodon_yeast,syh1_gdna,pHPSC1142,grna,67lib4-2,67lib4,SRR24725018,1,1,24,yeast_cyto_linkage,kc_67lib4-2_S4_R1_001,kc_67lib4-2_S4_R2_001,,
--------------------------------------------------------------------------------
/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/fig4_destab_diaa_in_wt.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/fig4_destab_diaa_in_wt.pdf
--------------------------------------------------------------------------------
/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/fig4_wt_hel2_diaa_corr.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/fig4_wt_hel2_diaa_corr.pdf
--------------------------------------------------------------------------------
/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/fig4_wt_syh1_diaa_corr.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/fig4_wt_syh1_diaa_corr.pdf
--------------------------------------------------------------------------------
/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/sfig4a_cdf_reads_per_barcode.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/sfig4a_cdf_reads_per_barcode.pdf
--------------------------------------------------------------------------------
/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/sfig4a_cdf_reads_per_insert.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/sfig4a_cdf_reads_per_insert.pdf
--------------------------------------------------------------------------------
/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/sfig4c_cdf_barcodes_per_insert.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/sfig4c_cdf_barcodes_per_insert.pdf
--------------------------------------------------------------------------------
/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/sfig4e_wt_gc3_lfc_corr.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/sfig4e_wt_gc3_lfc_corr.pdf
--------------------------------------------------------------------------------
/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/sfig4f_gc_lfc_corr.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/figures/sfig4f_gc_lfc_corr.pdf
--------------------------------------------------------------------------------
/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/scripts/cluster.yaml:
--------------------------------------------------------------------------------
1 | "__default__" :
2 | "account" : "rasi"
3 | "time" : "24:00:00"
4 | "name" : "{rule}.{wildcards}"
5 | "mem" : 32
6 | "n" : 36
7 |
--------------------------------------------------------------------------------
/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/scripts/run_analysis.smk:
--------------------------------------------------------------------------------
1 | """Workflow for counting barcodes
2 |
3 | :Author: Arvind Rasi Subramaniam
4 | :Date: 10 Jan 2023
5 | :Edited: Katharine Chen
6 | :Date: 15 June 2023
7 | """
8 |
9 | # useful libraries
10 | import os
11 | import pandas as pd
12 | import re
13 | import itertools as it
14 |
15 |
16 | # configuration specific to this analysis
17 | sample_annotations = pd.read_table("../annotations/sample_annotations.csv",
18 | sep=",", comment = "#", dtype=object)
19 | #print(sample_annotations['sample_name'])
20 | sra_annotations = pd.read_table("../../../../annotations/sra_annotations.tsv")
21 |
22 |
23 | # these rules are run locally
24 | localrules: all
25 |
26 | # Rules ----------------------------------------------------------------------
27 |
28 | rule all:
29 | """List of all files we want at the end
30 | """
31 | input:
32 | raw_barcode_counts = expand('../data/raw_barcode_counts/{sample_name}.csv',
33 | sample_name=sample_annotations['sample_name']),
34 | linked_barcode_counts = expand('../data/linked_barcode_counts/{sample_name}.csv',
35 | sample_name=sample_annotations['sample_name']),
36 |
37 |
38 | def get_fastq_file_for_sample_name(wildcards):
39 | """This function gets the SRR file based on the sample_id in `sample_annotations`
40 | """
41 | srr = sample_annotations.loc[sample_annotations['sample_name'] == wildcards.sample_name, 'srr'].item()
42 | #srr = sra_annotations.loc[sra_annotations['sample_id'] == sample_id, 'srr'].item()
43 | filename = f'../../../../data/fastq/{srr}.fastq'
44 | return filename
45 |
46 | rule count:
47 | """Count each barcode
48 | """
49 | input: get_fastq_file_for_sample_name
50 | output: '../data/raw_barcode_counts/{sample_name}.csv'
51 | log: '../data/raw_barcode_counts/{sample_name}.log'
52 | params:
53 | barcode_read = lambda wildcards: sample_annotations.loc[sample_annotations['sample_name'] == wildcards.sample_name, 'barcode_read'].tolist()[0],
54 | barcode_start = lambda wildcards: sample_annotations.loc[sample_annotations['sample_name'] == wildcards.sample_name, 'barcode_start'].tolist()[0],
55 | barcode_length = lambda wildcards: sample_annotations.loc[sample_annotations['sample_name'] == wildcards.sample_name, 'barcode_length'].tolist()[0],
56 | container: 'docker://ghcr.io/rasilab/python:1.0.0'
57 | shell:
58 | """
59 | set +o pipefail
60 | export TMPDIR=$PWD
61 | awk -v OFS=, '
62 | BEGIN {{
63 | print "barcode","counts";
64 | }}
65 | NR%4 == 2 {{
66 | counts[substr(${params.barcode_read}, {params.barcode_start}, {params.barcode_length})]++
67 | }}
68 | END {{
69 | for (barcode in counts) print barcode, counts[barcode] | "sort -k2nr -t,"
70 | }}
71 | ' \
72 | {input} 1> {output} 2> {log}
73 | """
74 |
75 |
76 | rule subset_to_linked_barcodes:
77 | """Subset barcode counts to only those barcodes identified in linkage sequencing
78 | """
79 | input:
80 | barcode_count_file = '../data/raw_barcode_counts/{sample_name}.csv',
81 | barcode_linkage_file = '../../8xdicodon_linkage/data/filtered_barcodes/yeast_cyto_linkage.csv'
82 | output:
83 | linked_barcode_count_file = '../data/linked_barcode_counts/{sample_name}.csv'
84 | params:
85 | # column containing barcode sequence in linkage file
86 | barcode_col = 3
87 | log: '../data/linked_barcode_counts/{sample_name}.log'
88 | container: 'docker://ghcr.io/rasilab/python:1.0.0'
89 | shell:
90 | """
91 | awk -F, -v OFS=, '
92 | NR == 1 {{
93 | print "barcode_count",$0
94 | }};
95 | # read in linkage file
96 | NR == FNR && NR > 1 {{
97 | linkages[${params.barcode_col}] = $0;
98 | next
99 | }};
100 | # write barcode count along with insert-barcode linkage data
101 | {{
102 | if ($1 in linkages) print $2, linkages[$1]
103 | }}
104 | ' \
105 | {input.barcode_linkage_file} {input.barcode_count_file} \
106 | 1> {output.linked_barcode_count_file} 2> {log}
107 | """
--------------------------------------------------------------------------------
/analysis/kchen/barcodeseq/117_hel2_syh1_mrna_grna/scripts/submit_cluster.sh:
--------------------------------------------------------------------------------
1 | snakemake \
2 | --jobs 999 \
3 | --cluster-config cluster.yaml \
4 | --cluster "sbatch -n {cluster.n} -t {cluster.time}" \
5 | --use-conda \
6 | --use-singularity \
7 | --singularity-args "--bind /fh:/fh" \
8 | --latency-wait 60 \
9 | -p $@
10 |
--------------------------------------------------------------------------------
/analysis/kchen/qpcr/114_exp66_library_prep/annotations/sample_annotations_r1.csv:
--------------------------------------------------------------------------------
1 | Tube , cDNA input , sample , dil ,Well
2 | 1, 66cDNA1 , 66RNA1 , 1:2 , H1
3 | 2, 66cDNA2 , 66RNA1 -RT , 1:2 , G1
4 | 3, 66cDNA3 , 66RNA2 , 1:2 , F1
5 | 4, 66cDNA4 , 66RNA2 -RT , 1:2 , E1
6 | 5, 66cDNA5 , 66gRNA1 , 1:2 , D1
7 | 6, 66cDNA6 , 66gRNA1 -RT , 1:2 , C1
8 | 7, 66cDNA7 , 66gRNA2 , 1:2 , B1
9 | 8, 66cDNA8 , 66gRNA2 -RT , 1:2 , A1
10 | 9, 66cDNA1 , 66RNA1 , 1:4 , H2
11 | 10, 66cDNA2 , 66RNA1 -RT , 1:4 , G2
12 | 11, 66cDNA3 , 66RNA2 , 1:4 , F2
13 | 12, 66cDNA4 , 66RNA2 -RT , 1:4 , E2
14 | 13, 66cDNA5 , 66gRNA1 , 1:4 , D2
15 | 14, 66cDNA6 , 66gRNA1 -RT , 1:4 , C2
16 | 15, 66cDNA7 , 66gRNA2 , 1:4 , B2
17 | 16, 66cDNA8 , 66gRNA2 -RT , 1:4 , A2
18 | 17, 66cDNA1 , 66RNA1 , 1:8 , H3
19 | 18, 66cDNA2 , 66RNA1 -RT , 1:8 , G3
20 | 19, 66cDNA3 , 66RNA2 , 1:8 , F3
21 | 20, 66cDNA4 , 66RNA2 -RT , 1:8 , E3
22 | 21, 66cDNA5 , 66gRNA1 , 1:8 , D3
23 | 22, 66cDNA6 , 66gRNA1 -RT , 1:8 , C3
24 | 23, 66cDNA7 , 66gRNA2 , 1:8 , B3
25 | 24, 66cDNA8 , 66gRNA2 -RT , 1:8 , A3
26 | 25, 66cDNA1 , 66RNA1 , 1:16 , H4
27 | 26, 66cDNA2 , 66RNA1 -RT , 1:16 , G4
28 | 27, 66cDNA3 , 66RNA2 , 1:16 , F4
29 | 28, 66cDNA4 , 66RNA2 -RT , 1:16 , E4
30 | 29, 66cDNA5 , 66gRNA1 , 1:16 , D4
31 | 30, 66cDNA6 , 66gRNA1 -RT , 1:16 , C4
32 | 31, 66cDNA7 , 66gRNA2 , 1:16 , B4
33 | 32, 66cDNA8 , 66gRNA2 -RT , 1:16 , A4
34 | 33, 66cDNA1 , 66RNA1 , 1:32 , H5
35 | 34, 66cDNA2 , 66RNA1 -RT , 1:32 , G5
36 | 35, 66cDNA3 , 66RNA2 , 1:32 , F5
37 | 36, 66cDNA4 , 66RNA2 -RT , 1:32 , E5
38 | 37, 66cDNA5 , 66gRNA1 , 1:32 , D5
39 | 38, 66cDNA6 , 66gRNA1 -RT , 1:32 , C5
40 | 39, 66cDNA7 , 66gRNA2 , 1:32 , B5
41 | 40, 66cDNA8 , 66gRNA2 -RT , 1:32 , A5
42 | 41, 66cDNA1 , 66RNA1 , 1:64 , H6
43 | 42, 66cDNA2 , 66RNA1 -RT , 1:64 , G6
44 | 43, 66cDNA3 , 66RNA2 , 1:64 , F6
45 | 44, 66cDNA4 , 66RNA2 -RT , 1:64 , E6
46 | 45, 66cDNA5 , 66gRNA1 , 1:64 , D6
47 | 46, 66cDNA6 , 66gRNA1 -RT , 1:64 , C6
48 | 47, 66cDNA7 , 66gRNA2 , 1:64 , B6
49 | 48, 66cDNA8 , 66gRNA2 -RT , 1:64 , A6
50 | 49, 66cDNA1 , 66RNA1 , 1:128 , H7
51 | 50, 66cDNA2 , 66RNA1 -RT , 1:128 , G7
52 | 51, 66cDNA3 , 66RNA2 , 1:128 , F7
53 | 52, 66cDNA4 , 66RNA2 -RT , 1:128 , E7
54 | 53, 66cDNA5 , 66gRNA1 , 1:128 , D7
55 | 54, 66cDNA6 , 66gRNA1 -RT , 1:128 , C7
56 | 55, 66cDNA7 , 66gRNA2 , 1:128 , B7
57 | 56, 66cDNA8 , 66gRNA2 -RT , 1:128 , A7
58 | 57, , pHPSC1142 , 1ng/uL , H8
59 | 58, , ultrapure ,0, G8
--------------------------------------------------------------------------------
/analysis/kchen/qpcr/114_exp66_library_prep/annotations/sample_annotations_r2.csv:
--------------------------------------------------------------------------------
1 | Tube , RT , dil ,Well
2 | 1, cDNA1 , 1:2 , A1
3 | 2, cDNA3 , 1:2 , A2
4 | 3, cDNA5 , 1:2 , A3
5 | 4, cDNA7 , 1:2 , A4
6 | 5, cDNA1 , 1:4 , A5
7 | 6, cDNA3 , 1:4 , A6
8 | 7, cDNA5 , 1:4 , A7
9 | 8, cDNA7 , 1:4 , A8
10 | 9, cDNA1 , 1:8 , B1
11 | 10, cDNA3 , 1:8 , B2
12 | 11, cDNA5 , 1:8 , B3
13 | 12, cDNA7 , 1:8 , B4
14 | 13, cDNA1 , 1:16 , B5
15 | 14, cDNA3 , 1:16 , B6
16 | 15, cDNA5 , 1:16 , B7
17 | 16, cDNA7 , 1:16 , B8
18 | 17, cDNA1 , 1:32 , C1
19 | 18, cDNA3 , 1:32 , C2
20 | 19, cDNA5 , 1:32 , C3
21 | 20, cDNA7 , 1:32 , C4
22 | 21, cDNA1 , 1:64 , C5
23 | 22, cDNA3 , 1:64 , C6
24 | 23, cDNA5 , 1:64 , C7
25 | 24, cDNA7 , 1:64 , C8
26 | 25, cDNA1 , 1:128 , D1
27 | 26, cDNA3 , 1:128 , D2
28 | 27, cDNA5 , 1:128 , D3
29 | 28, cDNA7 , 1:128 , D4
30 | 29, H2O , , D5
31 | 30, cDNA1 , 1:256 , D6
32 | 31, cDNA3 , 1:256 , D7
33 | 32, cDNA5 , 1:256 , D8
34 | 33, cDNA7 , 1:256 , E1
35 | 34, H2O , , E2
--------------------------------------------------------------------------------
/analysis/kchen/qpcr/114_exp66_library_prep/figures/round1_qpcr_data.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/analysis/kchen/qpcr/114_exp66_library_prep/figures/round1_qpcr_data.jpg
--------------------------------------------------------------------------------
/analysis/kchen/qpcr/114_exp66_library_prep/figures/round2_qpcr_curves.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/analysis/kchen/qpcr/114_exp66_library_prep/figures/round2_qpcr_curves.jpg
--------------------------------------------------------------------------------
/experiments/hpark/78_hpark_exp377_clone_cytosolic_and_mitochondrial_8xdicodon_interacting_libraries.md:
--------------------------------------------------------------------------------
1 | ---
2 | ## Title: Exp377 Clone cytosolic and mitochondrial 8x dicodon integrating libraries
3 |
4 | Date: "2021-07-22"
5 | ----
6 |
7 | # Goal
8 | Clone cytosolic and mitochondrial 8x dicodon integrating libraries #78
9 |
10 | # Issue
11 | Clone cytosolic and mitochondrial 8x dicodon integrating libraries [#78](https://github.com/rasilab/rqc_aggregation_aging/issues/78)
12 |
13 | # Background
14 | Essentially finish what Heungwon started in exp277 (correcting e265/267).
15 |
16 | # Solution
17 | Generate single-barcode yeast-integrating cytosolic/mitochondrial 8x-dicodon libraries.
18 |
19 | # Strategy
20 | ## PCR amplify the 8x dicodon region from oAS385 template with a flanking 24nt barcode and R1 homology sequence
21 |
22 | | Primer | Dir | Sequence | Tm | Desc |
23 | | ------ | --- | ------------------------------------------------------------ | --- | ------------------------------------------- |
24 | | oKC97 | F | GACGTCCCGGACTACGCG | 62 | HA into 8x dicodon |
25 | | oHP531 | R | cacgacgctcttccgatctNNBNNBNNBNNBNNBNNBNNBNNBGAACAATTCTTCACCCT | 55 | R1 + 24ntbarc + oAS385 pool into 8x dicodon |
26 |
27 | | ID | Desc | template plasmid | F primer | Tm | R primer | Tm | amplicon size |
28 | | ---- | ------------------------ | ---------------- | -------- | --- | -------- | --- | ------------- |
29 | | PCR1 | HA_8xdicodon_24ntbarc_R1 | oAS385 | oKC97 | 62 | oHP531 | 55 | 133 |
30 |
31 | ## One-piece gibson: insert amplicon into integrating Su9/PGK1 backbone
32 | - Cytosolic library:
33 |
34 | | ID | gibson piece |
35 | | ------------------- | ------------ |
36 | | PCR1 | insert |
37 | | BamHI-cut-pHPSC1120 | backbone |
38 |
39 | - Mitochondrial library:
40 |
41 | | ID | gibson piece |
42 | | ------------------- | ------------ |
43 | | PCR1 | insert |
44 | | BamHI-cut-pHPSC1131 | backbone |
45 |
46 | - high-efficiency e.coli transformation: want ~30 barcodes per insert * 6000 inserts = ~200,000 colonies minimum
47 | - scrape/miniprep the two libraries
48 |
49 |
50 | # Procedure
51 | ## Clone
52 | ### DONE [2021-07-22 Thu] Backbones
53 | 1. pHPSC1120-1 (8241 bp) and pHPHS1131-2 (8445) with BamHI
54 | 2. MM
55 |
56 | | To make MM | Volume (µl) for 20 µl reaction | 2x |
57 | | ---------------------------- | ------------------------------ | ---- |
58 | | Fast Digest FastDigest BamHI | 1.0 | 2.0 |
59 | | 10XFast Digest Green Buffer | 2.0 | 4.0 |
60 | | dd H₂O | 8.0 | 16.0 |
61 | | plasmid: | 7 µl (~2 µg) | -- |
62 |
63 | - Divide MM 2x 13 ul then add 7ul of each plasmids.
64 |
65 | 3. Digest it at 37 ℃ water bath for overnight.
66 | 4. Run the samples in 1.2 % gel at 150V for 20 minutes
67 |
68 |
69 |
70 | 5. Results:
71 |
72 |
73 | ### DONE [2021-07-26 Mon] PCR library inserts
74 |
75 | 1. Primers
76 |
77 | | Primer | Dir | Sequence | Tm | Desc |
78 | | ------ | --- | ------------------------------------------------------------ | --- | ------------------------------------------- |
79 | | oKC97 | F | GACGTCCCGGACTACGCG | 62 | HA into 8x dicodon |
80 | | oHP531 | R | cacgacgctcttccgatctNNBNNBNNBNNBNNBNNBNNBNNBGAACAATTCTTCACCCT | 55 | R1 + 24ntbarc + oAS385 pool into 8x dicodon |
81 |
82 | 2. Template
83 |
84 | | template | description |
85 | | -------- | ------------------- |
86 | | oAS385 | scprimers_oligopool |
87 |
88 | 3. Insert for double rrm KO
89 |
90 |
91 | | sample | Forward primer | Reverser primer | Template | Length | Description |
92 | | ------ | -------------- | --------------- | -------- | ------ | ------------------------ |
93 | | 377LP1 | oKC97 | oHP531 | oAS385 | 133 bp | HA_8xdicodon_24ntbarc_R1 |
94 |
95 | 4. Master mix
96 |
97 | | Reagent | Volume/rxn | 2x MM |
98 | | -------------------- | ---------- | ----- |
99 | | Phusion Flash MM | 10 ul | 20 |
100 | | oKC97 (10uM) | 1 ul | 2.0 |
101 | | oHP532 (10uM) | 1 ul | 2.0 |
102 | | 1:10 oAS385 (0.05uM) | 1 ul | 2.0 |
103 | | H2O | 7 ul | 14.0 |
104 |
105 | Divide MM into 2x 20 µl.
106 |
107 | 5. PCR condition.
108 |
109 | | Step | Temp | Time |
110 | | ---------------------- | ---- | ----------- |
111 | | Initial Denaturation | 98°C | 120 seconds |
112 | | 13 Cycles Denaturation | 98°C | 10 seconds |
113 | | 13 Cycles Annealing | 55°C | 10 seconds |
114 | | 13 Cycles | 72°C | 5 seconds |
115 | | Final Extension | 72°C | 5 minutes |
116 |
117 |
118 | - 11/14 cycles
119 | - Take out samples after 11 cycles and keep them on ice until 14 cycle ends.
120 | - Run PCR.
121 | - Run 1.2 % gel at 150V for 20 minutes:
122 | - Results: Very dimm 14 cycle band.
123 | - Note: Repeat this with 17/20 cycles.
124 | - Run 1.2 % gel at 150V for 20 minutes:
125 | - Clean 14/17/20 cycles samples with small columns and elute them in 12 ul of RN-H2O:
126 | - 377P1_14cycles: 1.4 ng/ul
127 | - 377P1_17cycles: 5.2 ng/ul
128 | - 377P1_20cycles: 8.6 ng/ul
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 | ### TODO [2021-07-29 Thu] Gibson: Large amount of DNA and clean gibson Products by using a confirmed big column
139 | 1. Backbone and inserts
140 |
141 | | sample | plasmid | enzymes | size | Conc. (ng/µl) | Gibson Volume |
142 | | ------ | ----------- | ------- | ------- | ------------- | ------------- |
143 | | 377BB1 | pHPSC1120-1 | BamHI | 8241 bp | 81 ng/ul | 10 ul |
144 | | 377BB2 | pHPHS1131-2 | BamHI | 8445 bp | 95 ng/ul | 10 ul |
145 | | 377LP1 | | | 133 bp | 5.2 ng/ul | 5 ul |
146 |
147 | 2. Gibson samples
148 |
149 | | Sample ID | BB | Insert 1 | Description | H2O | Gibson MM | Reaction V | selection |
150 | | --------- | -------------- | -------------- | -------------- | ---- | --------- | ---------- | --------- |
151 | | 377G1 | 377BB1 (10 µl) | 377LP1 (15 µl) | 2 piece Gibson | 0 µl | 30 µl | 2x 22.5 µl | Carb |
152 | | 377G2 | 377BB2 (10 µl) | 377LP1 (15 µl) | 2 piece Gibson | 0 µl | 30 µl | 2x 22.5 µl | Carb |
153 |
154 | 3. Perform Gibson for 60 minutes.
155 | 4. Cleaned sample by columns. Elute them in 20 µl of RN-H2O.
156 | - Use 10 µl of the cleand Gibson prodocts.
157 | - If the first one works then repeat this with the remianed 10 ul cleaned Gibson product.
158 | 5. Electroporation: Use the 1:4 diluted commercial NEB10-β electrocompetent cells
159 |
160 |
161 | ### DONE [2021-07-29 Thu] Electroporation by using the commercial NEB10-β electro-competent cells.
162 | 1. Gibson sample: 377G1/2 cleaned by a big zymo 3 times then elute them in 21 µl of RN-H2O.
163 | 2. Electroparation from 10 µl of cleaned Gibson products.
164 | 3. Electroporate the clean 10 µl of Gibson products into 50 µl of the commercial NEB10-β electro-competent cells (1:4 dilution) then recover it in 1000 µl of NEB10-β recovery medium.
165 | - Add 10 µl of gibson products into 50 µl of thawed electro-competent cells (1:1 diluted) then mix well by pipetting.
166 | - Run electroporation in 1.8kV: 5.6 (377G1) and 5.5 (377G2) ms.
167 | 4. Pre-warm 8x LB + Carb plates at 37 ℃.
168 | 9. Do serial dilutions in 10/1000/10000 folds in 90 µl of LB in each tube.
169 | 10. So total plates are 2 for 1:1 and 2x 3 for the serial dilution (10/1000/10000 fold).
170 | 11. Incubate the plates ay 37 ℃ for overnight.
171 | 12. [2021-07-30 Fri] Results:
172 |
173 | | Sample ID | BB | Insert 1 | Description | selection | Estimated 1:1 number of colonies |
174 | | --------- | -------------- | -------------- | -------------- | --------- | -------------------------------- |
175 | | 377G1 | 377BB1 (10 µl) | 377LP1 (15 µl) | 2 piece Gibson | Carb | ~5x 10^5 |
176 | | 377G1 | 377BB2 (10 µl) | 377LP1 (15 µl) | 2 piece Gibson | Carb | ~5x 10^5 |
177 |
178 |
179 | ### DONE [2021-07-30 Fri] Gycerol stocks and plasmid extraction
180 | 1. Resuspend whole colonies from 1:1 plate in 10ml of LB.
181 | 2. Make 2x 1ml (300 ul of 50% glycerol and 700ul of cells) of glycerol stocks.
182 | 3. Using 2 midi columns, extract plamids
183 | 4. Elute them in 2x 500 µl.
184 | 6. Label
185 |
186 | | sample | plasmid | E.coli | description | parent | est colonies |
187 | | ------ | --------- | ---------- | ---------------------------------------- | ----------- | ------------ |
188 | | 377G1 | pHPSC1142 | ecHPHS1142 | pGPD_PGK1_8xdicodon_24ntbarc_R1_eYFP | pHPSC1120-1 | ~5x 10^5 |
189 | | 377G2 | pHPSC1143 | ecHPHS1143 | pGPD_Su9_PGK1_8xdicodon_24ntbarc_R1_eYFP | pHPSC1131-2 | ~5x 10^5 |
190 |
191 | 7. Note: Concentrations are ~600ng/ul in ~400 ul.
192 | 8. I gave these to Katharine and she will use these plasmids for the yeast transformation.
193 |
194 |
--------------------------------------------------------------------------------
/experiments/kchen/img/20220830_exp66_r1_qpcr.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/20220830_exp66_r1_qpcr.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/20220901_exp66_r2_pcr_high.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/20220901_exp66_r2_pcr_high.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/20220902_exp66_r2_pcr_redo_2_high.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/20220902_exp66_r2_pcr_redo_2_high.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/20220924_exp66_4cyc_r2_pcr_redo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/20220924_exp66_4cyc_r2_pcr_redo.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/20220924_exp66_4cyc_r2_pcr_redo_cut.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/20220924_exp66_4cyc_r2_pcr_redo_cut.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/20220924_exp66_r2_pcr_redo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/20220924_exp66_r2_pcr_redo.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/20220924_exp66_r2_pcr_redo_cut.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/20220924_exp66_r2_pcr_redo_cut.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/20221005_exp67_r1_qpcr_high.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/20221005_exp67_r1_qpcr_high.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/20221005_exp67_r1_qpcr_redo_high.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/20221005_exp67_r1_qpcr_redo_high.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/20221006_exp66_p5_p7_phuflash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/20221006_exp66_p5_p7_phuflash.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/20221013_exp67_r2_tapestation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/20221013_exp67_r2_tapestation.png
--------------------------------------------------------------------------------
/experiments/kchen/img/IMG_9168.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/IMG_9168.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/IMG_9169.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/IMG_9169.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/IMG_9216.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/IMG_9216.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/IMG_9232.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/IMG_9232.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/IMG_9241.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/IMG_9241.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/IMG_9242.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/IMG_9242.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/IMG_9260.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/IMG_9260.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/IMG_9460.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/IMG_9460.jpg
--------------------------------------------------------------------------------
/experiments/kchen/img/exp51_exp66_tapestation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/exp51_exp66_tapestation.png
--------------------------------------------------------------------------------
/experiments/kchen/img/exp66_exp51_round1_PCR_tapestation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/exp66_exp51_round1_PCR_tapestation.png
--------------------------------------------------------------------------------
/experiments/kchen/img/spikein_2_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/experiments/kchen/img/spikein_2_5.png
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/README.md:
--------------------------------------------------------------------------------
1 | ## Compile pdf
2 |
3 | ```
4 | cd maintext/
5 | sh compile_pdf.sh
6 | ```
7 |
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/maintext/compile_pdf.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Define the image and container name
4 | IMAGE="ghcr.io/rasilab/pandoc-latex:1.3.0"
5 | CONTAINER_NAME="pandoc-latex"
6 |
7 | echo $IMAGE $CONTAINER_NAME
8 |
9 | # Check if the image exists locally
10 | if ! docker image inspect $IMAGE > /dev/null 2>&1; then
11 | echo "Pulling $IMAGE..."
12 | docker pull $IMAGE
13 | else
14 | echo "$IMAGE already exists locally."
15 | fi
16 |
17 | # Check if the container is running
18 | if ! docker ps -q -f name=$CONTAINER_NAME > /dev/null; then
19 | # Check if the container exists but is stopped
20 | if docker ps -aq -f name=$CONTAINER_NAME > /dev/null; then
21 | echo "Restarting existing container $CONTAINER_NAME..."
22 | docker start $CONTAINER_NAME
23 | else
24 | echo "Creating and starting container $CONTAINER_NAME..."
25 | docker run -d --name $CONTAINER_NAME $IMAGE tail -f /dev/null
26 | fi
27 | else
28 | echo "Container $CONTAINER_NAME is already running."
29 | fi
30 |
31 | # Compile the PDF using the container
32 | echo "Compiling PDF..."
33 | docker exec -w $(pwd) $CONTAINER_NAME \
34 | pandoc maintext.md \
35 | --citeproc \
36 | --filter=pandoc/pandoc-svg.py \
37 | --template=pandoc/template.tex \
38 | --metadata-file=pandoc/pandoc-metadata.yaml \
39 | --pdf-engine=xelatex \
40 | -o maintext.pdf
41 |
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/maintext/maintext.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/kchen/dicodon/maintext/maintext.pdf
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/maintext/pandoc/nature.csl:
--------------------------------------------------------------------------------
1 |
2 |
133 |
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/maintext/pandoc/pandoc-metadata.yaml:
--------------------------------------------------------------------------------
1 | bibliography: bibliography.json
2 | csl: pandoc/nature.csl
3 | link-citations: true
4 | geometry:
5 | - margin=0.5in
6 | linestretch: 1
7 | mainfont: Helvetica
8 | fontsize: 11pt
9 | toc: true
10 | toc-depth: 1
11 | header-includes:
12 | - \usepackage[modulo]{lineno}
13 | # - \linenumbers
14 | - \usepackage[colaction]{multicol}
15 | # - \newcommand\multicollinenumbers{\linenumbers\def\makeLineNumber{\docolaction{\makeLineNumberLeft}{}{\makeLineNumberRight}}}
16 | - \newcommand{\hideFromPandoc}[1]{#1}
17 | - \hideFromPandoc{
18 | \let\Begin\begin
19 | \let\End\end
20 | }
21 | - \usepackage[font=footnotesize,labelfont=bf]{caption}
22 | - \captionsetup{labelformat=empty}
23 | linkcolor: blue
24 | urlcolor: blue
25 |
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/maintext/pandoc/pandoc-svg.py:
--------------------------------------------------------------------------------
1 | #! /usr/bin/env python
2 | """
3 | Pandoc filter to convert svg files to pdf as suggested at:
4 | https://github.com/jgm/pandoc/issues/265#issuecomment-27317316
5 | """
6 |
7 | __author__ = "Jerome Robert"
8 |
9 | import mimetypes
10 | import subprocess
11 | import os
12 | import sys
13 | from pandocfilters import toJSONFilter, Str, Para, Image
14 |
15 | fmt_to_option = {
16 | "latex": ("-A","pdf"),
17 | "beamer": ("-A","pdf"),
18 | #use PNG because EMF and WMF break transparency
19 | "docx": ("-e", "png"),
20 | #because of IE
21 | "html": ("-e", "png")
22 | }
23 |
24 | def svg_to_any(key, value, fmt, meta):
25 | if key == 'Image':
26 | if len(value) == 2:
27 | # before pandoc 1.16
28 | alt, [src, title] = value
29 | attrs = None
30 | else:
31 | attrs, alt, [src, title] = value
32 | mimet,_ = mimetypes.guess_type(src)
33 | option = fmt_to_option.get(fmt)
34 | if mimet == 'image/svg+xml' and option:
35 | base_name,_ = os.path.splitext(src)
36 | eps_name = base_name + "." + option[1]
37 | try:
38 | mtime = os.path.getmtime(eps_name)
39 | except OSError:
40 | mtime = -1
41 | if mtime < os.path.getmtime(src):
42 | cmd_line = ['inkscape', option[0], eps_name, src]
43 | sys.stderr.write("Running %s\n" % " ".join(cmd_line))
44 | subprocess.call(cmd_line, stdout=sys.stderr.fileno())
45 | if attrs:
46 | return Image(attrs, alt, [eps_name, title])
47 | else:
48 | return Image(alt, [eps_name, title])
49 |
50 | if __name__ == "__main__":
51 | toJSONFilter(svg_to_any)
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/maintext/pandoc/template.tex:
--------------------------------------------------------------------------------
1 | % Options for packages loaded elsewhere
2 | \PassOptionsToPackage{unicode$for(hyperrefoptions)$,$hyperrefoptions$$endfor$}{hyperref}
3 | \PassOptionsToPackage{hyphens}{url}
4 | $if(colorlinks)$
5 | \PassOptionsToPackage{dvipsnames,svgnames*,x11names*}{xcolor}
6 | $endif$
7 | $if(dir)$
8 | $if(latex-dir-rtl)$
9 | \PassOptionsToPackage{RTLdocument}{bidi}
10 | $endif$
11 | $endif$
12 | $if(CJKmainfont)$
13 | \PassOptionsToPackage{space}{xeCJK}
14 | $endif$
15 | %
16 | \documentclass[
17 | $if(fontsize)$
18 | $fontsize$,
19 | $endif$
20 | $if(lang)$
21 | $babel-lang$,
22 | $endif$
23 | $if(papersize)$
24 | $papersize$paper,
25 | $endif$
26 | $if(beamer)$
27 | ignorenonframetext,
28 | $if(handout)$
29 | handout,
30 | $endif$
31 | $if(aspectratio)$
32 | aspectratio=$aspectratio$,
33 | $endif$
34 | $endif$
35 | $for(classoption)$
36 | $classoption$$sep$,
37 | $endfor$
38 | ]{$documentclass$}
39 | $if(beamer)$
40 | $if(background-image)$
41 | \usebackgroundtemplate{%
42 | \includegraphics[width=\paperwidth]{$background-image$}%
43 | }
44 | $endif$
45 | \usepackage{pgfpages}
46 | \setbeamertemplate{caption}[numbered]
47 | \setbeamertemplate{caption label separator}{: }
48 | \setbeamercolor{caption name}{fg=normal text.fg}
49 | \beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$
50 | $for(beameroption)$
51 | \setbeameroption{$beameroption$}
52 | $endfor$
53 | % Prevent slide breaks in the middle of a paragraph
54 | \widowpenalties 1 10000
55 | \raggedbottom
56 | $if(section-titles)$
57 | \setbeamertemplate{part page}{
58 | \centering
59 | \begin{beamercolorbox}[sep=16pt,center]{part title}
60 | \usebeamerfont{part title}\insertpart\par
61 | \end{beamercolorbox}
62 | }
63 | \setbeamertemplate{section page}{
64 | \centering
65 | \begin{beamercolorbox}[sep=12pt,center]{part title}
66 | \usebeamerfont{section title}\insertsection\par
67 | \end{beamercolorbox}
68 | }
69 | \setbeamertemplate{subsection page}{
70 | \centering
71 | \begin{beamercolorbox}[sep=8pt,center]{part title}
72 | \usebeamerfont{subsection title}\insertsubsection\par
73 | \end{beamercolorbox}
74 | }
75 | \AtBeginPart{
76 | \frame{\partpage}
77 | }
78 | \AtBeginSection{
79 | \ifbibliography
80 | \else
81 | \frame{\sectionpage}
82 | \fi
83 | }
84 | \AtBeginSubsection{
85 | \frame{\subsectionpage}
86 | }
87 | $endif$
88 | $endif$
89 | $if(beamerarticle)$
90 | \usepackage{beamerarticle} % needs to be loaded first
91 | $endif$
92 | \usepackage{amsmath,amssymb}
93 | $if(fontfamily)$
94 | \usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
95 | $else$
96 | \usepackage{lmodern}
97 | $endif$
98 | $if(linestretch)$
99 | \usepackage{setspace}
100 | $endif$
101 | \usepackage{iftex}
102 | \ifPDFTeX
103 | \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
104 | \usepackage[utf8]{inputenc}
105 | \usepackage{textcomp} % provide euro and other symbols
106 | \else % if luatex or xetex
107 | $if(mathspec)$
108 | \ifXeTeX
109 | \usepackage{mathspec}
110 | \else
111 | \usepackage{unicode-math}
112 | \fi
113 | $else$
114 | \usepackage{unicode-math}
115 | $endif$
116 | \defaultfontfeatures{Scale=MatchLowercase}
117 | \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
118 | $if(mainfont)$
119 | \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$}
120 | $endif$
121 | $if(sansfont)$
122 | \setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$}
123 | $endif$
124 | $if(monofont)$
125 | \setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$]{$monofont$}
126 | $endif$
127 | $for(fontfamilies)$
128 | \newfontfamily{$fontfamilies.name$}[$for(fontfamilies.options)$$fontfamilies.options$$sep$,$endfor$]{$fontfamilies.font$}
129 | $endfor$
130 | $if(mathfont)$
131 | $if(mathspec)$
132 | \ifXeTeX
133 | \setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
134 | \else
135 | \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
136 | \fi
137 | $else$
138 | \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
139 | $endif$
140 | $endif$
141 | $if(CJKmainfont)$
142 | \ifXeTeX
143 | \usepackage{xeCJK}
144 | \setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
145 | \fi
146 | $endif$
147 | $if(luatexjapresetoptions)$
148 | \ifLuaTeX
149 | \usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset}
150 | \fi
151 | $endif$
152 | $if(CJKmainfont)$
153 | \ifLuaTeX
154 | \usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec}
155 | \setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
156 | \fi
157 | $endif$
158 | \fi
159 | $if(beamer)$
160 | $if(theme)$
161 | \usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$}
162 | $endif$
163 | $if(colortheme)$
164 | \usecolortheme{$colortheme$}
165 | $endif$
166 | $if(fonttheme)$
167 | \usefonttheme{$fonttheme$}
168 | $endif$
169 | $if(mainfont)$
170 | \usefonttheme{serif} % use mainfont rather than sansfont for slide text
171 | $endif$
172 | $if(innertheme)$
173 | \useinnertheme{$innertheme$}
174 | $endif$
175 | $if(outertheme)$
176 | \useoutertheme{$outertheme$}
177 | $endif$
178 | $endif$
179 | % Use upquote if available, for straight quotes in verbatim environments
180 | \IfFileExists{upquote.sty}{\usepackage{upquote}}{}
181 | \IfFileExists{microtype.sty}{% use microtype if available
182 | \usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype}
183 | \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
184 | }{}
185 | $if(indent)$
186 | $else$
187 | \makeatletter
188 | \@ifundefined{KOMAClassName}{% if non-KOMA class
189 | % \usepackage{parskip}
190 | \setlength{\parindent}{0pt}
191 | \setlength{\parskip}{4pt}
192 | }{% if KOMA class
193 | \KOMAoptions{parskip=half}}
194 | \makeatother
195 | $endif$
196 | $if(verbatim-in-note)$
197 | \usepackage{fancyvrb}
198 | $endif$
199 | \usepackage{xcolor}
200 | \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
201 | \IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
202 | \hypersetup{
203 | $if(title-meta)$
204 | pdftitle={$title-meta$},
205 | $endif$
206 | $if(author-meta)$
207 | pdfauthor={$author-meta$},
208 | $endif$
209 | $if(lang)$
210 | pdflang={$lang$},
211 | $endif$
212 | $if(subject)$
213 | pdfsubject={$subject$},
214 | $endif$
215 | $if(keywords)$
216 | pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$},
217 | $endif$
218 | $if(colorlinks)$
219 | colorlinks=true,
220 | linkcolor={$if(linkcolor)$$linkcolor$$else$Maroon$endif$},
221 | filecolor={$if(filecolor)$$filecolor$$else$Maroon$endif$},
222 | citecolor={$if(citecolor)$$citecolor$$else$Blue$endif$},
223 | urlcolor={$if(urlcolor)$$urlcolor$$else$Blue$endif$},
224 | $else$
225 | hidelinks,
226 | $endif$
227 | pdfcreator={LaTeX via pandoc}}
228 | \urlstyle{same} % disable monospaced font for URLs
229 | $if(verbatim-in-note)$
230 | \VerbatimFootnotes % allow verbatim text in footnotes
231 | $endif$
232 | $if(geometry)$
233 | $if(beamer)$
234 | \geometry{$for(geometry)$$geometry$$sep$,$endfor$}
235 | $else$
236 | \usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
237 | $endif$
238 | $endif$
239 | $if(beamer)$
240 | \newif\ifbibliography
241 | $endif$
242 | $if(listings)$
243 | \usepackage{listings}
244 | \newcommand{\passthrough}[1]{#1}
245 | \lstset{defaultdialect=[5.3]Lua}
246 | \lstset{defaultdialect=[x86masm]Assembler}
247 | $endif$
248 | $if(lhs)$
249 | \lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
250 | $endif$
251 | $if(highlighting-macros)$
252 | $highlighting-macros$
253 | $endif$
254 | $if(tables)$
255 | \usepackage{longtable,booktabs,array}
256 | $if(multirow)$
257 | \usepackage{multirow}
258 | $endif$
259 | \usepackage{calc} % for calculating minipage widths
260 | $if(beamer)$
261 | \usepackage{caption}
262 | % Make caption package work with longtable
263 | \makeatletter
264 | \def\fnum@table{\tablename~\thetable}
265 | \makeatother
266 | $else$
267 | % Correct order of tables after \paragraph or \subparagraph
268 | \usepackage{etoolbox}
269 | \makeatletter
270 | \patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{}
271 | \makeatother
272 | % Allow footnotes in longtable head/foot
273 | % \IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}}
274 | % \makesavenoteenv{longtable}
275 | $endif$
276 | $endif$
277 | $if(graphics)$
278 | \usepackage{graphicx}
279 | \makeatletter
280 | \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
281 | \def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
282 | \makeatother
283 | % Scale images if necessary, so that they will not overflow the page
284 | % margins by default, and it is still possible to overwrite the defaults
285 | % using explicit options in \includegraphics[width, height, ...]{}
286 | \setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
287 | % Set default figure placement to H
288 | \makeatletter
289 | \def\fps@figure{H}
290 | \makeatother
291 | $endif$
292 | $if(links-as-notes)$
293 | % Make links footnotes instead of hotlinks:
294 | % \DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}}
295 | $endif$
296 | $if(strikeout)$
297 | \usepackage[normalem]{ulem}
298 | % Avoid problems with \sout in headers with hyperref
299 | \pdfstringdefDisableCommands{\renewcommand{\sout}{}}
300 | $endif$
301 | \setlength{\emergencystretch}{3em} % prevent overfull lines
302 | \providecommand{\tightlist}{%
303 | \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
304 | $if(numbersections)$
305 | \setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
306 | $else$
307 | \setcounter{secnumdepth}{-\maxdimen} % remove section numbering
308 | $endif$
309 | $if(beamer)$
310 | $else$
311 | $if(block-headings)$
312 | % Make \paragraph and \subparagraph free-standing
313 | \ifx\paragraph\undefined\else
314 | \let\oldparagraph\paragraph
315 | \renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
316 | \fi
317 | \ifx\subparagraph\undefined\else
318 | \let\oldsubparagraph\subparagraph
319 | \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
320 | \fi
321 | $endif$
322 | $endif$
323 | $if(pagestyle)$
324 | \pagestyle{$pagestyle$}
325 | $endif$
326 | $for(header-includes)$
327 | $header-includes$
328 | $endfor$
329 | $if(lang)$
330 | \ifXeTeX
331 | % Load polyglossia as late as possible: uses bidi with RTL langages (e.g. Hebrew, Arabic)
332 | \usepackage{polyglossia}
333 | \setmainlanguage[$for(polyglossia-lang.options)$$polyglossia-lang.options$$sep$,$endfor$]{$polyglossia-lang.name$}
334 | $for(polyglossia-otherlangs)$
335 | \setotherlanguage[$for(polyglossia-otherlangs.options)$$polyglossia-otherlangs.options$$sep$,$endfor$]{$polyglossia-otherlangs.name$}
336 | $endfor$
337 | \else
338 | \usepackage[$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
339 | % get rid of language-specific shorthands (see #6817):
340 | \let\LanguageShortHands\languageshorthands
341 | \def\languageshorthands#1{}
342 | $if(babel-newcommands)$
343 | $babel-newcommands$
344 | $endif$
345 | \fi
346 | $endif$
347 | \ifLuaTeX
348 | \usepackage{selnolig} % disable illegal ligatures
349 | \fi
350 | $if(dir)$
351 | \ifXeTeX
352 | % Load bidi as late as possible as it modifies e.g. graphicx
353 | \usepackage{bidi}
354 | \fi
355 | \ifPDFTeX
356 | \TeXXeTstate=1
357 | \newcommand{\RL}[1]{\beginR #1\endR}
358 | \newcommand{\LR}[1]{\beginL #1\endL}
359 | \newenvironment{RTL}{\beginR}{\endR}
360 | \newenvironment{LTR}{\beginL}{\endL}
361 | \fi
362 | $endif$
363 | $if(natbib)$
364 | \usepackage[$natbiboptions$]{natbib}
365 | \bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
366 | $endif$
367 | $if(biblatex)$
368 | \usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
369 | $for(bibliography)$
370 | \addbibresource{$bibliography$}
371 | $endfor$
372 | $endif$
373 | $if(nocite-ids)$
374 | \nocite{$for(nocite-ids)$$it$$sep$, $endfor$}
375 | $endif$
376 | $if(csl-refs)$
377 | \newlength{\cslhangindent}
378 | \setlength{\cslhangindent}{1em}
379 | \newlength{\csllabelwidth}
380 | \setlength{\csllabelwidth}{1.5em}
381 | \newenvironment{CSLReferences}[2] % #1 hanging-ident, #2 entry spacing
382 | {% don't indent paragraphs
383 | \setlength{\parindent}{0pt}
384 | % turn on hanging indent if param 1 is 1
385 | % \ifodd #1 \everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces\fi
386 | % set entry spacing
387 | \ifnum #2 > 0
388 | % \setlength{\parskip}{#2\baselineskip}
389 | \fi
390 | }%
391 | {}
392 | \usepackage{calc}
393 | \newcommand{\CSLBlock}[1]{#1\hfill\break}
394 | \newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{#1}}
395 | \newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{#1}\break}
396 | \newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1}
397 | $endif$
398 | $if(csquotes)$
399 | \usepackage{csquotes}
400 | $endif$
401 |
402 | $if(title)$
403 | \title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
404 | $endif$
405 | $if(subtitle)$
406 | $if(beamer)$
407 | $else$
408 | \usepackage{etoolbox}
409 | \makeatletter
410 | \providecommand{\subtitle}[1]{% add subtitle to \maketitle
411 | \apptocmd{\@title}{\par {\large #1 \par}}{}{}
412 | }
413 | \makeatother
414 | $endif$
415 | \subtitle{$subtitle$}
416 | $endif$
417 | \author{$for(author)$$author$$sep$ \and $endfor$}
418 | \date{$date$}
419 | $if(beamer)$
420 | $if(institute)$
421 | \institute{$for(institute)$$institute$$sep$ \and $endfor$}
422 | $endif$
423 | $if(titlegraphic)$
424 | \titlegraphic{\includegraphics{$titlegraphic$}}
425 | $endif$
426 | $if(logo)$
427 | \logo{\includegraphics{$logo$}}
428 | $endif$
429 | $endif$
430 |
431 | \usepackage{float}
432 | \newfontfamily\sectionfont[Color=MSLightBlue]{DejaVu Sans}
433 | % https://tex.stackexchange.com/a/56025
434 | \makeatletter
435 | \renewcommand{\section}{
436 | \@startsection
437 | {section}% % the name
438 | {1}% % the level
439 | {\z@}% % the indent / 0mm
440 | {6pt}% % the before skip / -3.5ex \@plus -1ex \@minus -.2ex
441 | {1pt}% % the after skip / 2.3ex \@plus .2ex
442 | {\bfseries}} % the style
443 | \renewcommand{\subsection}{
444 | \@startsection
445 | {subsection}% % the name
446 | {2}% % the level
447 | {\z@}% % the indent / 0mm
448 | {0pt}% % the before skip / -3.5ex \@plus -1ex \@minus -.2ex
449 | {1pt}% % the after skip / 2.3ex \@plus .2ex
450 | {\bfseries}} % the style
451 | \renewcommand{\subsubsection}{
452 | \@startsection
453 | {subsubsection}% % the name
454 | {3}% % the level
455 | {\z@}% % the indent / 0mm
456 | {0pt}% % the before skip / -3.5ex \@plus -1ex \@minus -.2ex
457 | {1pt}% % the after skip / 2.3ex \@plus .2ex
458 | {\bfseries}} % the style
459 | \renewcommand{\paragraph}{
460 | \@startsection
461 | {paragraph}% % the name
462 | {4}% % the level
463 | {\z@}% % the indent / 0mm
464 | {0pt}% % the before skip / -3.5ex \@plus -1ex \@minus -.2ex
465 | {1pt}% % the after skip / 2.3ex \@plus .2ex
466 | {\itshape\bfseries}} % the style
467 | \renewcommand{\subparagraph}{
468 | \@startsection
469 | {subparagraph}% % the name
470 | {5}% % the level
471 | {\z@}% % the indent / 0mm
472 | {0pt}% % the before skip / -3.5ex \@plus -1ex \@minus -.2ex
473 | {1pt}% % the after skip / 2.3ex \@plus .2ex
474 | {\bfseries\itshape}} % the style
475 | % \renewcommand{\subsection}{\@startsection
476 | % {section}% % the name
477 | % {2}% % the level
478 | % {\z@}% % the indent / 0mm
479 | % {6pt}% % the before skip / -3.5ex \@plus -1ex \@minus -.2ex
480 | % {4pt}% % the after skip / 2.3ex \@plus .2ex
481 | % {\normalsize\bfseries}} % the style
482 | % \renewcommand{\subsubsection}{\@startsection
483 | % {section}% % the name
484 | % {3}% % the level
485 | % {\z@}% % the indent / 0mm
486 | % {6pt}% % the before skip / -3.5ex \@plus -1ex \@minus -.2ex
487 | % {4pt}% % the after skip / 2.3ex \@plus .2ex
488 | % {\normalsize\bfseries}} % the style
489 |
490 |
491 | \makeatletter
492 | \renewcommand{\maketitle}{
493 | \begin{flushleft}
494 | \Large\textbf{\@title}\vskip6pt
495 | \end{flushleft}
496 | }
497 |
498 |
499 | \begin{document}
500 | $if(has-frontmatter)$
501 | \frontmatter
502 | $endif$
503 | $if(title)$
504 | $if(beamer)$
505 | \frame{\titlepage}
506 | $else$
507 | \maketitle
508 | $endif$
509 | $if(abstract)$
510 | \begin{abstract}
511 | $abstract$
512 | \end{abstract}
513 | $endif$
514 | $endif$
515 |
516 | $for(include-before)$
517 | $include-before$
518 |
519 | $endfor$
520 | $if(toc)$
521 | $if(toc-title)$
522 | \renewcommand*\contentsname{$toc-title$}
523 | $endif$
524 | $if(beamer)$
525 | \begin{frame}[allowframebreaks]
526 | $if(toc-title)$
527 | \frametitle{$toc-title$}
528 | $endif$
529 | \tableofcontents[hideallsubsections]
530 | \end{frame}
531 | $else$
532 | {
533 | $if(colorlinks)$
534 | \hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$}
535 | $endif$
536 | \setcounter{tocdepth}{$toc-depth$}
537 | }
538 | $endif$
539 | $endif$
540 | $if(lot)$
541 | \listoftables
542 | $endif$
543 | $if(lof)$
544 | \listoffigures
545 | $endif$
546 | $if(linestretch)$
547 | \setstretch{$linestretch$}
548 | $endif$
549 | $if(has-frontmatter)$
550 | \mainmatter
551 | $endif$
552 | $body$
553 |
554 | $if(has-frontmatter)$
555 | \backmatter
556 | $endif$
557 | $if(natbib)$
558 | $if(bibliography)$
559 | $if(biblio-title)$
560 | $if(has-chapters)$
561 | \renewcommand\bibname{$biblio-title$}
562 | $else$
563 | \renewcommand\refname{$biblio-title$}
564 | $endif$
565 | $endif$
566 | $if(beamer)$
567 | \begin{frame}[allowframebreaks]{$biblio-title$}
568 | \bibliographytrue
569 | $endif$
570 | \bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}
571 | $if(beamer)$
572 | \end{frame}
573 | $endif$
574 |
575 | $endif$
576 | $endif$
577 | $if(biblatex)$
578 | $if(beamer)$
579 | \begin{frame}[allowframebreaks]{$biblio-title$}
580 | \bibliographytrue
581 | \printbibliography[heading=none]
582 | \end{frame}
583 | $else$
584 | \printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$
585 | $endif$
586 |
587 | $endif$
588 | $for(include-after)$
589 | $include-after$
590 |
591 | $endfor$
592 | \end{document}
593 |
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/maintext/svg/supp_fig1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/kchen/dicodon/maintext/svg/supp_fig1.pdf
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/maintext/svg/supp_fig2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/kchen/dicodon/maintext/svg/supp_fig2.pdf
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/maintext/svg/supp_fig3.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/kchen/dicodon/maintext/svg/supp_fig3.pdf
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/maintext/svg/supp_fig4.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/kchen/dicodon/maintext/svg/supp_fig4.pdf
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/maintext/svg/supp_fig5.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/kchen/dicodon/maintext/svg/supp_fig5.pdf
--------------------------------------------------------------------------------
/manuscripts/kchen/dicodon/maintext/svg/supp_fig6.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/kchen/dicodon/maintext/svg/supp_fig6.pdf
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/compile_pdf.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Define the image and container name
4 | IMAGE="ghcr.io/rasilab/pandoc-latex:1.3.0"
5 | CONTAINER_NAME="pandoc-latex"
6 |
7 | echo $IMAGE $CONTAINER_NAME
8 |
9 | # Check if the image exists locally
10 | if ! docker image inspect $IMAGE > /dev/null 2>&1; then
11 | echo "Pulling $IMAGE..."
12 | docker pull $IMAGE
13 | else
14 | echo "$IMAGE already exists locally."
15 | fi
16 |
17 | # Check if the container is running
18 | if ! docker ps -q -f name=$CONTAINER_NAME > /dev/null; then
19 | # Check if the container exists but is stopped
20 | if docker ps -aq -f name=$CONTAINER_NAME > /dev/null; then
21 | echo "Restarting existing container $CONTAINER_NAME..."
22 | docker start $CONTAINER_NAME
23 | else
24 | echo "Creating and starting container $CONTAINER_NAME..."
25 | docker run -d --name $CONTAINER_NAME $IMAGE tail -f /dev/null
26 | fi
27 | else
28 | echo "Container $CONTAINER_NAME is already running."
29 | fi
30 |
31 | # Compile the PDF using the container
32 | echo "Compiling PDF..."
33 | docker exec -w $(pwd) $CONTAINER_NAME \
34 | pandoc maintext.md \
35 | --citeproc \
36 | --filter=pandoc/svg_to_png.py \
37 | --template=pandoc/template.tex \
38 | --metadata-file=pandoc/pandoc-options.yaml \
39 | --pdf-engine=xelatex \
40 | -o maintext.pdf
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/maintext.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/maria/github_workflow/maintext.pdf
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/svg/fig1_structure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/maria/github_workflow/svg/fig1_structure.png
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/svg/fig2_workflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/maria/github_workflow/svg/fig2_workflow.png
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/svg/fig2_workflow.svg:
--------------------------------------------------------------------------------
1 |
2 |
456 |
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/svg/fig3_person_vs_projects.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/maria/github_workflow/svg/fig3_person_vs_projects.png
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/svg/fig4_issues.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/maria/github_workflow/svg/fig4_issues.png
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/svg/fig5_folder_structure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/maria/github_workflow/svg/fig5_folder_structure.png
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/svg/fig5_folder_structure.svg:
--------------------------------------------------------------------------------
1 |
2 |
706 |
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/svg/fig6_containers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/maria/github_workflow/svg/fig6_containers.png
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/svg/fig6_containers.svg:
--------------------------------------------------------------------------------
1 |
2 |
564 |
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/svg/orcid.logo.icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasilab/github_demo/054016ba1825f47afddf7006eeb70fac2d6ef256/manuscripts/maria/github_workflow/svg/orcid.logo.icon.png
--------------------------------------------------------------------------------
/manuscripts/maria/github_workflow/svg/orcid.logo.icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/presentations/kchen/20241214_thesis_defense/kchen-white.css:
--------------------------------------------------------------------------------
1 | /**
2 | * White theme for reveal.js. This is the opposite of the 'black' theme.
3 | *
4 | * By Hakim El Hattab, http://hakim.se
5 | */
6 | @import url(./fonts/source-sans-pro/source-sans-pro.css);
7 | section.has-dark-background, section.has-dark-background h1, section.has-dark-background h2, section.has-dark-background h3, section.has-dark-background h4, section.has-dark-background h5, section.has-dark-background h6 {
8 | color: #fff; }
9 |
10 | /*********************************************
11 | * GLOBAL STYLES
12 | *********************************************/
13 | :root {
14 | --background-color: #fff;
15 | --main-font: Helvetica, sans-serif;
16 | --main-font-size: 24px;
17 | --main-color: #222;
18 | --block-margin: 20px;
19 | --heading-margin: 0 0 20px 0;
20 | --heading-font: Helvetica, sans-serif;
21 | --heading-color: #222;
22 | --heading-line-height: 1.2;
23 | --heading-letter-spacing: normal;
24 | --heading-text-transform: none;
25 | --heading-text-shadow: none;
26 | --heading-font-weight: 400;
27 | --heading1-text-shadow: none;
28 | --heading1-size: 2.5em;
29 | --heading2-size: 1.6em;
30 | --heading3-size: 1.4em;
31 | --heading4-size: 1em;
32 | --code-font: monospace;
33 | --link-color: #2a76dd;
34 | --link-color-hover: #6ca0e8;
35 | --selection-background-color: #98bdef;
36 | --selection-color: #fff; }
37 |
38 | .reveal-viewport {
39 | background: #fff;
40 | background-color: #fff; }
41 |
42 | .reveal {
43 | font-family: Helvetica, sans-serif;
44 | font-size: 24px;
45 | font-weight: normal;
46 | color: #222; }
47 |
48 | .reveal ::selection {
49 | color: #fff;
50 | background: #98bdef;
51 | text-shadow: none; }
52 |
53 | .reveal ::-moz-selection {
54 | color: #fff;
55 | background: #98bdef;
56 | text-shadow: none; }
57 |
58 | .reveal .slides section,
59 | .reveal .slides section > section {
60 | line-height: 1.3;
61 | font-weight: inherit; }
62 |
63 | /*********************************************
64 | * HEADERS
65 | *********************************************/
66 | .reveal h1,
67 | .reveal h2,
68 | .reveal h3,
69 | .reveal h4,
70 | .reveal h5,
71 | .reveal h6 {
72 | margin: 0 0 20px 0;
73 | color: #222;
74 | font-family: Helvetica, sans-serif;
75 | font-weight: 400;
76 | line-height: 1.2;
77 | letter-spacing: normal;
78 | text-transform: none;
79 | text-shadow: none;
80 | word-wrap: break-word; }
81 |
82 | .reveal h1 {
83 | font-size: 2.5em; }
84 |
85 | .reveal h2 {
86 | font-size: 1.6em; }
87 |
88 | .reveal h3 {
89 | font-size: 1.4em; }
90 |
91 | .reveal h4 {
92 | font-size: 1em; }
93 |
94 | .reveal h1 {
95 | text-shadow: none; }
96 |
97 | .reveal h2 {
98 | margin-top: 20px; }
99 |
100 | /*********************************************
101 | * OTHER
102 | *********************************************/
103 | .reveal p {
104 | margin: 20px 0;
105 | line-height: 1.3; }
106 |
107 | /* Remove trailing margins after titles */
108 | .reveal h1:last-child,
109 | .reveal h2:last-child,
110 | .reveal h3:last-child,
111 | .reveal h4:last-child,
112 | .reveal h5:last-child,
113 | .reveal h6:last-child {
114 | margin-bottom: 0; }
115 |
116 | /* Ensure certain elements are never larger than the slide itself */
117 | .reveal img,
118 | .reveal video,
119 | .reveal iframe {
120 | max-width: 95%;
121 | max-height: 95%; }
122 |
123 | .reveal strong,
124 | .reveal b {
125 | font-weight: bold; }
126 |
127 | .reveal em {
128 | font-style: italic; }
129 |
130 | .reveal ol,
131 | .reveal dl,
132 | .reveal ul {
133 | display: inline-block;
134 | text-align: left;
135 | margin: 0 0 0 1em; }
136 |
137 | .reveal ol {
138 | list-style-type: decimal; }
139 |
140 | .reveal ul {
141 | list-style-type: disc; }
142 |
143 | .reveal ul ul {
144 | list-style-type: square; }
145 |
146 | .reveal ul ul ul {
147 | list-style-type: circle; }
148 |
149 | .reveal ul ul,
150 | .reveal ul ol,
151 | .reveal ol ol,
152 | .reveal ol ul {
153 | display: block;
154 | margin-left: 40px; }
155 |
156 | .reveal dt {
157 | font-weight: bold; }
158 |
159 | .reveal dd {
160 | margin-left: 40px; }
161 |
162 | .reveal blockquote {
163 | display: block;
164 | position: relative;
165 | width: 70%;
166 | margin: 20px auto;
167 | padding: 5px;
168 | font-style: italic;
169 | background: rgba(255, 255, 255, 0.05);
170 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
171 |
172 | .reveal blockquote p:first-child,
173 | .reveal blockquote p:last-child {
174 | display: inline-block; }
175 |
176 | .reveal q {
177 | font-style: italic; }
178 |
179 | .reveal pre {
180 | display: block;
181 | position: relative;
182 | width: 90%;
183 | margin: 20px auto;
184 | text-align: left;
185 | font-size: 0.55em;
186 | font-family: monospace;
187 | line-height: 1.2em;
188 | word-wrap: break-word;
189 | box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); }
190 |
191 | .reveal code {
192 | font-family: monospace;
193 | text-transform: none; }
194 |
195 | .reveal pre code {
196 | display: block;
197 | padding: 5px;
198 | overflow: auto;
199 | max-height: 400px;
200 | word-wrap: normal; }
201 |
202 | .reveal table {
203 | margin: auto;
204 | border-collapse: collapse;
205 | border-spacing: 0; }
206 |
207 | .reveal table th {
208 | font-weight: bold; }
209 |
210 | .reveal table th,
211 | .reveal table td {
212 | text-align: left;
213 | padding: 0.2em 0.5em 0.2em 0.5em;
214 | border-bottom: 1px solid; }
215 |
216 | .reveal table th[align="center"],
217 | .reveal table td[align="center"] {
218 | text-align: center; }
219 |
220 | .reveal table th[align="right"],
221 | .reveal table td[align="right"] {
222 | text-align: right; }
223 |
224 | .reveal table tbody tr:last-child th,
225 | .reveal table tbody tr:last-child td {
226 | border-bottom: none; }
227 |
228 | .reveal sup {
229 | vertical-align: super;
230 | font-size: smaller; }
231 |
232 | .reveal sub {
233 | vertical-align: sub;
234 | font-size: smaller; }
235 |
236 | .reveal small {
237 | display: inline-block;
238 | font-size: 0.6em;
239 | line-height: 1.2em;
240 | vertical-align: top; }
241 |
242 | .reveal small * {
243 | vertical-align: top; }
244 |
245 | .reveal img {
246 | margin: 20px 0; }
247 |
248 | /*********************************************
249 | * LINKS
250 | *********************************************/
251 | .reveal a {
252 | color: #2a76dd;
253 | text-decoration: none;
254 | transition: color .15s ease; }
255 |
256 | .reveal a:hover {
257 | color: #6ca0e8;
258 | text-shadow: none;
259 | border: none; }
260 |
261 | .reveal .roll span:after {
262 | color: #fff;
263 | background: #1a53a1; }
264 |
265 | /*********************************************
266 | * Frame helper
267 | *********************************************/
268 | .reveal .r-frame {
269 | border: 4px solid #222;
270 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
271 |
272 | .reveal a .r-frame {
273 | transition: all .15s linear; }
274 |
275 | .reveal a:hover .r-frame {
276 | border-color: #2a76dd;
277 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
278 |
279 | /*********************************************
280 | * NAVIGATION CONTROLS
281 | *********************************************/
282 | .reveal .controls {
283 | color: #2a76dd; }
284 |
285 | /*********************************************
286 | * PROGRESS BAR
287 | *********************************************/
288 | .reveal .progress {
289 | background: rgba(0, 0, 0, 0.2);
290 | color: #2a76dd; }
291 |
292 | /*********************************************
293 | * PRINT BACKGROUND
294 | *********************************************/
295 | @media print {
296 | .backgrounds {
297 | background-color: #fff; } }
298 |
299 | .reveal section {
300 | min-height: 100%; }
301 |
302 | .reveal em {
303 | color: #323232;
304 | font-weight: 800;
305 | font-style: italic; }
306 |
307 | .reveal h2 {
308 | font-weight: bold; }
309 |
310 | .reveal h3 {
311 | padding-top: 10px; }
312 |
313 | .cite {
314 | position: absolute;
315 | bottom: 0%;
316 | right: 0%;
317 | font-size: 24px; }
--------------------------------------------------------------------------------
/presentations/kchen/20241214_thesis_defense/notes.md:
--------------------------------------------------------------------------------
1 | ## title
2 | Thank you for the introduction and thank you everyone for being here today both in this room and on the zoom call. Today I will be talking about using massively parallel reporter assays to identify sequences that trigger ribosome-associated RNA quality control in yeast.
3 | ## central dogma
4 | First I want to introduce a very fundamental cellular process that most people here, scientist or not, have probably heard of, and it's called the Central Dogma of molecular biology. This is the process wherein your genetic code, or DNA, is converted into a transcript or message called messenger RNA through a process called transcription, and then that messenger RNA is used to produce protein in a process is called RNA translation.
5 | Proteins are the macromolecules that carry out almost all of the functions of a cell, so it's vital for the cell to make sure that the correct protein is produced at the right time and in the right amounts, and because of that, every step of the central dogma is tightly regulated to control this expression.
6 | In our lab, we're particularly interested in the last step of the central dogma, mRNA translation, and how this step is regulated to affect protein output.
7 | ## translation + decay -> protein
8 | There are two predominant processes that affect the amount of protein produced from an mRNA transcript, and that's translation of the mRNA into protein but also the decay of that mRNA.
9 | Every mRNA transcript must eventually be degraded at some point, this is the normal life cycle of an mRNA molecule, so how long-lived this transcript is or how quickly it's degraded also affects how much protein gets produced from it.
10 | ## mrna translation
11 | Here is a very simplifed schematic of an mRNA molecule being translated into protein by a ribosome: the ribosome scans the mRNA molecule until it finds the start codon at the beginning of the coding sequence, then moves along the coding sequence incorporating aminoacyl tRNAs (e.g. amino acids) as it elongates the nascent peptide, and finally when it reaches the stop codon it releases the completed peptide and then the ribosome is recycled.
12 | ## regulation by UTRs
13 | The regulation of mRNA translation is often credited to the 5' and 3' UTRs of an mRNA molecule. The 5'UTR contains various features that mediate translation initiation which controls the rate of translation, while the 3'UTR mediates mRNA decay through deadenylation of the polyA tail, which is the signal for bulk mRNA decay.
14 | ## CDS also regulates
15 | However, the coding sequence itself can also regulate protein levels by modulating either the mRNA decay rate or translation initiation rate.
16 | ## ribo collisions
17 | How this happens mechanistically is that ribosomes can either slow down or get stuck and collide on difficult-to-translate sequences as it translates through the CDS.
18 | These slowed down or collided translating ribosomes are essentially signals that trigger the need for mRNA decay or inhibition of translation initiation on the aberrant transcript, and this can occur through multiple different pathways.
19 | ## RQC
20 | One pathway I'll highlight today is largely regulated by an E3 ubiquitin ligase called Hel2 (ZNF598 in humans). Hel2 is recruited to collided ribosomes and ubiquitinates the collision interface between small ribosomal subunits.
21 | There is also some evidence that another factor called Syh1 can play a role, but it's mechanism and function are both not well defined.
22 | Another pathway that mediates RNA decay is initiated when Not5, which is a subunit of the Ccr4-Not deadenylase complex, senses slowed down ribosomes that haven't necessarily collided yet.
23 | ## degradation of everything
24 | In either case, the sensing of these slowed or collided ribosomes recruits more regulatory factors to the site that ultimately degrade the stall-inducing mRNA and incomplete nascent peptide.
25 | ## RQC and COMD
26 | The decay pathway initiated by Hel2 (and perhaps Syh1) is known as ribosome-associated quality control (RQC), and the pathway initiated by Not5 is known as codon optimality mediated decay (COMD).
27 | ## known RQC sequences
28 | As far as what sequences cause ribosome slowdown and collisions that then trigger quality control and RNA decay, we know that nonoptimal codons, which are codons where the cognate tRNA is in low abundance in the cell, trigger Not5-driven codon optimality mediated decay.
29 | Other sequences like polytryptophans, polybasic sequences and rare codons trigger Hel2-driven RQC.
30 | Polytryptophans are thought to sterically block the restriction site in the ribosome exit tunnel, polybasic sequences like polylysines and polyarginines are thought to have inhibitory electrostatic interactions with the negatively-charged ribosomal exit tunnel, and rare codons (CGA/CGG) require inefficient I-A wobble base pairing during decoding and that stalls the ribosome a lot.
31 | The major question we've been interested in is what other mRNA sequences beyond these trigger quality control in yeast?
32 | ## screen
33 | In order to better understand the full diversity of mRNA sequences that trigger RNA decay in yeast, we employed a codon pair screen as shown here. We used a reporter comprised of a common gene PGK1 followed by a codon pair insert, which is one pair of codons repeated 8 times, and we repeat it 8 times just to ensure that we can see or measure the effect of that pair. This repeat insert is followed by a 24nt barcode and then the rest of the CDS is YFP.
34 | Our library is comprised of all 4096 possible codon pairs. Each codon pair repeat insert is represented by at least 20 unique barcodes, and we establish that linkage by deep-sequencing the plasmid library first. We integrate this plasmid library into the yeast genome, then deep-sequence the barcodes in both mRNA and gDNA. Normalizing these barcode counts to each other yields a metric for how destabilizing each codon pair insert is, or in other words, how does each codon pair affect mRNA levels.
35 | ## full data
36 | The full data we get from the screen is shown here, where the codon in the first position of the pair is on the x axis and the codon in the second position of the pair is on the y axis, and the resultant mRNA level of each pair is color-coded. The codons are grouped by the amino acids they encode.
37 | Deeper red is lower mRNA level and deeper blue is higher mRNA level with respect to the median, so they are all relative measurements.
38 | This is a lot of data to go through, but I hope that at this level you can appreciate that there are some noticeable patterns with respect to stability of codon groups.
39 | First I'm going to show some checks and validation experiments that we did before getting into some of the interesting new sequences that we found.
40 | ## comparison with published methods
41 | The first thing we wanted to do was to compare our assay's derived metrics for mRNA stability with previously published methods and with the sequences in yeast that are already known cause RNA decay.
42 | These are the aggregate effects of each codon on mRNA level, that's just the average of the mRNA levels whether the codon is in the first position or the second position of the insert.
43 | It's not important to actually see what each codon is at this point, but what we wanted to confirm was that the codon's effects are consistent between positions, and we do see that across the board there are no codons that have divergent effects based on whether they're in the first or second position of the repeat insert.
44 | Then if we zoom in to the most destabilizing codons on average in our screen, we can see that our results agree really well with the known sequences that cause RNA decay that I mentioned before: the rare codons CGA/CGG are most destabilizing on average, Tryptophans, Lysines and arginine codons are all destabilizing, and then some really nonoptimal codons ATA and GTA, along with Stop codons that trigger NMD, all of this is consistent with the literature.
45 | ## CSC
46 | We also see that there is good agreement between our assay's aggregate mRNA level measurements per codon with published metrics for codon stability.
47 | Here I'm showing a comparison between our average codon mRNA levels against codon stability coefficients which are derived from transcriptome half life measurements, and we find that we have pretty good codon stability agreement.
48 | ## comparison aa
49 | Similarly, if we look at the aggregate effects on mRNA stability averaged at the amino acid level, we also see that the most destabilized amino acids on average in our assay agree with what's known to cause mRNA decay in yeast, which is that arginines, tryptophans, and lysines, are the most destabilizing on average. And we also again see Stop codons due to NMD.
50 | ## most destabilized dipeptides
51 | After confirming that our effects corroborate previous studies in yeast, we decided to look more closely at the most destabilized pairs.
52 | Plotted on the left is the average mRNA level for each amino acid pair, with the amino acid in the first position on the x axis and the amino acid in the second position of the pair on the y axis, and the resultant mRNA level coded in color.
53 | We pulled out on the right, the dipeptides with the lowest mRNA levels in our assay compared to the median value (zero).
54 | We can see that many of these dipeptides are what we would expect to see (polylysines, polyarginines, polybasic sequences, and polytryptophan) because these are all known to cause RQC in yeast.
55 | The rest are all dipeptides that have not been previously identified to have an effect on mRNA levels in yeast (KW, RW, FK, PG, PD pairs).
56 | Overall, our assay pulls out all the known stalling sequences as well as a set of novel destabilizing sequences.
57 | ## translation dependent
58 | We were next interested in determining if the mRNA effects we observe for these pairs are actually dependent on translation and not transcription or underlying nucleotide sequence.
59 | One way we assayed for this was by doing a glucose depletion experiment.
60 | Glucose deprivation is known to shut off translation initation, and we find that when we do this the mRNA levels are restored for the known RQC substrates (polybasic sequences, polytryptophans), and for most of the novel destabilizing dipeptides.
61 | ## frameshift
62 | To confirm that the effects we observe are not due to underlying sequence content, we also did a frameshifted screen.
63 | The frameshifted screen is identical to the original, except that we delete two bases from the coding sequence upstream of the insert, and that shifts the insert out of frame while keeping all the sequences identical, and then we measured mRNA levels as before.
64 | We find that for the set of destabilized dipeptides, shifting the insert out of frame restores mRNA levels, meaning the effects we observe are not due to underlying features of the nucleotide sequence.
65 | ## conclusions so far
66 | ## known sequences and regulatory pathways
67 | Coming back to this slide describing the known sequences that trigger the need for quality control and then the quality control pathways that respond to them, we now know from our screen that there are actually a lot more sequences that may be under this type of surveillance than we previously understood.
68 | So our next question was - which of these regulatory pathways regulates the RNA decay of these novel destabilizing sequences?
69 | ## hel2-del full lib
70 | We put the same 4096 codon pair library into Hel2-deleted and Syh1-deleted yeast and performed large-scale deep-sequencing as before.
71 | Not5-deleted yeast cells turn out to have a major growth defect so we weren't able to do this large-scale screen on them, but we're doing some small-scale Not5 related revision experiments that I won't go into for this talk.
72 | We measure the mRNA levels of each codon pair exactly as before, and any sequences that are regulated by either Hel2 or Syh1 should see their mRNA levels restored or increased when that factor is deleted.
73 | ## average dipeptide mRNA levels
74 | Here are the mRNA levels for all dipeptides in the screen with the deletion strain on the y axis compared against the WT cells on the x axis. You can see that dipeptide mRNA levels for syh1-deleted cells correlate really well with those in WT cells, and there are no dipeptides that exist off-residual.
75 | Whereas in hel2-deleted cells, there is still very good correlation between dipeptide levels and the majority of values agree with each other, but there is a set of dipeptides that are off-residual so that means they are restored in hel2-deleted cells.
76 | ## most rescued
77 | Here again are the mRNA levels of the most destabilized dipeptides in WT cells overlayed with their mRNA levels in deletion cells. The set of dipeptides that were off-residual in Hel2-deleted cells are the top 14 dipeptides here, and it appears the RI/RL/AL dipeptides are not regulated by Hel2.
78 | ## known sequences
79 | The dipeptides that are destabilized through Hel2 include the known targets, which are the polybasic sequences and polytryptophan.
80 | That leaves WK, FK, RW, PD, and PG repeats that are destabilizing in WT cells and regulated by Hel2.
81 | ## posbulky
82 | We became interested in this particular pattern that a number of those dipeptides have, which is that they are comprised of positively charged residues with large and bulky residues.
83 | ## human cells
84 | One of the reasons why we were so interested in this pattern is because a former member of the lab, Phil Burke, had done an analogous codon pair screen in human cells, and one of the main things he found was that combinations of bulky and positively charged dipeptides were destabilizing in human cells.
85 | He went on in his paper to describe that there may be a structural reason for this related to peptide folding.
86 | We were interested in seeing if we could build on this understanding.
87 | ## conclusions so far
88 | Just to summarize what we've found so far:
89 | We first found that the putative RQC factor Syh1 on its own does not appear to regulate the destabilization of any dipeptide sequences in our screen.
90 | We found a set of novel destabilizing sequences that are regulated by Hel2 and a subset, RI/RL, that are not regulated by either Hel2 or Syh1.
91 | ## conclusions so far
92 | We know from Phil's paper that positively charged and bulky dipeptides are also destabilizing in human cells.
93 | ## how
94 | Our next question was - how do positively charged and bulky sequences stall ribosomes to trigger the Hel2-driven quality control that we've been observing?
95 | ## DMS design
96 | So to understand what the mechanism of stalling is for positively charged and bulky dipeptide repeats, we decided to do a deep mutational scan of the FK repeat dipeptide.
97 | The library is comprised of all the single-codon variants at each of the 16 total positions of the FK dipeptide repeat, so each location is mutated to all possible codons, and I'm just showing what that looks like for the variants at the first three positions out of 16 here.
98 | Conceptually, any mutation that relieves the stall or removes the stalling capacity of FK8 will result in increased mRNA levels at that position.
99 | We integrated this library into WT and Hel2-del yeast and deep-sequenced the libaries as before.
100 | ## DMS results
101 | These are our results from the deep mutational scan. The location of the mutation is noted on the x axis, so the FK dipeptide repeated 8x is 16 locations. The amino acid that each location is mutated to is shown on the y axis, and the original FK dipeptide (or the WT) is marked by these black x.
102 | The WT strain is on the left and hel2-deleted strain is on the right.
103 | Basically a deeper red means that the mutation destabilizing, while white means it relieves the stall.
104 | On the hel2-deleted side, the information we can get from this heat map is basically just that hel2 deletion restores mRNA levels compared to WT cells at every location.
105 | Now I'm going to walk through some of the main conclusions we make from this experiment in terms of how FK repeats stall ribosomes in WT cells.
106 | ## first 6
107 | The first observation is that mRNA levels for nearly all mutations from positions 1 to 6 are as low as the wild-type sequence, with the exception being proline.
108 | In these first 6 positions, we see that proline is the only mutation that consistently rescues mRNA levels, which makes sense because proline is known to limit the conformational flexibility of nascent peptides.
109 | ## 10 residues schematics
110 | We believe that this is consistent with 10 residues of FK being the minimum sequence to stall ribosomes, which I'm demonstrating in this schematic here.
111 | If the mutation occurs in any of the first 6 positions, there will always be 10 residues that are unperturbed and able to trigger stalling.
112 | ## NMD
113 | Another thing we noticed was that mRNA levels increase sharply when stop codons are present at positions 11 through 16.
114 | ## nmd schematic
115 | Since translation of premature stop codons will trigger mRNA decay through the RQC-independent NMD pathway, these results further suggest that a minimum of 10 residues of the FK dipeptide needs to be translated in order to trigger Hel2-driven RQC over NMD when the (FK)8 variants contain a stop codon.
116 | So that is being demonstrated here, where if the nonsense mutation (stop codon) is anywhere in the first 10 locations, then you would signal NMD first.
117 | Whereas if the nonsense mutation/stop codon is anywhere after the first 10 residues, then you would signal RQC first.
118 | ## posbulky 12/14
119 | We notice that at these internal sites, we can see various observations that involve charge and bulkiness.
120 | First, location 12 (and to a lesser extent location 14) within (FK)8 are the sole positions that require positively charged Arg or Lys to trigger Hel2-dependent RQC.
121 | ## posbulky wt is pos
122 | Next, if we look at some of these internal locations where the original amino acid is positively charged mutation to the bulkiest Trp residue can still trigger RQC, while mutations to other aromatic amino acids (Phe and Tyr) are insufficient.
123 | ## posbulky wt is bulky
124 | Conversely, at some locations where the original amino acid is bulky mutating to the bulkier Trp or to positively charged Arg or Lys maintains RQC.
125 | ## posbulky 7
126 | Finally, at position 7, where the original amino acid is Phe, mutations to other aromatic amino acids (Trp or Tyr) or to a negatively charged residue (Glu or Asp) triggers RQC, while mutating to positive charge is insufficient.
127 | ## Sdd1
128 | Interestingly, these results exhibit several similarities to the composite biochemical requirements for ribosome stalling observed at the only known endogenous RQC substrate in yeast, which resides in a gene of unknown function called Sdd1.
129 | On the left is a summary figure of our observations from the DMS, where we identified several location-specific residue types that appear to be required for ribosome stalling.
130 | On the right is a summary figure from a paper by Matsuo et al in 2020, where they did cryoEM in combination with alanine scanning and western blots to determine the residues that are required for triggering RQC for the Sdd1 endogenous stalling sequence.
131 | They found there's a requirement for positive charge at positions 207 and 209, requirement for aromatic residues at position 201, a requirement for aspartate at position 200, and a requirement for FF at the constriction site.
132 | We found these similarities really interesting, in particular the requisite positive charges near the peptidyl transferase center in either case as well as the requirement for negative charge at a very specific single location, and then bulkiness and aromaticity at various points further along the tunnel in either case.
133 | ## endogenous
134 | So speaking of endogenous sequences that trigger quality control, I mentioned that very little is known about what causes RQC endogenously.
135 | As I said, the stalling sequence in Sdd1 is currently the only known sequence that triggers Hel2-mediated RQC endogenously in yeast.
136 | So, the last thing we did was to see if our codon pair assay could yield any information with regards to endogenous yeast genes.
137 | To this end, we assayed 1900 fragments, each 48 nucleotides long, from endogenous mRNAs spanning a wide range of expression levels (derived from publically available ribosome profiling data) using the same reporter design as the codon pair library.
138 | We integrated this endogenous fragment library into wild-type cells and counted barcodes by high throughput barcode sequencing as before.
139 | We found that, compared to the codon pair library, mRNA levels in the endogenous fragment library were more tightly distributed around the median, indicating that endogenous sequences experience milder effects in terms of RNA decay.
140 | ## endogenous CSC
141 | We next calculated the codon stability coefficient (CSC) values for each of the 64 codons using mRNA levels either from the codon pair library or the endogenous fragment library.
142 | The codon stability coefficient is the Pearson correlation coefficient between codon frequency and mRNA level.
143 | We found strong correlation (r=0.67, p<1e-8) between the two libraries, indicating that mRNA effects of codon pair repeats can predict mRNA effects of endogenous sequence motifs in wild-type cells.
144 | ## endogenous hel2-del CSC
145 | We also integrated the endogenous fragment library into hel2△ cells and tested how Hel2 deletion affects this relationship.
146 | We found that hel2△ cells still exhibited a significant correlation (r=0.49, p<1e-4) between the two libraries, though to a lesser extent than in wild-type cells, which is again consistent with the majority of endogenous sequences not triggering prolonged ribosome collisions and not being mediated by Hel2.
147 | ## final conclusion
148 | Finally, I just want to summarize the landscape of ribosome stalling sequences and quality control as we understand it now.
149 | First, I think we've shown that a much wider diversity of mRNA sequences impact mRNA stability and trigger quality control than we previously appreciated.
150 | A subset of the novel destabilizing sequences we found are positively charged and bulky sequences, which our lab's previous paper has shown to be also destabilizing in human cells.
151 | For these, we showed that a complex combination of charge, sterics, and aromaticity are causing ribosome stalling that triggers RQC.
152 | Finally, in terms of the notoriously tricky task of finding endogenous sequences that trigger RQC, we find that our codon pair assay can predict mRNA levels of endogenous sequences.
153 | We also find that endogenous sequences appear not to trigger as much RNA decay or Hel2-driven RQC.
154 | This is consistent with the field's current understanding of endogenous RNA quality control, which is that under normal physiological circumstances most sequences do not impose such harsh ribosome stalls that that they need to be actively degraded by RQC machinery.
155 | So, it stands to reason that perhaps some stressors or deletion of multiple RQC factors at once may reveal this regulation, and we could explore that more down the road using this assay.
156 | ## thanks
157 | With that, I just want to thank my lab, the Subramaniam lab, especially Rasi, Heungwon and Phil, who were absolutely integral to the completion of this project.
158 | I'll shout out some more folks in the next section.
159 | I also want to shout out Dolores and the Genomics core for helping us out so much with all of the sequencing, this project quite literally wouldn't exist without them.
160 | Thank you to Luna, our department's IT specialist, for all your support in everything big and small.
161 | A huge thank you to my committee, I just remember every meeting we had I would walk out feeling really encouraged and excited to keep going, so thank you for your encouragement and support. And especially thank you to my reading committee for reading my thesis and giving me such thoughtful comments.
162 | Finally, thank you to the MCB admin for looking out for us all this time and making this process a lot easier than it would have been.
163 | Thank you all for your attention and I'll take any questions.
--------------------------------------------------------------------------------
/presentations/kchen/20241214_thesis_defense/presentation.md:
--------------------------------------------------------------------------------
1 | ---
2 | customTheme: "kchen-white"
3 | enableTitleFooter: false
4 | enableMenu: false
5 | enableChalkboard: false
6 | center: false
7 | controls: false
8 | progress: true
9 | slideNumber: true
10 | transition: no
11 |
12 | ---
13 |
14 | {width=100%}
15 |
16 | ---
17 |
18 | {width=100%}
19 |
20 | ---
21 |
22 | {width=100%}
23 |
24 | ---
25 |
26 | {width=100%}
27 |
28 | ---
29 |
30 | {width=100%}
31 |
32 | ---
33 |
34 | {width=100%}
35 |
36 | ---
37 |
38 | {width=100%}
39 |
40 | ---
41 |
42 | {width=100%}
43 |
44 | ---
45 |
46 | {width=100%}
47 |
48 | ---
49 |
50 | {width=100%}
51 |
52 | ---
53 |
54 | {width=100%}
55 |
56 | ---
57 |
58 | ---
59 |
60 | {width=100%}
61 |
62 | ---
63 |
64 | {width=100%}
65 |
66 | ---
67 |
68 | {width=100%}
69 |
70 | ---
71 |
72 | {width=100%}
73 |
74 | ---
75 |
76 | {width=100%}
77 |
78 | ---
79 |
80 | {width=100%}
81 |
82 | ---
83 |
84 | {width=100%}
85 |
86 | ---
87 |
88 | {width=100%}
89 |
90 | ---
91 |
92 | {width=100%}
93 |
94 | ---
95 |
96 | {width=100%}
97 |
98 | ---
99 |
100 | {width=100%}
101 |
102 | ---
103 |
104 | {width=100%}
105 |
106 | ---
107 |
108 | {width=100%}
109 |
110 | ---
111 |
112 | {width=100%}
113 |
114 | ---
115 |
116 | {width=100%}
117 |
118 | ---
119 |
120 | {width=100%}
121 |
122 | ---
123 |
124 | {width=100%}
125 |
126 | ---
127 |
128 | {width=100%}
129 |
130 | ---
131 |
132 |
133 | {width=100%}
134 |
135 | ---
136 |
137 | {width=100%}
138 |
139 | ---
140 |
141 | {width=100%}
142 |
143 | ---
144 |
145 | {width=100%}
146 |
147 | ---
148 |
149 | {width=100%}
150 |
151 | ---
152 |
153 | {width=100%}
154 |
155 | ---
156 |
157 | {width=100%}
158 |
159 | ---
160 |
161 | {width=100%}
162 |
163 | ---
164 |
165 | {width=100%}
166 |
167 | ---
168 |
169 | {width=100%}
170 |
171 | ---
172 |
173 | {width=100%}
174 |
175 | ---
176 |
177 | {width=100%}
178 |
179 | ---
180 |
181 | {width=100%}
182 |
183 | ---
184 |
185 | {width=100%}
186 |
187 | ---
188 |
189 | {width=100%}
190 |
191 | ---
192 |
193 | {width=100%}
194 |
195 | ---
196 |
197 | {width=100%}
198 |
199 | ---
200 |
201 |
202 | {width=100%}
203 |
204 | ---
205 |
206 | {width=100%}
207 |
208 | ---
209 |
210 | {width=100%}
211 |
212 | ---
213 |
214 | {width=100%}
215 |
216 | ---
217 |
218 | {width=100%}
219 |
220 | ---
221 |
222 | {width=100%}
223 |
224 | ---
225 |
--------------------------------------------------------------------------------