├── .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 | image/svg+xmlLiterature reviewHypothesis formulationExperiment designSet up GitHubGitHub workflow for laboratory researchExperiment executionData storageData analysis1. Open issue on GitHub repository2. Write description, pick assignees and labels3. Solicit comment from collaborators1. Create GitHub accounts for group and users2. Set up separate repositories for projects1. Create metadata table for experimental variables2. Push sample metadata and small data to GitHub repository3. Push large data to private or public storage servers1. Write analysis scripts in Visual Studio Code2. Perform data analysis in software containers3. Push scripts, figures, tables to GitHub repositoryData interpretationPlanning next stepsProject management1. Post figures as Issue comment with link to commits2. Discuss interpretation and troubleshooting with collaborators3. Close issue with conclusions and links to related issues1. Assign Issues to project board on GitHub2. Set priority, due date, milestones3. Discuss and update board at project meetings1. Write as Markdown files and push to GitHub2. Convert to desired format using Pandoc3. Draw figures as scalable vector graphics1. Start lab notebook entry as a Markdown file2. Update as experiment progresses3. Record changes as commits, push to GitHub repositoryGrantsPresentationsManuscripts 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 | image/svg+xmlexperiments |--LABMEMBER_A |--ISSUENUMBER_1_lab_notebook_ngs_short_desc.md |--LABMEMBER_B |--ISSUENUMBER_2_lab_notebook_flow_short_desc.mdmanuscripts |--USER |--manuscript_short_name |--maintext |--maintext.md |--bibliography.yaml |--latex_template.tex |--bibliography_style.csl |--svg |--figure_1.svg |--figure_2.svg |--cover_letter |--cover_letter.md |--latex_template.texgrants |--USER |--YYYY_grant_short_name |--research_proposal.md |--bibliography.yaml |--latex_template.tex |--bibliography_style.csl |--svg |--figure_1.svg |--figure_2.svg |--project_abstract.md |--budget_justification.mdpresentations |--USER |--YYYYMMDD_presentation_short_desc |--presentation.md |--html_style.css |--svg |--figure-1.svg |--figure-2.svganalysis |--LABMEMBER_A |--ANALYSIS_TYPE (eg. NGS) |--ISSUENUMBER_1_short_desc |--data |--data_type_1 (eg. genome) |--chromosome.fasta |--data_type_2 (eg. sra) |--SRRnnnnnn.fastq.symbolic_link |--scripts |--analyze_in_R_python.ipynb |--snakemake_workflow.smk |--download_data_from_remote_folder.sh |--annotations |--sample_metadata.csv |--tables |--processed_summary_table.csv |--figures |--summary_fig.png |--LABMEMBER_B |--ANALYSIS_TYPE (eg. flow) |--ISSUENUMBER_2_short_desc |--data |--data_type_1 (eg. facs) |--sample_1.fcs |--sample_2.fcs |--scripts |--analyze_in_R_python.ipynb |--annotations |--sample_metadata.csv |--tables |--processed_summary_table.csv |--figures |--summary_fig.pngStandardized folder structure within GitHub repositories for laboratory projects 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 | image/svg+xmlGitHub PackagesInteractive container use in VScodeDev Containers extensionRemote-Tunnels extensionContainer use in Snakemake workflowsrule RULE_NAME: container: docker://ghcr.io/rasilab/r:1.0.0GitHub repositories for DockerfilesDocker commandsSoftware ecosystem for using containersDockerfileghcr.io/rasilab/r:1.0.0ghcr.io/rasilab/python:1.0.0ghcr.io/rasilab/pandoc-latex:1.3.0docker build --tag ghcr.io/rasilab/r:1.0.0 .docker push ghcr.io/rasilab/r:1.0.0docker pull ghcr.io/rasilab/r:1.0.0FROM miniconda:4.12.0RUN conda install r r-tidyverse jupyterRUN conda install bioconductor-plyrangeshttps://github.com/rasilab/rhttps://github.com/rasilab/pythonhttps://github.com/rasilab/pandoc-latex 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 | 5 | 6 | Orcid logo 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /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 | ![](./svg/0_title.svg){width=100%} 15 | 16 | --- 17 | 18 | ![](./svg/1_central_dogma.svg){width=100%} 19 | 20 | --- 21 | 22 | ![](./svg/2_translation_and_decay_important.svg){width=100%} 23 | 24 | --- 25 | 26 | ![](./svg/3_simple_translation.svg){width=100%} 27 | 28 | --- 29 | 30 | ![](./svg/4_canonical_translation_decay_factor_binding.svg){width=100%} 31 | 32 | --- 33 | 34 | ![](./svg/5_cds_more_than_protein_sequence.svg){width=100%} 35 | 36 | --- 37 | 38 | ![](./svg/6_cds_ribosome_collision.svg){width=100%} 39 | 40 | --- 41 | 42 | ![](./svg/7_cds_ribosome_collision_rqc.svg){width=100%} 43 | 44 | --- 45 | 46 | ![](./svg/8_cds_ribosome_collision_rqc.svg){width=100%} 47 | 48 | --- 49 | 50 | ![](./svg/8b_cds_ribosome_collision_rqc.svg){width=100%} 51 | 52 | --- 53 | 54 | ![](./svg/9_rqc_sequences.svg){width=100%} 55 | 56 | --- 57 | 58 | --- 59 | 60 | ![](./svg/10_integrating_library.svg){width=100%} 61 | 62 | --- 63 | 64 | ![](./svg/11a_destabilized_dicodons.svg){width=100%} 65 | 66 | --- 67 | 68 | ![](./svg/11b_aggregate_codon_effects.svg){width=100%} 69 | 70 | --- 71 | 72 | ![](./svg/11c_aggregate_codon_effects.svg){width=100%} 73 | 74 | --- 75 | 76 | ![](./svg/11d_aggregate_codon_effects.svg){width=100%} 77 | 78 | --- 79 | 80 | ![](./svg/12b_destabilized_dipeptides.svg){width=100%} 81 | 82 | --- 83 | 84 | ![](./svg/12c_destabilized_dipeptides.svg){width=100%} 85 | 86 | --- 87 | 88 | ![](./svg/12d_destabilized_dipeptides.svg){width=100%} 89 | 90 | --- 91 | 92 | ![](./svg/13a_conclusions_so_far.svg){width=100%} 93 | 94 | --- 95 | 96 | ![](./svg/13b_hel2_syh1.svg){width=100%} 97 | 98 | --- 99 | 100 | ![](./svg/13c_hel2_syh1.svg){width=100%} 101 | 102 | --- 103 | 104 | ![](./svg/13d_hel2_syh1.svg){width=100%} 105 | 106 | --- 107 | 108 | ![](./svg/13e_hel2_syh1.svg){width=100%} 109 | 110 | --- 111 | 112 | ![](./svg/14a_hel2_syh1.svg){width=100%} 113 | 114 | --- 115 | 116 | ![](./svg/14b_hel2_syh1.svg){width=100%} 117 | 118 | --- 119 | 120 | ![](./svg/14c_hel2_syh1.svg){width=100%} 121 | 122 | --- 123 | 124 | ![](./svg/14d_hel2_syh1.svg){width=100%} 125 | 126 | --- 127 | 128 | ![](./svg/14e_hel2_syh1.svg){width=100%} 129 | 130 | --- 131 | 132 | 133 | ![](./svg/15c_conclusions.svg){width=100%} 134 | 135 | --- 136 | 137 | ![](./svg/15d_conclusions.svg){width=100%} 138 | 139 | --- 140 | 141 | ![](./svg/15e_conclusions.svg){width=100%} 142 | 143 | --- 144 | 145 | ![](./svg/16a_dms_schematic.svg){width=100%} 146 | 147 | --- 148 | 149 | ![](./svg/16b_dms_schematic.svg){width=100%} 150 | 151 | --- 152 | 153 | ![](./svg/16d_dms_schematic.svg){width=100%} 154 | 155 | --- 156 | 157 | ![](./svg/16e_dms_schematic.svg){width=100%} 158 | 159 | --- 160 | 161 | ![](./svg/16f_dms_schematic.svg){width=100%} 162 | 163 | --- 164 | 165 | ![](./svg/16g_dms_schematic.svg){width=100%} 166 | 167 | --- 168 | 169 | ![](./svg/17_dms_nmd.svg){width=100%} 170 | 171 | --- 172 | 173 | ![](./svg/17b_dms_nmd.svg){width=100%} 174 | 175 | --- 176 | 177 | ![](./svg/17c_dms_nmd.svg){width=100%} 178 | 179 | --- 180 | 181 | ![](./svg/18_dms_posbulky.svg){width=100%} 182 | 183 | --- 184 | 185 | ![](./svg/18b_dms_posbulky.svg){width=100%} 186 | 187 | --- 188 | 189 | ![](./svg/18c_dms_posbulky.svg){width=100%} 190 | 191 | --- 192 | 193 | ![](./svg/18d_dms_posbulky.svg){width=100%} 194 | 195 | --- 196 | 197 | ![](./svg/18e_dms_posbulky.svg){width=100%} 198 | 199 | --- 200 | 201 | 202 | ![](./svg/19_sdd1.svg){width=100%} 203 | 204 | --- 205 | 206 | ![](./svg/21a_endo_screen.svg){width=100%} 207 | 208 | --- 209 | 210 | ![](./svg/21b_endo_screen.svg){width=100%} 211 | 212 | --- 213 | 214 | ![](./svg/21c_endo_screen.svg){width=100%} 215 | 216 | --- 217 | 218 | ![](./svg/22_conclusions.svg){width=100%} 219 | 220 | --- 221 | 222 | ![](./svg/thanks.svg){width=100%} 223 | 224 | --- 225 | --------------------------------------------------------------------------------