├── Chemicals in the Lab ├── preamble.tex ├── _book ├── robots.txt ├── img │ └── creative_commons.png ├── site_libs │ ├── bootstrap │ │ └── bootstrap-icons.woff │ ├── quarto-html │ │ ├── tippy.css │ │ ├── quarto-syntax-highlighting-2f5df379a58b258e96c21c0638c20c03.css │ │ ├── anchor.min.js │ │ ├── popper.min.js │ │ └── tippy.umd.min.js │ ├── quarto-nav │ │ ├── headroom.min.js │ │ └── quarto-nav.js │ ├── clipboard │ │ └── clipboard.min.js │ └── quarto-search │ │ └── fuse.min.js ├── sitemap.xml └── index.html ├── wiki ├── fork.png ├── fork2.png ├── edit-file.png ├── gh-pages.png ├── new-repo.png ├── new-repo2.png ├── settings.png ├── edit-file2.png ├── pages-build.png ├── Pages-gh-pages.png ├── commit-changes.png ├── fork-location.png ├── published-copy.png ├── Pages-gh-pages2.png ├── actions-secrets.png ├── commit-changes2.png ├── published-copy2.png ├── set-website-url.png ├── fork-uncheck-main.png ├── pages-build-deploy.png ├── published-changes.png ├── published-changes2.png ├── settings-newsecret.png ├── publishing-new-changes.png ├── publishing-new-changes2.png └── Screen Shot 2022-01-06 at 5.43.57 PM.png ├── img └── creative_commons.png ├── .gitignore ├── wiki_step_5_6.md ├── how_we_work.Rproj ├── book.bib ├── README.md ├── .github └── workflows │ └── quarto-publish.yml ├── _quarto.yml ├── references.bib ├── index.qmd ├── README_FeyLab.md ├── offboarding.qmd ├── Chemicals in the Lab.qmd ├── style.css ├── packages.bib ├── working_agreement.qmd ├── data-management.qmd ├── onboarding.qmd ├── phd_guide.qmd └── LICENSE /Chemicals in the Lab: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /preamble.tex: -------------------------------------------------------------------------------- 1 | \usepackage{booktabs} 2 | -------------------------------------------------------------------------------- /_book/robots.txt: -------------------------------------------------------------------------------- 1 | Sitemap: https://pinskylab.github.io/how_we_work/sitemap.xml 2 | -------------------------------------------------------------------------------- /wiki/fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/fork.png -------------------------------------------------------------------------------- /wiki/fork2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/fork2.png -------------------------------------------------------------------------------- /wiki/edit-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/edit-file.png -------------------------------------------------------------------------------- /wiki/gh-pages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/gh-pages.png -------------------------------------------------------------------------------- /wiki/new-repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/new-repo.png -------------------------------------------------------------------------------- /wiki/new-repo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/new-repo2.png -------------------------------------------------------------------------------- /wiki/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/settings.png -------------------------------------------------------------------------------- /wiki/edit-file2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/edit-file2.png -------------------------------------------------------------------------------- /wiki/pages-build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/pages-build.png -------------------------------------------------------------------------------- /wiki/Pages-gh-pages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/Pages-gh-pages.png -------------------------------------------------------------------------------- /wiki/commit-changes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/commit-changes.png -------------------------------------------------------------------------------- /wiki/fork-location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/fork-location.png -------------------------------------------------------------------------------- /wiki/published-copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/published-copy.png -------------------------------------------------------------------------------- /img/creative_commons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/img/creative_commons.png -------------------------------------------------------------------------------- /wiki/Pages-gh-pages2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/Pages-gh-pages2.png -------------------------------------------------------------------------------- /wiki/actions-secrets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/actions-secrets.png -------------------------------------------------------------------------------- /wiki/commit-changes2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/commit-changes2.png -------------------------------------------------------------------------------- /wiki/published-copy2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/published-copy2.png -------------------------------------------------------------------------------- /wiki/set-website-url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/set-website-url.png -------------------------------------------------------------------------------- /wiki/fork-uncheck-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/fork-uncheck-main.png -------------------------------------------------------------------------------- /wiki/pages-build-deploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/pages-build-deploy.png -------------------------------------------------------------------------------- /wiki/published-changes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/published-changes.png -------------------------------------------------------------------------------- /wiki/published-changes2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/published-changes2.png -------------------------------------------------------------------------------- /wiki/settings-newsecret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/settings-newsecret.png -------------------------------------------------------------------------------- /_book/img/creative_commons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/_book/img/creative_commons.png -------------------------------------------------------------------------------- /wiki/publishing-new-changes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/publishing-new-changes.png -------------------------------------------------------------------------------- /wiki/publishing-new-changes2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/publishing-new-changes2.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | .Ruserdata 5 | onboarding.Rmd 6 | offboarding.Rmd 7 | .DS_Store 8 | 9 | /.quarto/ 10 | -------------------------------------------------------------------------------- /wiki/Screen Shot 2022-01-06 at 5.43.57 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/wiki/Screen Shot 2022-01-06 at 5.43.57 PM.png -------------------------------------------------------------------------------- /_book/site_libs/bootstrap/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pinskylab/how_we_work/HEAD/_book/site_libs/bootstrap/bootstrap-icons.woff -------------------------------------------------------------------------------- /wiki_step_5_6.md: -------------------------------------------------------------------------------- 1 | 5. .... To do this, go back to 'Settings' and click 'Secrets' then 'Actions'. 2 | 3 | 6. Click 'New Repositoy Secret' then Add a 'Secret' ... 4 | 5 | ![](actions-secrets.png] 6 | -------------------------------------------------------------------------------- /how_we_work.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | -------------------------------------------------------------------------------- /book.bib: -------------------------------------------------------------------------------- 1 | @Book{xie2015, 2 | title = {Dynamic Documents with {R} and knitr}, 3 | author = {Yihui Xie}, 4 | publisher = {Chapman and Hall/CRC}, 5 | address = {Boca Raton, Florida}, 6 | year = {2015}, 7 | edition = {2nd}, 8 | note = {ISBN 978-1498716963}, 9 | url = {http://yihui.org/knitr/}, 10 | } 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Pinsky Lab Guide 2 | 3 | Welcome! This repo serves as a central hub for information on our values and how we work together. In particular, please see our: 4 | 5 | - [Working Agreement](working_agreement.qmd) 6 | - [Onboard Guide](onboarding.qmd) for new members 7 | - [Data Management Guide](data-management.qmd) for open science 8 | - [Notes on a Phd degree in the GCRG](phd_guide.qmd) 9 | - [Offboarding Guide](offboarding.qmd) 10 | 11 | It's also worth checking out our [Methods repo](https://github.com/pinskylab/pinskylab_methods), including our [Cookbook](https://github.com/pinskylab/pinskylab_methods/blob/master/cookbook.md) on how to solve common research problems we all face. We also have an older [Laboratory repo](https://pinskylab.github.io/laboratory/). 12 | -------------------------------------------------------------------------------- /.github/workflows/quarto-publish.yml: -------------------------------------------------------------------------------- 1 | on: 2 | push: 3 | branches: master 4 | 5 | name: Render and Publish 6 | 7 | jobs: 8 | build-deploy: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Check out repository 12 | uses: actions/checkout@v2 13 | 14 | - name: Set up Quarto 15 | uses: quarto-dev/quarto-actions/setup@v2 16 | with: 17 | # To install LaTeX to build PDF book 18 | tinytex: true 19 | # uncomment below and fill to pin a version 20 | # version: 0.9.600 21 | 22 | - name: Publish to GitHub Pages (and render) 23 | uses: quarto-dev/quarto-actions/publish@v2 24 | with: 25 | target: gh-pages 26 | env: 27 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # this secret is always available for github actions 28 | -------------------------------------------------------------------------------- /_quarto.yml: -------------------------------------------------------------------------------- 1 | project: 2 | type: book 3 | output-dir: _book 4 | 5 | book: 6 | title: "Global Change Research Group How We Work" 7 | author: "Roy Roberts" 8 | date: last-modified 9 | description: "This is the lab manual for the Global Change Research Group at the University of California Santa Cruz" 10 | 11 | page-footer: 12 | left: | 13 | Global Change Research Group 14 | right: | 15 | This book was built with Quarto. 16 | site-url: https://pinskylab.github.io/how_we_work/ 17 | repo-url: https://github.com/pinskylab/how_we_work/ 18 | repo-actions: [edit,issue] 19 | 20 | chapters: 21 | - index.qmd 22 | - working_agreement.qmd 23 | - onboarding.qmd 24 | - data-management.qmd 25 | - phd_guide.qmd 26 | - offboarding.qmd 27 | 28 | 29 | 30 | # not sure what the following line does; those files are present 31 | bibliography: [references.bib, book.bib] 32 | 33 | -------------------------------------------------------------------------------- /references.bib: -------------------------------------------------------------------------------- 1 | 2 | @article{lowndes2017, 3 | title = {Our path to better science in less time using open data science tools}, 4 | author = {Lowndes, Julia S. Stewart and Best, Benjamin D. and Scarborough, Courtney and Afflerbach, Jamie C. and Frazier, Melanie R. and {O{\textquoteright}Hara}, Casey C. and Jiang, Ning and Halpern, Benjamin S.}, 5 | year = {2017}, 6 | month = {05}, 7 | date = {2017-05-23}, 8 | journal = {Nature Ecology & Evolution}, 9 | volume = {1}, 10 | number = {6}, 11 | doi = {10.1038/s41559-017-0160}, 12 | url = {http://dx.doi.org/10.1038/s41559-017-0160}, 13 | langid = {en} 14 | } 15 | 16 | @article{wilson2017, 17 | title = {Good enough practices in scientific computing}, 18 | author = {Wilson, Greg and Bryan, Jennifer and Cranston, Karen and Kitzes, Justin and Nederbragt, Lex and Teal, Tracy K.}, 19 | editor = {Ouellette, Francis}, 20 | year = {2017}, 21 | month = {06}, 22 | date = {2017-06-22}, 23 | journal = {PLOS Computational Biology}, 24 | pages = {e1005510}, 25 | volume = {13}, 26 | number = {6}, 27 | doi = {10.1371/journal.pcbi.1005510}, 28 | url = {http://dx.doi.org/10.1371/journal.pcbi.1005510}, 29 | langid = {en} 30 | } 31 | -------------------------------------------------------------------------------- /_book/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | https://pinskylab.github.io/how_we_work/index.html 5 | 2025-02-28T23:59:40.542Z 6 | 7 | 8 | https://pinskylab.github.io/how_we_work/working_agreement.html 9 | 2025-02-28T23:59:41.196Z 10 | 11 | 12 | https://pinskylab.github.io/how_we_work/onboarding.html 13 | 2025-03-11T20:58:22.491Z 14 | 15 | 16 | https://pinskylab.github.io/how_we_work/data-management.html 17 | 2025-03-11T19:09:30.125Z 18 | 19 | 20 | https://pinskylab.github.io/how_we_work/phd_guide.html 21 | 2025-02-28T23:59:40.557Z 22 | 23 | 24 | https://pinskylab.github.io/how_we_work/DataBackupPlan.html 25 | 2025-02-28T23:59:40.487Z 26 | 27 | 28 | https://pinskylab.github.io/how_we_work/offboarding.html 29 | 2025-02-28T23:59:40.544Z 30 | 31 | 32 | -------------------------------------------------------------------------------- /_book/site_libs/quarto-html/tippy.css: -------------------------------------------------------------------------------- 1 | .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} -------------------------------------------------------------------------------- /index.qmd: -------------------------------------------------------------------------------- 1 | # Welcome! 2 | 3 |
4 | This is the lab manual for the Global Change Research Group at the University of California, Santa Cruz. We study how species adapt to rapidly changing environments to inform global stewardship and train the next generation of scientific leaders. More about our group's research can be found on our [website](https://globalchange.sites.ucsc.edu/){target="_blank"}. 5 | 6 | This lab manual resource is intended to provide an overview for lab members and others about how we do our work, and our expectations for our team. It is also a space to document institutional knowledge and for important information about procedures and available resources. Lab protocol and methods can be found in a separate book [Pinsky Lab Methods](https://github.com/pinskylab/pinskylab_methods){target="_blank"}. 7 | 8 | This book is based on the [Feylab Lab Manual](https://thefaylab.github.io/lab-manual/){target="_blank"}. Because this repo existed proir, the Feylab Lab Manual repo was not forked and instead the structure and format were imitated. If interested in creating a similar please visit the [Feylab Lab Manual Repo](https://github.com/thefaylab/lab-manual){target="_blank"} or see [Quick steps to making a copy of the lab manual and publishing it](https://github.com/thefaylab/lab-manual/wiki/Quick-steps-to-making-a-copy-of-the-lab-manual-&-publishing-it){target="_blank"}! 9 | 10 | ------------------------------------------------------------------------ 11 | 12 | [![](img/creative_commons.png)](http://creativecommons.org/licenses/by/4.0/){fig-alt="Creative Commons License"}This lab is licensed under a [Creative Commons Attribution 4.0 International License.](http://creativecommons.org/licenses/by/4.0/){target="_blank"} 13 | -------------------------------------------------------------------------------- /README_FeyLab.md: -------------------------------------------------------------------------------- 1 |

2 | :sparkles: Welcome to the Faylab Lab Manual! :sparkles: 3 |

4 | 5 | 6 | This ~~bookdown~~ Quarto book is intended to be used for **incoming, current, and outgoing** members of the Fay lab group. If we missed anything, please let Gavin Fay (gfay@umassd.edu) or Madeleine Guyant (mguyant@umassd.edu) know. You can also do a pull request and we will review the changes. 7 | 8 | We hope this has all the answers you need! 9 | 10 | 11 | __Want to adapt the lab manual for your group?__ This [short tutorial](https://github.com/thefaylab/lab-manual/wiki/Quick-steps-to-making-a-copy-of-the-lab-manual-&-publishing-it) steps through how to make your own copy of the lab manual repository and set it up so that it automatically publishes the book to the web (and updates as you make changes). 12 | 13 | **Acknowledgements** 14 | 15 | The content for this book was developed as part of our group’s participation in the Openscapes Champions program. 16 | We are extremely grateful to and acknowledge [Dr. Julia Stewart Lowndes](https://github.com/jules32)’ role in helping shape how our lab both works and how we articulate our identity. 🙏 17 | Thanks also to [Ileana Fenwick](https://github.com/IleanaF) and [Stefanie Butland](https://github.com/stefaniebutland) for their work moving the lab-manual from bookdown to Quarto. 🙌 18 | 19 | --- 20 | 21 | Creative Commons License  The Faylab Lab Manual is licensed under a Creative Commons Attribution 4.0 International License. 22 | 23 | 24 | -------------------------------------------------------------------------------- /offboarding.qmd: -------------------------------------------------------------------------------- 1 | Offboarding 2 | ================ 3 | 4 | With thanks to the [Bahlai lab](https://github.com/BahlaiLab) for the model and inspiration. 5 | 6 | General project documentation 7 | ----------------------------- 8 | * Make sure each of your projects complies with our [Data Management Plan](https://github.com/pinskylab/how_we_work/blob/master/data-management.md) 9 | 10 | Data questions to consider 11 | -------------------------- 12 | * Has the [Data Management Policy](https://github.com/pinskylab/how_we_work/blob/master/data-management.md) been taken into consideration? 13 | * Is all data backed up in locations accessible to the lab? 14 | * Is all metadata accessible? 15 | * Are all scripts well documented? 16 | 17 | Other 18 | ---- 19 | 1. Turn in keys 20 | 1. Turn in computer or other equipment 21 | 1. Return books 22 | 23 | Exit interview 24 | -------------- 25 | Set up a time to talk with your mentor about: 26 | 1. What was the best part of being here? 27 | 1. What did you learn while you were here? 28 | 1. Did you get the support you needed, or could we have been better at it? 29 | 1. What can we improve for mentoring someone in your position in the future? 30 | 31 | Write-up (for undergrads) 32 | ------------------------- 33 | Write up a summary of your work with the following components: 34 | 1. Goals of the project 35 | 1. Methods 36 | * detailed enough that someone could replicate your work 37 | * explain any decisions you made and why 38 | * link to and describe the input data for the project 39 | * link to the project outputs 40 | * include descriptions of metadata, any column headers in data sheets 41 | 1. Summary of findings 42 | 1. Potential next steps (could be a starting point for you at a later point or someone else) 43 | The write-up can be a markdown document within your repository or a Google Doc. If you use a Google Doc, please link to it from the README within the repository, make sure the settings are such that anyone with the link can access it, and upload a saved pdf version to the repository. 44 | -------------------------------------------------------------------------------- /Chemicals in the Lab.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Chemicals in the Lab" 3 | format: html 4 | editor: visual 5 | --- 6 | Welcome! 7 | ========== 8 | This page has information regarding chemicals that can be found within the Pinsky Lab. 9 | 10 | A.1 Chemical Safety 11 | ---------- 12 | [Chemical Spill information](https://ehs.ucsc.edu/programs/research-safety/lab-emergency-guidelines.html#chemical) 13 | 14 | [Personal Injury Response with Chemical Spills](https://ehs.ucsc.edu/programs/research-safety/lab-emergency-guidelines.html#personal-injury) 15 | 16 | [Injury Response and Management](https://ehs.ucsc.edu/lab-safety-manual/exp-acc-emerg.html#Injury) 17 | 18 | If an accident or near-miss happens, please report it using the [UCSC EH&S Incident Reporting Form](https://docs.google.com/forms/d/e/1FAIpQLSfZj7xQVDT_UArCsGQHkMi30q2qj3MLUE1-1e9TjvmWKavJ0g/viewform) 19 | 20 | As per CalOSHA regulations, we have [Safety Data Sheets](https://ehs.ucop.edu/sds/#/) readily available 21 | 22 | A.2 Chemical Recipes 23 | ---------- 24 | Everything you should need will be found in the 25 | [Chemical Recipe Google Doc](https://docs.google.com/document/d/1icJzzbUOlbbLN221T4c9fG3M7Rr6MUjOG8mMEJoAjzA/edit?usp=sharing) 26 | 27 | A.3 Recycling Silica Beads 28 | ---------- 29 | 1. One bag at a time pour beads into strainer 30 | 2. Pick through with forceps and remove anything that isn’t silica gel and silica with residue 31 | 3. Slowly transfer beads from strainer to baking pan or box, still working on that, and while pouring scan for missed debris 32 | 4. Take care not to over fill pan 33 | 5. After filling, place a paper towel over the beads and move the pan to the drying oven set at 75 C. Let dry overnight. 34 | 6. Based on testing 75 C for a longer period of time is fine. All the beads go back to the nice orange color 35 | 7. Remove the tray of beads from the drying oven and place into the “Used Not Sterilized” bead container. If left out they will start to collect moisture immediately 36 | 8. When ready to make sampling kits weigh out 40 g of beads and place into a ziploc bag. 37 | 9. Do not put hot beads in ziploc bags they will melt straight through it 38 | 10. Perform UV sterilization for each bag making sure that beads are not overlapping 39 | ---------- 40 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | Fonts css from Alison Hill: 4 | Lato (headers) 5 | Noto Serif (body) 6 | Fira Code (code) 7 | Sofia (script) 8 | */ 9 | 10 | @import url(https://fonts.googleapis.com/css?family=Lato); 11 | @import url(https://fonts.googleapis.com/css?family=Inconsolata:400,700); 12 | @import url(https://fonts.googleapis.com/css?family=Noto+Serif); 13 | @import url(https://fonts.googleapis.com/css?family=Sofia); 14 | 15 | 16 | @font-face{ 17 | font-family: 'Fira Code'; 18 | src: url('eot/FiraCode-Light.eot'); 19 | src: url('eot/FiraCode-Light.eot') format('embedded-opentype'), 20 | url('woff2/FiraCode-Light.woff2') format('woff2'), 21 | url('woff/FiraCode-Light.woff') format('woff'), 22 | url('ttf/FiraCode-Light.ttf') format('truetype'); 23 | font-weight: 300; 24 | font-style: normal; 25 | } 26 | 27 | @font-face{ 28 | font-family: 'Fira Code'; 29 | src: url('eot/FiraCode-Regular.eot'); 30 | src: url('eot/FiraCode-Regular.eot') format('embedded-opentype'), 31 | url('woff2/FiraCode-Regular.woff2') format('woff2'), 32 | url('woff/FiraCode-Regular.woff') format('woff'), 33 | url('ttf/FiraCode-Regular.ttf') format('truetype'); 34 | font-weight: 400; 35 | font-style: normal; 36 | } 37 | 38 | @font-face{ 39 | font-family: 'Fira Code'; 40 | src: url('eot/FiraCode-Medium.eot'); 41 | src: url('eot/FiraCode-Medium.eot') format('embedded-opentype'), 42 | url('woff2/FiraCode-Medium.woff2') format('woff2'), 43 | url('woff/FiraCode-Medium.woff') format('woff'), 44 | url('ttf/FiraCode-Medium.ttf') format('truetype'); 45 | font-weight: 500; 46 | font-style: normal; 47 | } 48 | 49 | @font-face{ 50 | font-family: 'Fira Code'; 51 | src: url('eot/FiraCode-Bold.eot'); 52 | src: url('eot/FiraCode-Bold.eot') format('embedded-opentype'), 53 | url('woff2/FiraCode-Bold.woff2') format('woff2'), 54 | url('woff/FiraCode-Bold.woff') format('woff'), 55 | url('ttf/FiraCode-Bold.ttf') format('truetype'); 56 | font-weight: 700; 57 | font-style: normal; 58 | } 59 | 60 | body { 61 | font-family: 'Noto Serif', 'Palatino Linotype', 'Book Antiqua', Palatino, 'Microsoft YaHei', 'Songti SC', serif; 62 | } 63 | 64 | h1, h2, h3 { 65 | font-family: 'Lato'; 66 | } 67 | 68 | 69 | p.caption { 70 | color: #777; 71 | margin-top: 10px; 72 | } 73 | p code { 74 | white-space: inherit; 75 | } 76 | pre { 77 | word-break: normal; 78 | word-wrap: normal; 79 | } 80 | pre code { 81 | white-space: inherit; 82 | } 83 | 84 | 85 | -------------------------------------------------------------------------------- /packages.bib: -------------------------------------------------------------------------------- 1 | @Manual{R-base, 2 | title = {R: A Language and Environment for Statistical Computing}, 3 | author = {{R Core Team}}, 4 | organization = {R Foundation for Statistical Computing}, 5 | address = {Vienna, Austria}, 6 | year = {2019}, 7 | url = {https://www.R-project.org/}, 8 | } 9 | @Manual{R-bookdown, 10 | title = {bookdown: Authoring Books and Technical Documents with R Markdown}, 11 | author = {Yihui Xie}, 12 | year = {2019}, 13 | note = {R package version 0.16}, 14 | url = {https://CRAN.R-project.org/package=bookdown}, 15 | } 16 | @Manual{R-knitr, 17 | title = {knitr: A General-Purpose Package for Dynamic Report Generation in R}, 18 | author = {Yihui Xie}, 19 | year = {2019}, 20 | note = {R package version 1.26}, 21 | url = {https://CRAN.R-project.org/package=knitr}, 22 | } 23 | @Manual{R-rmarkdown, 24 | title = {rmarkdown: Dynamic Documents for R}, 25 | author = {JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang and Richard Iannone}, 26 | year = {2019}, 27 | note = {R package version 1.18}, 28 | url = {https://CRAN.R-project.org/package=rmarkdown}, 29 | } 30 | @Book{bookdown2016, 31 | title = {bookdown: Authoring Books and Technical Documents with {R} Markdown}, 32 | author = {Yihui Xie}, 33 | publisher = {Chapman and Hall/CRC}, 34 | address = {Boca Raton, Florida}, 35 | year = {2016}, 36 | note = {ISBN 978-1138700109}, 37 | url = {https://github.com/rstudio/bookdown}, 38 | } 39 | @Book{knitr2015, 40 | title = {Dynamic Documents with {R} and knitr}, 41 | author = {Yihui Xie}, 42 | publisher = {Chapman and Hall/CRC}, 43 | address = {Boca Raton, Florida}, 44 | year = {2015}, 45 | edition = {2nd}, 46 | note = {ISBN 978-1498716963}, 47 | url = {https://yihui.name/knitr/}, 48 | } 49 | @InCollection{knitr2014, 50 | booktitle = {Implementing Reproducible Computational Research}, 51 | editor = {Victoria Stodden and Friedrich Leisch and Roger D. Peng}, 52 | title = {knitr: A Comprehensive Tool for Reproducible Research in {R}}, 53 | author = {Yihui Xie}, 54 | publisher = {Chapman and Hall/CRC}, 55 | year = {2014}, 56 | note = {ISBN 978-1466561595}, 57 | url = {http://www.crcpress.com/product/isbn/9781466561595}, 58 | } 59 | @Book{rmarkdown2018, 60 | title = {R Markdown: The Definitive Guide}, 61 | author = {Yihui Xie and J.J. Allaire and Garrett Grolemund}, 62 | publisher = {Chapman and Hall/CRC}, 63 | address = {Boca Raton, Florida}, 64 | year = {2018}, 65 | note = {ISBN 9781138359338}, 66 | url = {https://bookdown.org/yihui/rmarkdown}, 67 | } 68 | -------------------------------------------------------------------------------- /_book/site_libs/quarto-html/quarto-syntax-highlighting-2f5df379a58b258e96c21c0638c20c03.css: -------------------------------------------------------------------------------- 1 | /* quarto syntax highlight colors */ 2 | :root { 3 | --quarto-hl-ot-color: #003B4F; 4 | --quarto-hl-at-color: #657422; 5 | --quarto-hl-ss-color: #20794D; 6 | --quarto-hl-an-color: #5E5E5E; 7 | --quarto-hl-fu-color: #4758AB; 8 | --quarto-hl-st-color: #20794D; 9 | --quarto-hl-cf-color: #003B4F; 10 | --quarto-hl-op-color: #5E5E5E; 11 | --quarto-hl-er-color: #AD0000; 12 | --quarto-hl-bn-color: #AD0000; 13 | --quarto-hl-al-color: #AD0000; 14 | --quarto-hl-va-color: #111111; 15 | --quarto-hl-bu-color: inherit; 16 | --quarto-hl-ex-color: inherit; 17 | --quarto-hl-pp-color: #AD0000; 18 | --quarto-hl-in-color: #5E5E5E; 19 | --quarto-hl-vs-color: #20794D; 20 | --quarto-hl-wa-color: #5E5E5E; 21 | --quarto-hl-do-color: #5E5E5E; 22 | --quarto-hl-im-color: #00769E; 23 | --quarto-hl-ch-color: #20794D; 24 | --quarto-hl-dt-color: #AD0000; 25 | --quarto-hl-fl-color: #AD0000; 26 | --quarto-hl-co-color: #5E5E5E; 27 | --quarto-hl-cv-color: #5E5E5E; 28 | --quarto-hl-cn-color: #8f5902; 29 | --quarto-hl-sc-color: #5E5E5E; 30 | --quarto-hl-dv-color: #AD0000; 31 | --quarto-hl-kw-color: #003B4F; 32 | } 33 | 34 | /* other quarto variables */ 35 | :root { 36 | --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 37 | } 38 | 39 | pre > code.sourceCode > span { 40 | color: #003B4F; 41 | } 42 | 43 | code span { 44 | color: #003B4F; 45 | } 46 | 47 | code.sourceCode > span { 48 | color: #003B4F; 49 | } 50 | 51 | div.sourceCode, 52 | div.sourceCode pre.sourceCode { 53 | color: #003B4F; 54 | } 55 | 56 | code span.ot { 57 | color: #003B4F; 58 | font-style: inherit; 59 | } 60 | 61 | code span.at { 62 | color: #657422; 63 | font-style: inherit; 64 | } 65 | 66 | code span.ss { 67 | color: #20794D; 68 | font-style: inherit; 69 | } 70 | 71 | code span.an { 72 | color: #5E5E5E; 73 | font-style: inherit; 74 | } 75 | 76 | code span.fu { 77 | color: #4758AB; 78 | font-style: inherit; 79 | } 80 | 81 | code span.st { 82 | color: #20794D; 83 | font-style: inherit; 84 | } 85 | 86 | code span.cf { 87 | color: #003B4F; 88 | font-weight: bold; 89 | font-style: inherit; 90 | } 91 | 92 | code span.op { 93 | color: #5E5E5E; 94 | font-style: inherit; 95 | } 96 | 97 | code span.er { 98 | color: #AD0000; 99 | font-style: inherit; 100 | } 101 | 102 | code span.bn { 103 | color: #AD0000; 104 | font-style: inherit; 105 | } 106 | 107 | code span.al { 108 | color: #AD0000; 109 | font-style: inherit; 110 | } 111 | 112 | code span.va { 113 | color: #111111; 114 | font-style: inherit; 115 | } 116 | 117 | code span.bu { 118 | font-style: inherit; 119 | } 120 | 121 | code span.ex { 122 | font-style: inherit; 123 | } 124 | 125 | code span.pp { 126 | color: #AD0000; 127 | font-style: inherit; 128 | } 129 | 130 | code span.in { 131 | color: #5E5E5E; 132 | font-style: inherit; 133 | } 134 | 135 | code span.vs { 136 | color: #20794D; 137 | font-style: inherit; 138 | } 139 | 140 | code span.wa { 141 | color: #5E5E5E; 142 | font-style: italic; 143 | } 144 | 145 | code span.do { 146 | color: #5E5E5E; 147 | font-style: italic; 148 | } 149 | 150 | code span.im { 151 | color: #00769E; 152 | font-style: inherit; 153 | } 154 | 155 | code span.ch { 156 | color: #20794D; 157 | font-style: inherit; 158 | } 159 | 160 | code span.dt { 161 | color: #AD0000; 162 | font-style: inherit; 163 | } 164 | 165 | code span.fl { 166 | color: #AD0000; 167 | font-style: inherit; 168 | } 169 | 170 | code span.co { 171 | color: #5E5E5E; 172 | font-style: inherit; 173 | } 174 | 175 | code span.cv { 176 | color: #5E5E5E; 177 | font-style: italic; 178 | } 179 | 180 | code span.cn { 181 | color: #8f5902; 182 | font-style: inherit; 183 | } 184 | 185 | code span.sc { 186 | color: #5E5E5E; 187 | font-style: inherit; 188 | } 189 | 190 | code span.dv { 191 | color: #AD0000; 192 | font-style: inherit; 193 | } 194 | 195 | code span.kw { 196 | color: #003B4F; 197 | font-weight: bold; 198 | font-style: inherit; 199 | } 200 | 201 | .prevent-inlining { 202 | content: "s.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s}); 8 | -------------------------------------------------------------------------------- /working_agreement.qmd: -------------------------------------------------------------------------------- 1 | 2 | # Working Agreement 3 | ## Values 4 | 5 | 1. Being nice and working hard 6 | - We work to be considerate in our speech and actions, and to actively acknowledge and respect the boundaries and experiences of fellow community members. 7 | - We work to make time for others while also respecting others' time 8 | - We try our best, while recognizing that our best can change daily 9 | 2. We love science and we love life outside science 10 | - We encourage everyone to stay connected to what excites you about your work: explore and stay curious! 11 | - We value taking time for personal life so we can be our best self at work 12 | - We work to prioritize the physical and mental health of ourselves and others 13 | 3. Collaboration & sharing 14 | - We are a team: our colleagues are our resources, and in return, we are resources for our colleagues 15 | - We work to normalize asking for help and to offer help generously 16 | - We aim to be clear and concise - ambiguity causes confusion 17 | - We actively work to collaborate with local communities in and around our research sites 18 | 4. Being present 19 | - We prioritize working in person and showing up at group events to help build our community and to support each other 20 | - We know extra effort is needed to help remote group members be included 21 | - We pay attention when others speak 22 | - We work to ensure all voices are heard 23 | 5. Normalizing "I don't know yet" 24 | - Don’t know? That’s okay! We’re all here to learn, no matter what our career stage. 25 | - At the same time, we assume competence and actively recognize the wide range of expertise we each bring 26 | 6. Credit and responsibility 27 | - We celebrate our own successes and those around us! 28 | - We have intentional and early conversations around credit and authorship. 29 | - We all make mistakes. Please be honest and open when it happens. 30 | - If you see a problem, please speak up respectfully so that we all can try to find a solution. 31 | 7. Supporting a diverse environment 32 | - Please be open to others perspectives, engage with them, and be willing to revise your own 33 | - We work to vocally support diverse perspectives 34 | - To specifically amplify the work of researchers from underrepresented groups, we've committed to 35 | - Discussing an article about systemic barriers or racism at least twice a year during lab meetings. Everyone is encouraged to lead a discussion 36 | - Engaging in a lab discussion regarding systemic problems within the field of ecology and evolutionary biology or within graduate school (i.e., decolonizing conservation, systemic barriers and racism within the field of ecology, history of racism against BIPOC communities in genomics) 37 | - Prioritize the citation of underrepresented authors in our writings 38 | - Attend talks by underrepresented scientists at conferences and share the names of the speakers you enjoyed to use as inspiration for future seminar invitations and paper discussions 39 | - Acknowledge our occupation of land that is the unceded territory of the Awaswas-speaking Uypi Tribe. 40 | - We will have biannual lab meetings to discuss our progress and future work in Diversity, Equity, Inclusion & Belonging 41 | - We will be aware and acknowledge our positionalities and privileges that we hold. 42 | 8. Sharing our science outside of academia 43 | - We value community service, outreach to non-scientists audiences, and mentoring of early-career scientists 44 | 45 | ## Process 46 | 47 | 1. Meetings 48 | - Please come prepared and take notes (we often use shared Google docs) 49 | - Please set and follow an agenda 50 | - Please start and end on time 51 | - Check in regularly about the whole person 52 | 2. Group meetings 53 | - We have weekly group meetings and expect everyone in the group to attend. 54 | 3. Lab listener 55 | - A volunteer group member each quarter who observes and promotes healthy lab dynamics 56 | - An unofficial contact for concerns within the research group 57 | - Will schedule meetings with Malin as needed for issues and updates 58 | 4. This document 59 | - This document is always in progress: please suggest changes where you see fit! 60 | - We will revisit this document at the beginning of each Fall quarter 61 | 5. Project management 62 | - Please set realistic deadlines, then revise them in communication with others 63 | - It helps to break projects into smaller pieces 64 | - We do science openly, transparently, and reproducibly (see OpenScapes guides and [our data management plan](https://github.com/pinskylab/how_we_work/blob/master/data-management.md)) 65 | 6. Problems 66 | - To report an issue please contact Malin. All communication will be treated as confidential to the extent possible (sexual harrassment and related concerns have to be reported, per [university policy](https://titleix.ucsc.edu/reporting/index.html) 67 | - If you aren't comfortable speaking to Malin: 68 | - contact the Lab Listener 69 | - contact the graduate program coordinator: Judy Straub (UCSC) or Shaneika Nelson (Rutgers) 70 | - If the grad student coordinator does not sound like the correct point of contact, UCSC has many resources available to you, including: 71 | - [Counseling & Psychological Services](https://caps.ucsc.edu/) 72 | - [Slug Support](https://deanofstudents.ucsc.edu/slug-support/program/graduate-students.html) 73 | - [Student Conduct](https://deanofstudents.ucsc.edu/student-conduct/index.html) 74 | - [CARE](https://care.ucsc.edu/) 75 | -------------------------------------------------------------------------------- /_book/site_libs/quarto-html/anchor.min.js: -------------------------------------------------------------------------------- 1 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat 2 | // 3 | // AnchorJS - v5.0.0 - 2023-01-18 4 | // https://www.bryanbraun.com/anchorjs/ 5 | // Copyright (c) 2023 Bryan Braun; Licensed MIT 6 | // 7 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat 8 | !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(globalThis,function(){"use strict";return function(A){function u(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.icon:"",A.visible=Object.prototype.hasOwnProperty.call(A,"visible")?A.visible:"hover",A.placement=Object.prototype.hasOwnProperty.call(A,"placement")?A.placement:"right",A.ariaLabel=Object.prototype.hasOwnProperty.call(A,"ariaLabel")?A.ariaLabel:"Anchor",A.class=Object.prototype.hasOwnProperty.call(A,"class")?A.class:"",A.base=Object.prototype.hasOwnProperty.call(A,"base")?A.base:"",A.truncate=Object.prototype.hasOwnProperty.call(A,"truncate")?Math.floor(A.truncate):64,A.titleText=Object.prototype.hasOwnProperty.call(A,"titleText")?A.titleText:""}function d(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new TypeError("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],u(this.options),this.add=function(A){var e,t,o,i,n,s,a,r,l,c,h,p=[];if(u(this.options),0!==(e=d(A=A||"h2, h3, h4, h5, h6")).length){for(null===document.head.querySelector("style.anchorjs")&&((A=document.createElement("style")).className="anchorjs",A.appendChild(document.createTextNode("")),void 0===(h=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(A):document.head.insertBefore(A,h),A.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",A.sheet.cssRules.length),A.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); 9 | // @license-end -------------------------------------------------------------------------------- /data-management.qmd: -------------------------------------------------------------------------------- 1 | # GCRG Lab Data Management Plan 2 | 3 | The Global Change Research Group strives for an open science policy that makes our science accessible and reproducible and that allows us to collaborate with our future selves and with our colleagues. To assist in achieving that aim, we use the following practices. 4 | 5 | 6 | ## Key resources 7 | 1. Lab notebook 8 | 1. Shared Google Drive (Global Change Research Group) 9 | 1. GitHub repository 10 | 1. Working location (laptop, scientific workstation, cluster, etc.) 11 | 1. Backup location (Bishop, a PbSci storage server that is backed up offsite. This may change to Rufus, a different storage server, in the future.) 12 | 13 | ## Project organization 14 | 15 | 1. Lab notebooks are maintained each day; tracking progress, daily learnings, what was accomplished, and/or what goal was worked towards. These can be physical notebooks, text files, Evernote, Jupyter notebooks, etc. 16 | 1. Lab notebooks are digitally backed up, regardless of initial format 17 | 18 | 1. Each new project gets a GitHub repository in the [pinskylab organization](https://github.com/pinskylab) 19 | 1. This practice facilitates collaboration, sharing, data traceability, and maintenance of institutional knowledge. 20 | 1. Repos can be public or private 21 | 2. A [CITATION.cff](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files) clarifies how to cite the repo. We apply authorship criteria similarly as for papers (e.g., first author is the lead). 22 | 1. Data processing is accomplished through the use of scripts, not manual manipulation 23 | 1. This helps to verify the reproducibility of our methods 24 | 1. A README.md in each directory (including the top directory) 25 | 1. explains the purpose of each file and sub-directory 26 | 1. includes links to relevant papers and preprints 27 | 1. has contact information for authors and data creators, as necessary 28 | 1. defines data columns, including units, of any data files and basic methods used for data collection 29 | 1. has version numbers of any software or packages needed for running codes or scripts 30 | 1. If the repo is included in a publication, we also archive it with a DOI on, for example, [Zenodo](https://www.zenodo.org) (see [here](https://github.com/pinskylab/pinskylab_methods/blob/master/cookbook.md#archiving-a-git-repo-with-zenodo-for-a-publication) for instructions). 31 | 2. We add a license to each git repo, e.g., MIT or CC BY-NC 4.0, to clarify how the material can be reused. See guidance from [Creative Commons](https://creativecommons.org/share-your-work/cclicenses/), [Github](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository), and [R Packages book](https://r-pkgs.org/license.html#code-you-write). 32 | 3. We write collaborative manuscripts in the GCRG Shared Google Drive 33 | 4. Presentations are typically made in Google Slides in the GCRG Google Drive (Presentations/) allowing lab members easy access to useful graphics 34 | 1. Name the file in the format YYYY-MM-DD_presentername_occasion, eg, 2023-01-07_Pinsky_AmNat 35 | 5. Before matriculation, we ensure all projects, code, data, papers, etc. are available and fully documented 36 | 37 | ## Data 38 | Data used in support of a project is: 39 | 40 | 1. Saved in an appropriate, non-proprietary format with accompanying metadata (e.g., csv rather than Excel) 41 | 1. Raw data is stored in or linked from the GitHub repository associated with the project 42 | 1. Raw data files under the Github file size limit (<100MB) are stored in a data/ directory 43 | 1. Larger files are stored in a data_largefiles/ directory (not tracked by Git by using the .gitignore file) in at least two places 44 | - where the analysis is occurring (e.g., laptop or scientific workstation), and 45 | - either one of (we document this arrangement clearly in the relevant data_largefiles/README.md file of the git repo): 46 | - on [FigShare](https://figshare.com/), linked from the relevant GitHub readme. 47 | - on NCBI for raw sequencing reads. Upload them soon after receiving, possibly with an embargo, with the accession numbers documented in the relevant README.md. 48 | - another public data repository, with a link pointing to the data from the git readme. 49 | - if FigShare, NCBI, or other public data repositories are not appropriate, we can use the UCSC PbSci Bishop data server. Data is stored in bio-globalchange/data_largefiles/ in a subdirectory whose name matches the Git repo name. 50 | 1. If data from an external or public source is being used, it is stored in a data_dl/ directory (not tracked by Git). We clearly and unambiguously describe the data source in the data_dl/README.md file by providing links, version numbers, descriptions for access/download, or other details to ensure reproducibility. If you're worried the data won't be available in the future, follow one of the two previous bullet point approaches. 51 | 3. Metadata is stored in the same directory as the raw data, typically in a README.md file that describes the data in each column, units, coordinate reference system (CRS, for GIS data), and other details needed to understand the file 52 | 4. Processed or cleaned data is stored in a separate directory, e.g., output/ or similar, to differentiate from raw data 53 | 54 | 55 | ## Code 56 | All code used or developed in support of the project is: 57 | 58 | 1. Well commented and complete 59 | 1. Versioned in the project's git repository 60 | 1. Described in the README.md file to explain what each script does, what language was used, what software and package versions were used, etc. 61 | 1. Tested! Can at least one other person (more is better) complete your analysis on a different computer? 62 | 63 | ## Backups 64 | We store our raw data and scripts in at least two locations. 65 | 66 | 1. Most of our work is on Github or Google Drive. Both are backed up monthly to the UCSC PbSci Bishop file server. 67 | 1. Raw data files too large for Github and Drive are stored in two locations (see Data section above) 68 | 69 | ## Hummingbird 70 | 71 | ### Accessing Humminbird 72 | 73 | 1. Your Hummingbird information is your CruzID and your Gold password 74 | ```bash 75 | ssh CRUZID@hb.ucsc.edu 76 | ``` 77 | 1. other stuff 78 | -------------------------------------------------------------------------------- /_book/site_libs/clipboard/clipboard.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * clipboard.js v2.0.11 3 | * https://clipboardjs.com/ 4 | * 5 | * Licensed MIT © Zeno Rocha 6 | */ 7 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1 { 9 | const annEl = window.document.getElementById("quarto-announcement"); 10 | if (annEl) { 11 | annEl.remove(); 12 | 13 | const annId = annEl.getAttribute("data-announcement-id"); 14 | window.localStorage.setItem(`quarto-announce-${annId}`, "true"); 15 | } 16 | }; 17 | 18 | const announceRegister = () => { 19 | const annEl = window.document.getElementById("quarto-announcement"); 20 | if (annEl) { 21 | const annId = annEl.getAttribute("data-announcement-id"); 22 | const isDismissed = 23 | window.localStorage.getItem(`quarto-announce-${annId}`) || false; 24 | if (isDismissed) { 25 | announceDismiss(); 26 | return; 27 | } else { 28 | annEl.classList.remove("hidden"); 29 | } 30 | 31 | const actionEl = annEl.querySelector(".quarto-announcement-action"); 32 | if (actionEl) { 33 | actionEl.addEventListener("click", function (e) { 34 | e.preventDefault(); 35 | // Hide the bar immediately 36 | announceDismiss(); 37 | }); 38 | } 39 | } 40 | }; 41 | 42 | window.document.addEventListener("DOMContentLoaded", function () { 43 | let init = false; 44 | 45 | announceRegister(); 46 | 47 | // Manage the back to top button, if one is present. 48 | let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop; 49 | const scrollDownBuffer = 5; 50 | const scrollUpBuffer = 35; 51 | const btn = document.getElementById("quarto-back-to-top"); 52 | const hideBackToTop = () => { 53 | btn.style.display = "none"; 54 | }; 55 | const showBackToTop = () => { 56 | btn.style.display = "inline-block"; 57 | }; 58 | if (btn) { 59 | window.document.addEventListener( 60 | "scroll", 61 | function () { 62 | const currentScrollTop = 63 | window.pageYOffset || document.documentElement.scrollTop; 64 | 65 | // Shows and hides the button 'intelligently' as the user scrolls 66 | if (currentScrollTop - scrollDownBuffer > lastScrollTop) { 67 | hideBackToTop(); 68 | lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; 69 | } else if (currentScrollTop < lastScrollTop - scrollUpBuffer) { 70 | showBackToTop(); 71 | lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; 72 | } 73 | 74 | // Show the button at the bottom, hides it at the top 75 | if (currentScrollTop <= 0) { 76 | hideBackToTop(); 77 | } else if ( 78 | window.innerHeight + currentScrollTop >= 79 | document.body.offsetHeight 80 | ) { 81 | showBackToTop(); 82 | } 83 | }, 84 | false 85 | ); 86 | } 87 | 88 | function throttle(func, wait) { 89 | var timeout; 90 | return function () { 91 | const context = this; 92 | const args = arguments; 93 | const later = function () { 94 | clearTimeout(timeout); 95 | timeout = null; 96 | func.apply(context, args); 97 | }; 98 | 99 | if (!timeout) { 100 | timeout = setTimeout(later, wait); 101 | } 102 | }; 103 | } 104 | 105 | function headerOffset() { 106 | // Set an offset if there is are fixed top navbar 107 | const headerEl = window.document.querySelector("header.fixed-top"); 108 | if (headerEl) { 109 | return headerEl.clientHeight; 110 | } else { 111 | return 0; 112 | } 113 | } 114 | 115 | function footerOffset() { 116 | const footerEl = window.document.querySelector("footer.footer"); 117 | if (footerEl) { 118 | return footerEl.clientHeight; 119 | } else { 120 | return 0; 121 | } 122 | } 123 | 124 | function dashboardOffset() { 125 | const dashboardNavEl = window.document.getElementById( 126 | "quarto-dashboard-header" 127 | ); 128 | if (dashboardNavEl !== null) { 129 | return dashboardNavEl.clientHeight; 130 | } else { 131 | return 0; 132 | } 133 | } 134 | 135 | function updateDocumentOffsetWithoutAnimation() { 136 | updateDocumentOffset(false); 137 | } 138 | 139 | function updateDocumentOffset(animated) { 140 | // set body offset 141 | const topOffset = headerOffset(); 142 | const bodyOffset = topOffset + footerOffset() + dashboardOffset(); 143 | const bodyEl = window.document.body; 144 | bodyEl.setAttribute("data-bs-offset", topOffset); 145 | bodyEl.style.paddingTop = topOffset + "px"; 146 | 147 | // deal with sidebar offsets 148 | const sidebars = window.document.querySelectorAll( 149 | ".sidebar, .headroom-target" 150 | ); 151 | sidebars.forEach((sidebar) => { 152 | if (!animated) { 153 | sidebar.classList.add("notransition"); 154 | // Remove the no transition class after the animation has time to complete 155 | setTimeout(function () { 156 | sidebar.classList.remove("notransition"); 157 | }, 201); 158 | } 159 | 160 | if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) { 161 | sidebar.style.top = "0"; 162 | sidebar.style.maxHeight = "100vh"; 163 | } else { 164 | sidebar.style.top = topOffset + "px"; 165 | sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)"; 166 | } 167 | }); 168 | 169 | // allow space for footer 170 | const mainContainer = window.document.querySelector(".quarto-container"); 171 | if (mainContainer) { 172 | mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)"; 173 | } 174 | 175 | // link offset 176 | let linkStyle = window.document.querySelector("#quarto-target-style"); 177 | if (!linkStyle) { 178 | linkStyle = window.document.createElement("style"); 179 | linkStyle.setAttribute("id", "quarto-target-style"); 180 | window.document.head.appendChild(linkStyle); 181 | } 182 | while (linkStyle.firstChild) { 183 | linkStyle.removeChild(linkStyle.firstChild); 184 | } 185 | if (topOffset > 0) { 186 | linkStyle.appendChild( 187 | window.document.createTextNode(` 188 | section:target::before { 189 | content: ""; 190 | display: block; 191 | height: ${topOffset}px; 192 | margin: -${topOffset}px 0 0; 193 | }`) 194 | ); 195 | } 196 | if (init) { 197 | window.dispatchEvent(headroomChanged); 198 | } 199 | init = true; 200 | } 201 | 202 | // initialize headroom 203 | var header = window.document.querySelector("#quarto-header"); 204 | if (header && window.Headroom) { 205 | const headroom = new window.Headroom(header, { 206 | tolerance: 5, 207 | onPin: function () { 208 | const sidebars = window.document.querySelectorAll( 209 | ".sidebar, .headroom-target" 210 | ); 211 | sidebars.forEach((sidebar) => { 212 | sidebar.classList.remove("sidebar-unpinned"); 213 | }); 214 | updateDocumentOffset(); 215 | }, 216 | onUnpin: function () { 217 | const sidebars = window.document.querySelectorAll( 218 | ".sidebar, .headroom-target" 219 | ); 220 | sidebars.forEach((sidebar) => { 221 | sidebar.classList.add("sidebar-unpinned"); 222 | }); 223 | updateDocumentOffset(); 224 | }, 225 | }); 226 | headroom.init(); 227 | 228 | let frozen = false; 229 | window.quartoToggleHeadroom = function () { 230 | if (frozen) { 231 | headroom.unfreeze(); 232 | frozen = false; 233 | } else { 234 | headroom.freeze(); 235 | frozen = true; 236 | } 237 | }; 238 | } 239 | 240 | window.addEventListener( 241 | "hashchange", 242 | function (e) { 243 | if ( 244 | getComputedStyle(document.documentElement).scrollBehavior !== "smooth" 245 | ) { 246 | window.scrollTo(0, window.pageYOffset - headerOffset()); 247 | } 248 | }, 249 | false 250 | ); 251 | 252 | // Observe size changed for the header 253 | const headerEl = window.document.querySelector("header.fixed-top"); 254 | if (headerEl && window.ResizeObserver) { 255 | const observer = new window.ResizeObserver(() => { 256 | setTimeout(updateDocumentOffsetWithoutAnimation, 0); 257 | }); 258 | observer.observe(headerEl, { 259 | attributes: true, 260 | childList: true, 261 | characterData: true, 262 | }); 263 | } else { 264 | window.addEventListener( 265 | "resize", 266 | throttle(updateDocumentOffsetWithoutAnimation, 50) 267 | ); 268 | } 269 | setTimeout(updateDocumentOffsetWithoutAnimation, 250); 270 | 271 | // fixup index.html links if we aren't on the filesystem 272 | if (window.location.protocol !== "file:") { 273 | const links = window.document.querySelectorAll("a"); 274 | for (let i = 0; i < links.length; i++) { 275 | if (links[i].href) { 276 | links[i].dataset.originalHref = links[i].href; 277 | links[i].href = links[i].href.replace(/\/index\.html/, "/"); 278 | } 279 | } 280 | 281 | // Fixup any sharing links that require urls 282 | // Append url to any sharing urls 283 | const sharingLinks = window.document.querySelectorAll( 284 | "a.sidebar-tools-main-item, a.quarto-navigation-tool, a.quarto-navbar-tools, a.quarto-navbar-tools-item" 285 | ); 286 | for (let i = 0; i < sharingLinks.length; i++) { 287 | const sharingLink = sharingLinks[i]; 288 | const href = sharingLink.getAttribute("href"); 289 | if (href) { 290 | sharingLink.setAttribute( 291 | "href", 292 | href.replace("|url|", window.location.href) 293 | ); 294 | } 295 | } 296 | 297 | // Scroll the active navigation item into view, if necessary 298 | const navSidebar = window.document.querySelector("nav#quarto-sidebar"); 299 | if (navSidebar) { 300 | // Find the active item 301 | const activeItem = navSidebar.querySelector("li.sidebar-item a.active"); 302 | if (activeItem) { 303 | // Wait for the scroll height and height to resolve by observing size changes on the 304 | // nav element that is scrollable 305 | const resizeObserver = new ResizeObserver((_entries) => { 306 | // The bottom of the element 307 | const elBottom = activeItem.offsetTop; 308 | const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight; 309 | 310 | // The element height and scroll height are the same, then we are still loading 311 | if (viewBottom !== navSidebar.scrollHeight) { 312 | // Determine if the item isn't visible and scroll to it 313 | if (elBottom >= viewBottom) { 314 | navSidebar.scrollTop = elBottom; 315 | } 316 | 317 | // stop observing now since we've completed the scroll 318 | resizeObserver.unobserve(navSidebar); 319 | } 320 | }); 321 | resizeObserver.observe(navSidebar); 322 | } 323 | } 324 | } 325 | }); 326 | -------------------------------------------------------------------------------- /onboarding.qmd: -------------------------------------------------------------------------------- 1 | Onboarding 2 | ================ 3 | Welcome to the Global Change Research Group! 4 | 5 | - [To Do List](#to-do-list) 6 | - [Computing Resources](#computing-resources) 7 | - [Guides and tutorials](#guides-and-tutorials) 8 | 9 | There are a few items to take care of now that you have joined the lab. 10 | 11 | To Do List 12 | ---------- 13 | 14 | 1. If you're at UCSC, read the [EEB resource guide](https://sites.google.com/ucsc.edu/eeb/home), especially the section on onboarding. 15 | 1. Read the [GCRG Working Agreement](https://github.com/pinskylab/how_we_work/blob/master/working_agreement.md). 16 | 2. If you're a PhD student, check out Malin's [Notes on a PhD Degree](phd_guide.qmd) (also has some useful postdoc-related resources) 17 | 1. Read the [GCRG Data Management Policy](https://github.com/pinskylab/policies/blob/master/data-management.md). 18 | 1. Get your keys and ID card through UCSC (talk with the EEB Grad Program Coordinator and/or the EEB Assistant Administrator). Add CBB 139 for the GCRG Molecular lab, a key for the CBB analytical labs if you're doing pop gen lab work, and a key for the CBB showers if you want. 19 | 1. Make a [GitHub](https://github.com/) account if you don't have one already. 20 | 1. Ask Roy to help you join our Google Spaces (General, Science Communication, DEIB, Climate Biogeography, Genomics, Random, Lab Meeting, Santa Cruz, Computing & Data, Conferences, Lab Website, Lab Space, and Help Coding) for messaging (a Slack equivalent), our shared google calendar, our [Github Organization](https://github.com/pinskylab), and the [GCRG mailing list (pinsky-lab@googlegroups.com)](https://groups.google.com/forum/#!forum/pinsky-lab) (talk to Roy Roberts). 21 | 1. Connect to the "Global Change Research Group" Shared Google Drive by asking Roy to share it with you. 22 | 1. Add your information to the "Global Change Research Group (GCRG) Members" google doc (in the top level of the Global Change Research Group shared drive) 23 | 1. Send your contact information, photo, and web address to Roy to add to our lab webpage [here](https://globalchange.sites.ucsc.edu/people/). If you don't have webpage, they can help you make a page on our website. 24 | 1. Write an [Independent Development Plan](https://myidp.sciencecareers.org), copy your IDP goals to a new google document in Shared Drive/How_we_work/Group_member_goals/ (see the template in the directory), share it with Malin, and set up a time to discuss it. 25 | 1. If you will be doing lab work, complete the safety training [here](https://sites.google.com/ucsc.edu/eeb/About-Coastal-Campus/environmental-health-safety). 26 | 1. Download and begin to maintain a reference manager. We recommend Zotero, as the free software interfaces well with both Microsoft Word and Google Docs. Download Zotero and browser plugin [here](https://www.zotero.org/download/). 27 | 1. Block out our weekly lab meeting time on your calendar, and when you're ready, sign up for a lab meeting. The easiest way to find the schedule for lab meetings is to look at the GCRG Lab Meeting space under Tasks and the linked google file should pop up. 28 | 1. Sign up for meetings with Malin about every two weeks. The link to his calendar is saved in the GCRG General space under Tasks. 29 | 2. If you're a postdoc, grad student, or staff, talk to Malin if you need an external monitor, harddrive for backups, or external keyboard or trackpad. We can usually provide what you need (funding-dependent). 30 | 1. Read through the relevant guides and tutorials below, depending on your experience. 31 | 2. Join the CBB Coffee Club (2nd floor kitchen) if that's relevant to you. 32 | 1. Spend some time exploring the resources on the GCRG Google Drive and Github Organization. Ask questions about anything that's confusing so that we can make it easier for others in the future! 33 | 34 | Computing Resources 35 | ------------------- 36 | There are several computing resources available to serve your research computing needs. 37 | 38 | **Rutgers** 39 | 40 | | owner | name | partition name | number of cores | memory | 41 | |------------------------------|-------------|----------------|-----------------|--------| 42 | | SEBS | annotate2 | - | 112 + 8200 GPU | 1T | 43 | | SEBS | annotate-win| - | 18 | 500G | 44 | | OARC-Pinsky node 1 (hal0181) | amarel | p_mlp195 | 40 | 192G | 45 | | OARC-Pinsky node 2 (hal0186) | amarel | p_mlp195 | 40 | 192G | 46 | | OARC-Ecology node 1 (hal0280)| amarel | p_deenr_1 | 64 | 256G | 47 | | OARC-Ecology node 2 (hal0281)| amarel | p_deenr_1 | 64 | 256G | 48 | | OARC-EOAS node (hal0170) | amarel | p_eoas_1 | 40 | 192G | 49 | | OARC | amarel | main | ~19,000 | ? | 50 | | RDII | caliburn | - | 256 | 768G | 51 | 52 | 53 | **UCSC** 54 | 55 | | owner | name | partition name | number of cores | memory | 56 | |------------------------------|-------------|----------------|-----------------|--------| 57 | | PBSci | [Hummingbird](https://hummingbird.ucsc.edu/) | - | 24-64/node | up to 256GB/node | 58 | | Astrophysics | Lux | - | many | less | 59 | | PBSci | Bishop [archived data] | GlobalChange-bio/ [10TB]| NA | NA | 60 | 61 | *Various lab members have differing levels of experience with each of these servers and can help you figure out what is best for your analysis.* 62 | **Amarel** is a condo system. You only have to wait in line with other GCRG folks for the Pinsky node, you have to wait in line with other Ecology folks for the DEENR node, you have to wait in line with all of Rutgers folks for the other nodes. 63 | 64 | University Affiliated Listservs 65 | ------------------------------- 66 | **UCSC** 67 | 68 | | Name | Listserv email | Contact Name| Contact email | 69 | |-------------------------------|-----------------------------------|-------------|----------------------------| 70 | | Global Change Research Group | pinsky-lab@googlegroups.com | Ryan Snow | | 71 | | Inst. for Marine Science | allmarsci@ucsc.edu | | | 72 | | EEB general announcements | eebmemo@ucsc.edu | Stephanie Zakarian | szak@ucsc.edu | 73 | | EEB jobs | eebjobs@ucsc.edu | Stephanie Zakarian | szak@ucsc.edu | 74 | | CBB coffee club | cbbcoffeeclub-group@ucsc.edu | Malin | mpinsky@ucsc.edu | 75 | | [Fisheries Collaborative Program](https://fisheries.ucsc.edu/) | fcp-group@ucsc.edu | Liane Bauer | lybauer@ucsc.edu | 76 | 77 | - Visit [here](https://mailman.marine.rutgers.edu/mailman/listinfo) for the full list of Rutgers Marine-related listservs 78 | - Visit [here](https://email.rutgers.edu/mailman/listinfo/) for a broad list of Rutgers listservs 79 | 80 | 81 | Guides and tutorials 82 | -------------------- 83 | 84 | 1. Research practice 85 | - [The Openscapes Lesson Series](https://openscapes.github.io/series/): describes an approach to collaborative, reproducible science and culture within teams that underlies much of our group's approach as well 86 | - [GCRG Cookbook](https://github.com/pinskylab/pinskylab_methods/blob/master/cookbook.md) is a resource of how to's put together by lab members to help you past the occasional obstacle that we all seem to run into. 87 | - [How to maintain a research notebook](https://github.com/pinskylab/pinskylab_methods/blob/master/labmgt/how_to_lab_notebook.md) 88 | 2. Career development and time management 89 | - The NCFDD has very good advice on time management, developmenta, and more. Activate your account through UCSC [here](https://senate.ucsc.edu/committees/cca-committee-on-career-advising/faculty-career-resources/facultydevelopmentdiversity.html), including resources for [graduate students](https://www.ncfdd.org/dissertation-success-members). 90 | - Our internal guide to career exploration through informational interviews [here](https://docs.google.com/document/d/1a9fugAIbOm7FOpVz20j6yqjanqHpD-qDq6aK99iUGzQ/edit?usp=sharing) 91 | 1. [Command line tutorial](https://www.udacity.com/wiki/ud775/command-line-instructions) and [more help with the command line](https://classroom.udacity.com/courses/ud595/lessons/4597278561/concepts/46968695970923) (Udacity) 92 | 1. R 93 | 1. [Installing R and RStudio](https://rstudio-education.github.io/hopr/starting.html) 94 | 1. [Learn R with swirl](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwiy_cfso8HhAhXETN8KHWo_CncQFjAAegQIAhAB&url=http%3A%2F%2Fswirlstats.com%2F&usg=AOvVaw3d7sWweo5vI4J_7LZ2Dl0I) 95 | 1. [R For Data Science](https://r4ds.hadley.nz/) (a very useful introduction to R) 96 | 1. Max Czapanskiy's [Data Science for Eco/Evo](https://flukeandfeather.github.io/BIOE215fall23/) from Fall 2023 97 | 1. [Santa Cruz R User Base group (SCRUBs)](https://drive.google.com/drive/folders/0ALYdEjtx2q6CUk9PVA) (need to request permission) 98 | 1. Git and GitHub 99 | 1. [Udacity Git and GitHub tutorial](https://classroom.udacity.com/courses/ud775) 100 | 2. [Happy Git with R tutorial](https://happygitwithr.com) (outside tutorial) 101 | 3. Ted Laderas and Chris Lo [course on git/GitHub](https://hutchdatascience.org/intro_git/#/title-slide) 102 | 4. OpenScapes [GitHub Illustrated series](https://openscapes.org/blog/2022-05-27-github-illustrated-series/) 103 | 5. Software Carpentries [git introduction](https://swcarpentry.github.io/git-novice/aio.html) 104 | 1. Field work 105 | - National Association of Marine Laboratories [Best Practices in Field Safety and Accessibility](https://www.naml.org/resources/reports/Best%20Practices%20in%20Field%20Trip%20Safety%20and%20Accessibility.pdf) 106 | - [Safe fieldwork strategies for at-risk individuals, their supervisors and institutions](https://doi.org/10.1038/s41559-020-01328-5) 107 | 3. Resources for scientific writing 108 | - Our [informal guide to getting ready to publish](https://docs.google.com/document/d/15q_Qw06gNehdCAzu22vJ1iVoOiz6w6kt05WYgOSiCjw/edit?usp=sharing), including a focus on publishing in society-owned and non-profit journals 109 | - [The UCSC Writing Center](https://writingcenter.ucsc.edu/) 110 | - Schimel, J. 2012. Writing science: how to write papers that get cited and proposals that get funded. Oxford University Press, Oxford 111 | - Turbek, S. P., Chock, T. M., Donahue, K., Havrilla, C. A., Oliverio, A. M., Polutchko, S. K., … Vimercati, L. (2016). Scientific Writing Made Easy: A Step-by-Step Guide to Undergraduate Writing in the Biological Sciences. Ecology 101, (October), 417–426. [doi:10.1002/bes2.1258](https://doi.org/10.1002/bes2.1258) 112 | - Gopen, G., & Swan, J. (1990). The Science of Scientific Writing. American Scientist. 113 | - [Lafferty 2021 Writing a scientific paper, step by painful step](https://trophiccascades.forestry.oregonstate.edu/sites/trophic/files/Lafferty_WritingScientificPaper.pdf) 114 | - [Our Guide to publishing a scientific paper](https://docs.google.com/document/d/13vteuDK5kebjaW6GBUpV5ja0cuZhxStb83vnjjMq-Rg/edit?usp=sharing) 115 | - [How to read a scientific paper](https://www.science.org/content/article/how-read-scientific-paper-rev2), Science 116 | - [How to (seriously) read a scientific paper](https://www.science.org/content/article/how-seriously-read-scientific-paper), Science 117 | - [Zotero Reference Manager Tutorial](https://www.youtube.com/watch?v=q6-YOPS1xY4) 118 | - Authorship criteria 119 | - [Ecological Society of America ethics](https://www.esa.org/about/code-of-ethics/) 120 | - [Ecological authorship](https://esajournals.onlinelibrary.wiley.com/doi/abs/10.1890/1540-9295%282006%294%5B435%3AAIEAAA%5D2.0.CO%3B2) 121 | - [Evolution](https://onlinelibrary-wiley-com.proxy.libraries.rutgers.edu/page/journal/15585646/homepage/forauthors.html#authorship) 122 | - [Fisheries](https://fisheries.org/books-journals/writing-tools/authorship-guidelines/) 123 | 1. Data visualization resources 124 | - Tufte books 125 | - William Cleveland, The Elements of Graphing Data 126 | 1. Scientific presentation tips 127 | - http://blog.ted.com/10-tips-for-better-slide-decks/ 128 | - How Bad Presentations Happen to Good Causes (booklet in the lab) 129 | - Will Ratcliffe: https://twitter.com/wc_ratcliff/status/949315012472070145 130 | - Clip art 131 | - http://ian.umces.edu/symbols/ 132 | - https://thenounproject.com/ 133 | - https://www.nature.com/articles/d41586-023-00832-5 134 | - Remember you're telling a story 135 | - Start where your audience is, explain why it matters/they should care 136 | - build suspense, and then resolve it 137 | - Build with simple pieces 138 | - You know much more than your audience. Recognize they can only absorb information so fast. 139 | - Layer in points and pieces as you say them 140 | - Explain all parts of a figure 141 | - Less is more 142 | - Few words, more pictures. Slides uncluttered 143 | - Less talking: say it clearly and move on 144 | - Practice, practice, practice 145 | 3. Networking and collaboration skills 146 | - Resources from the [ESA Early Career Ecologists section](http://esa.org/earlycareer/resources/), including [webinars](https://vimeo.com/esaearlycareerecologist) 147 | - The [Project Biodiversify group](https://projectbiodiversify.org/) is working to make biology/ecology more inclusive. 148 | - Lab notes on power in academia: http://sophiatintori.com/zine.html 149 | 150 | 151 | 152 | 153 | -------------------------------------------------------------------------------- /phd_guide.qmd: -------------------------------------------------------------------------------- 1 | # Some notes for a Ph.D. 2 | Notes written by Malin Pinsky, 2013-2024 3 | 4 | ## Skills to develop 5 | My goal is to help you understand and succeed in our discipline as it is now, while also empowering you with the agency to reshape it in the image of all of us. 6 | 7 | - project design 8 | - data analysis and interpretation 9 | - oral presentation: see Scientific presentation tips (to add) 10 | - grant-writing 11 | - manuscript writing 12 | - collaborating and networking in academia 13 | - teaching 14 | - peer reviewing 15 | 16 | *(see our onboarding guide for resources)* 17 | 18 | ## Expectations/Milestones 19 | - Throughout 20 | - Participate in the community and build your professional network 21 | - attend all seminars, meet most or all speakers, come to lab meetings, work from CBB 22 | - Contribute to the community: clean up after yourself, do maintenance, do chores, etc. 23 | - Reproducibility for collaboration with future self, with others in lab, with others outside lab (see the [Data Management Guide](https://github.com/pinskylab/how_we_work/blob/master/data-management.md)) 24 | - Practice any talks and present any posters to the lab, before you take them to a conference 25 | - This is will be substantially more work than a 9-5 job or taking classes as an undergraduate or MS student 26 | - First year 27 | - First meeting topics 28 | - Expectations for me from you 29 | - Expectations for you from me 30 | - Your expectations for the PhD experience 31 | - What you want to learn from the PhD 32 | - Where your are tentatively heading 33 | - First year project? 34 | - If you have fears, concerns, questions, or just want to talk, please come find me. If you’re upset, please tell me. 35 | - Apply to fellowships (fall) 36 | - First year talk (lab meeting or other venue) 37 | - Start and perhaps finish a first year project that is publishable 38 | - Comprehensive exam on the first-year courses 39 | - Read widely across the literature 40 | - Second year 41 | - Finish courses 42 | - First year project written up and potentially submitted 43 | - Read widely and design a dissertation proposal 44 | - Attend a conference, present a talk or poster 45 | - Third year 46 | - Write dissertation proposal and defend it, “Qualifying exam" 47 | - Continue research 48 | - Attend a conference and present 49 | - Fourth year 50 | - Continue research 51 | - Submit papers 52 | - Attend a conference and present 53 | - Fifth year 54 | - Finish research 55 | - Submit remaining papers 56 | - Attend a conference and present 57 | - Apply for postdoc fellowships (fall) and contact potential mentors, or network and do informational interviews for non-academic opportunities 58 | - Defend dissertation! 59 | - At least 6 weeks in advance of defense: last draft of dissertation chapter to Malin. Others already done. 60 | - Defense date is tentative until 61 | - Full dissertation written 62 | - At least 2 chapters submitted for publication 63 | - All chapters comply with our [Data Management Plan](https://github.com/pinskylab/how_we_work/blob/master/data-management.md) 64 | 65 | ## 6-Month Check-ins 66 | At the end of the fall and spring, we take a meeting to step back from the details and think about big picture career trajectories. It’s a good chance to go back the goals you wrote for yourself, think about your progress, and think about whether they’re still the right goals for you. Please start a running document of your goals in our Google Drive (how_we_work/Group_member_goals/, make a copy of the template and add your name to the title) and share it with Malin. 67 | 68 | This is your meeting to use as you want, but I often find it useful to loosely structure the meeting like this: 69 | 70 | - First 1/3: Highlights from the semester/last six months: 71 | - What have you done? 72 | - What have you learned? 73 | - What connections have you made? 74 | - Last 2/3: Plans for the next six months: 75 | - What do you want to do? 76 | - What do you want to learn? 77 | - What connections do you want to make? 78 | - How can I support you in that? 79 | - Also let me know if you want me to think about answers to any questions. 80 | - Funding plan during each end-of-year checkin 81 | 82 | ## Training resources 83 | - Academic career development resources through the NCFDD. Activate your account through UCSC [here](https://senate.ucsc.edu/committees/cca-committee-on-career-advising/faculty-career-resources/facultydevelopmentdiversity.html), including resources for graduate students like (https://www.ncfdd.org/dissertation-success-members). 84 | - Leadership 85 | - USFWS National Conservation Training Center 86 | - Heemstra, J. 2025. Labwork to Leadership. Harvard University Press. 87 | - [Making the Right Moves: A Practical Guide to Scientific Management for Postdocs and New Faculty, Second Edition](https://capd.mit.edu/resources/making-the-right-moves-a-practical-guide-to-scientific-management-for-postdocs-and-new-faculty-second-edition/) 88 | - Buckingham and Coffman. 1999. First, Break All the Rules: What the World's Greatest Managers Do Differently. Simon & Schuster. 89 | 90 | - Communication 91 | - [COMPASS](https://www.compassscicomm.org/) 92 | - [TULIP](https://www.labex-tulip.fr/internet6_national_labex_tulip-eng/the-labex/training-and-higher-education) summer school on interdisciplinary ecology 93 | - [SIIECS](https://www.ices.dk/community/groups/Pages/SIIECS.aspx): early career society of ICES 94 | - Michigan State University Kellogg Biological Station 95 | - Jennifer Hoey enjoyed them. Not offered every year? 96 | - Part of CIC (Committee on Institutional Cooperation), so Rutgers students get an "in" 97 | - [Santa Fe Institute's Complex Systems Summer School](https://www.santafe.edu/engage/learn/programs/sfi-complex-systems-summer-school) 98 | 99 | ## Course ideas 100 | - At UCSC 101 | - Stats and applied math 102 | - STATS 206 Applied Bayesian Stats (with David Draper) (can get permission to skip prereqs) 103 | - STATS 203 Introduction to Probability Theory 104 | - STATS 204 Introduction to Statistical Data Analysis (includes some R) 105 | - STATS 206B Intermediate Bayesian Stats 106 | - EART125 - Statistics and Data Analysis in the Geosciences (Matthew Clapham) 107 | - OCEA 267 Applied Environmental Time Series Analysis (Claudie Beaulieu) 108 | - Off campus 109 | - Stats 110 | - https://www.statstree.org/ 111 | - Tyre, ecological statistics in R, online, University Nebraska Lincoln 112 | - [Biostats suggestions from Ecology](https://dynamicecology.wordpress.com/2021/07/28/stage-setting-readings-and-videos-to-kick-off-an-intro-biostats-course-here-are-mine-please-share-your-suggestions/) 113 | - Two recommended stats books from economics 114 | - Pindyck, R.S., Rubinfeld, D.L., 1998. Econometric Models and Economic Forecasts, 4th ed. McGraw-Hill New York, NY 115 | - Cameron, A.C., Trivedi, P.K., 2005. Microeconometrics methods and applications. Cambridge University Press, NY 116 | - Coursera 117 | - Brian Caffo, Mathematical biostatistics boot camp 1 and 2 118 | - 7 weeks, taught several times per year 119 | - Recommended by: Columbia Univ PhD student: The teacher and format are very good. But it is pretty elementary; covers what you would learn in a rigorous basic stats course (comment on boot camp 1) 120 | - Roger Peng, Computing for data analysis 121 | - in R, generally taught Sept, 4 weeks 122 | - Recommended by: Tia-Lynn Ashman lab member says excellent, pretty hard, 10-15 hrs per week, covers both data management and stats 123 | - Jeff Leek, Data analysis 124 | - in R, generally taught Oct, 8 weeks 125 | - Recommended by: Brian Caffo read his statistics blog http://simplystatistics.org 126 | - John McGready, Statistical Reasoning 127 | - seems to be not available every time I check. aimed at public health 128 | - Recommended by: Brian Caffo, fantastic course 129 | - Note: Peng and Leek are collaborators, both at Johns Hopkins. They additionally teach the below but Rae Winfree has not found out more on these courses: 130 | - R programming 131 | - Getting and cleaning data 132 | 133 | ## Funding ideas 134 | - Travel funding 135 | - American Society of Naturalists: regional conference funding; workshop funding 136 | - UCSC EEB 137 | - ICRS travel funding 138 | - [Travel funding for ECRs](https://docs.google.com/spreadsheets/d/19ye-FrPi0WDrjSV8V3xi3HDMcw0i1y-QkAVZOyPRR20/edit#gid=0) 139 | - Journal of Marine Science and Engineering: http://www.mdpi.com/journal/jmse/awards 140 | - [Western Association of Marine Labs (WAML)](http://waml.naml.org/members/studentsupport.php), due Oct. 31 141 | 142 | - Research funding 143 | - Internal 144 | - UCSC Committee On Research $2000/year (Malin can apply in ~May). No proposal needed. 145 | - UCSC Committee on Research Large Grants Program: $12000 for two years. Malin can apply. 2 pp application. 146 | - Inst. of Marine Science Student Research & Education Award 147 | - UCSC EEB summer funding 148 | - UCSC Activating Innovative Graduate Research Award (AIGRA) 149 | - [Keeley Coastal Scholars](https://socialsciences.ucsc.edu/support-us/awards/student-awards/keeley-coastal-scholars/index.html): $1000-$4000 for underrepresented undergraduates or grad student 150 | - [Hammett Awards through ENVS](https://envs.ucsc.edu/about/awards/index.html) 151 | - UC Alianza MX Short-Term Research in Mexico: covers living expenses, travel, and other related expenses for up to three months to accomplish specific laboratory, library, or field research at partner institutions in Mexico. Calls often go out in February, due in March. 152 | - Daniel Briggs Memorial Award for summer research or policy work related to coastal sustainability. Due ~ March. $500-$1000. 153 | - [Sooy Fellowship](https://science.ucsc.edu/research-opportunities/rebecca-and-steve-sooy-graduate-fellowship-in-marine-mammals/) for marine mammals 154 | - [Women Divers Hall of Fame Scholarships and Training Grants](http://www.wdhof.org/wdhof-scholarshipDesc.aspx) 155 | - AMNH Lerner Grey 156 | - [Doane Environmental Scholarship](https://www.cfscc.org/scholarships) through the Community Foundation Santa Cruz County 157 | - [Sigma Xi Grants in Aid of Research](https://www.sigmaxi.org/programs/grants-in-aid-of-research/apply) 158 | - [Western Association of Marine Labs (WAML)](http://waml.naml.org/members/studentsupport.php), due Oct. 31 159 | - Explorers Club [Stephenson Explorers Advancement Program](https://www.explorers.org/grants/the-stephenson-explorers-advancement-program/) and [Kensington Conservation Grant](https://www.explorers.org/grants/kensington-explorers-club-grant/) 160 | - American Philosophical Society’s Lewis and Clark Fund for Exploration and Field Research 161 | - Dr. Earl H. Myers and Ethel M. Myers Oceanographic & Marine Biology Trust ($2600 in 2024) 162 | - Washington Biologists Field Club: Mid-Atlantic. https://www.pwrc.usgs.gov/resshow/perry/bios/WBFCHome.htm 163 | - P.E.O. Scholar Award: women w/in 2 years of finishing a PhD 164 | - [Graduate Women in Science National Fellowship Program](https://www.gwis.org/page/fellowship_program) 165 | - Gloria Barron Wilderness Society Scholarship (Wilderness Society), $25000 scholarship for research supporting wilderness conservation. 166 | - Rafe Sagarin Fund: http://www.rafeinnovativeecologyfund.org/ 167 | - Society for Study of Evolution: http://www.evolutionsociety.org/content/society-awards-and-prizes/graduate-research-excellence-grants.html 168 | - Rosemary Grant awards, year 3+, up to $3500 169 | - American Genetic Association EECG award (due Dec 15) 170 | - [AFS Steven Berkeley Marine Conservation Fellowship](https://mfs.fisheries.org/?page_id=155): also open to international students 171 | - International Coral Reef Society student fellowship 172 | - [Beneath the Sea Scholarship](https://beneaththesea.us/scholarships/) 173 | - Fellowships (stipend) 174 | - Internal 175 | - Dissertation Year Fellowship 176 | - Pedagogy fellowships through The Learning Center 177 | - [Sooy Fellowship](https://science.ucsc.edu/research-opportunities/rebecca-and-steve-sooy-graduate-fellowship-in-marine-mammals/) for marine mammals 178 | - NSF GRFP 179 | - advice: https://ojs.library.queensu.ca/index.php/IEE/article/view/6349#.WG57HQnKFbg 180 | - NDSEG: read carefully to find the best match BAA category. We have been quite successful with this one. 181 | - DOE Computational Science Graduate Fellowship (4 years) 182 | - HHMI Gilliam Fellowships (apply in 2nd or 3rd year as a advisor-mentee pair, due in early December) 183 | - CA Sea Grant Graduate Fellowships: has a focus on CA 184 | - Smithsonian (post-qualifying): https://fellowships.si.edu/opportunity/big-ten-academic-alliance-smithsonian-fellowship 185 | - [ACM SIGHPC Computational & Data Science Fellowships](https://www.sighpc.org/for-your-career/fellowships) 186 | - EPA STAR 187 | - NOAA Nancy Foster: with a National Marine Sanctuary 188 | - NOAA Margaret Davidson: with a National Estuarine Research Reserve 189 | - NMFS-Sea Grant Fellowship in Population and Ecosystem Dynamics: for more quantitative projects and students 190 | - DOE computational science (includes biomathematics) 191 | - [The Hertz Foundation Graduate Fellowships](https://www.hertzfoundation.org/the-fellowship/) 192 | - [Quad Fellowship](https://www.quadfellowship.org/) 193 | - Paul & Daisy Soros Fellowship for New Americans 194 | 195 | ## Conference ideas 196 | - American Society of Naturalists (January) 197 | - Ecological Society of America (August) 198 | - Evolution (June) 199 | - Species on the Move (every three years or so) 200 | - International Biogeography Society Meeting 201 | - Gordon Conference in Marine Global Change (July) 202 | - Effects of Climate Change on the World's Oceans (ECCWO) (ICES/PICES): next to be in 2027 or 2028 203 | - American Genetics Association 204 | - American Fisheries Society 205 | - Western Society of Naturalists (marine biology, mostly west coast) 206 | - Benthics (marine biology, mostly east coast) 207 | - specialized 208 | - Western Indian Ocean Marine Science Assoc (WIOMSA) 209 | - Asian Pacific Coral Reef Society (APCRS) 210 | 211 | ## Awards 212 | - ASN Jasper Loftus-Hills, <3yrs from PhD, Jan 31 213 | - ESA Early Career Fellow 214 | - ICRS Awards (Feb. 15) 215 | 216 | ## Postdoc funding 217 | - Life Sciences Research Foundation: open to non-US citizens, 3 years, network-building 218 | - NSF 219 | - David H. Smith 220 | - Liber Ero 221 | - Fulbright 222 | - iDiv, CESAB, and NCEAS fellowships 223 | - HIFMB, Germany 224 | - Institutional fellowships 225 | - UT Austin integration biology 226 | - U Michigan 227 | - UC Berkeley 228 | - Harvard sustainability 229 | - UBC Biodiversity Center 230 | - UVM Voss Postdoctoral Fellows 231 | - others... 232 | - Policy 233 | - AAAS Science-Policy Fellowship 234 | - Knauss Marine Policy Fellowship 235 | - https://asntech.github.io/postdoc-funding-schemes/ 236 | 237 | ## Jobs 238 | - [ecoevojobs.net](ecoevojobs.net) for academic jobs 239 | - https://sevenseasmedia.org/ocean-jobs/#s=1 240 | - data science 241 | - Insight Data Science Fellowship 242 | - [ECOLOG-L](https://www.esa.org/membership/ecolog/) for ecology 243 | - [evoldir](https://evol.mcmaster.ca/evoldir.html) for evolution 244 | - [ICRS SECC job board](coralreefsecc.org/jobboard,) for coral reef jobs 245 | - Oceanography jobs lists from Dalhousie: https://www.phys.ocean.dal.ca/hotlists/jobs.html 246 | - NOAA 247 | - At least some of the NOAA contract jobs are posted at http://www.oceanassoc.com/Jobs/jobslist.html 248 | - Recently filled jobs are listed here: http://www.oceanassoc.com/Jobs/jobslistrecentlyfilled.html 249 | - get to know NOAA colleagues through the Fisheries Cooperative Program at UCSC (FCP) 250 | -------------------------------------------------------------------------------- /_book/site_libs/quarto-html/popper.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @popperjs/core v2.11.7 - MIT License 3 | */ 4 | 5 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o&&(o=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function N(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function I(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _(e,r,o){return r===H?I(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):I(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function F(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&N(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=_(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),_(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=F(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=I(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=C(v),g=f||(y===v||!h?[fe(v)]:function(e){if(C(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(C(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var N=fe(q),I=[];if(i&&I.push(V[H]<=0),s&&I.push(V[q]<=0,V[N]<=0),I.every((function(e){return e}))){E=B,j=!1;break}O.set(B,I)}if(j)for(var _=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},F=h?3:1;F>0;F--){if("break"===_(F))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,N="y"===j?D:P,I="y"===j?A:L,_="y"===j?"height":"width",F=k[j],X=F+b[N],Y=F-b[I],G=m?-H[_]/2:0,K=w===W?B[_]:H[_],Q=w===W?-H[_]:-B[_],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=de(0,B[_],$[_]),oe=O?B[_]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[_]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=F+ie-fe,pe=de(m?a(X,F+oe-fe-se):X,F,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-F}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&N(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})})); 6 | 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Attribution 4.0 International 3 | 4 | ======================================================================= 5 | 6 | Creative Commons Corporation ("Creative Commons") is not a law firm and 7 | does not provide legal services or legal advice. Distribution of 8 | Creative Commons public licenses does not create a lawyer-client or 9 | other relationship. Creative Commons makes its licenses and related 10 | information available on an "as-is" basis. Creative Commons gives no 11 | warranties regarding its licenses, any material licensed under their 12 | terms and conditions, or any related information. Creative Commons 13 | disclaims all liability for damages resulting from their use to the 14 | fullest extent possible. 15 | 16 | Using Creative Commons Public Licenses 17 | 18 | Creative Commons public licenses provide a standard set of terms and 19 | conditions that creators and other rights holders may use to share 20 | original works of authorship and other material subject to copyright 21 | and certain other rights specified in the public license below. The 22 | following considerations are for informational purposes only, are not 23 | exhaustive, and do not form part of our licenses. 24 | 25 | Considerations for licensors: Our public licenses are 26 | intended for use by those authorized to give the public 27 | permission to use material in ways otherwise restricted by 28 | copyright and certain other rights. Our licenses are 29 | irrevocable. Licensors should read and understand the terms 30 | and conditions of the license they choose before applying it. 31 | Licensors should also secure all rights necessary before 32 | applying our licenses so that the public can reuse the 33 | material as expected. Licensors should clearly mark any 34 | material not subject to the license. This includes other CC- 35 | licensed material, or material used under an exception or 36 | limitation to copyright. More considerations for licensors: 37 | wiki.creativecommons.org/Considerations_for_licensors 38 | 39 | Considerations for the public: By using one of our public 40 | licenses, a licensor grants the public permission to use the 41 | licensed material under specified terms and conditions. If 42 | the licensor's permission is not necessary for any reason--for 43 | example, because of any applicable exception or limitation to 44 | copyright--then that use is not regulated by the license. Our 45 | licenses grant only permissions under copyright and certain 46 | other rights that a licensor has authority to grant. Use of 47 | the licensed material may still be restricted for other 48 | reasons, including because others have copyright or other 49 | rights in the material. A licensor may make special requests, 50 | such as asking that all changes be marked or described. 51 | Although not required by our licenses, you are encouraged to 52 | respect those requests where reasonable. More_considerations 53 | for the public: 54 | wiki.creativecommons.org/Considerations_for_licensees 55 | 56 | ======================================================================= 57 | 58 | Creative Commons Attribution 4.0 International Public License 59 | 60 | By exercising the Licensed Rights (defined below), You accept and agree 61 | to be bound by the terms and conditions of this Creative Commons 62 | Attribution 4.0 International Public License ("Public License"). To the 63 | extent this Public License may be interpreted as a contract, You are 64 | granted the Licensed Rights in consideration of Your acceptance of 65 | these terms and conditions, and the Licensor grants You such rights in 66 | consideration of benefits the Licensor receives from making the 67 | Licensed Material available under these terms and conditions. 68 | 69 | 70 | Section 1 -- Definitions. 71 | 72 | a. Adapted Material means material subject to Copyright and Similar 73 | Rights that is derived from or based upon the Licensed Material 74 | and in which the Licensed Material is translated, altered, 75 | arranged, transformed, or otherwise modified in a manner requiring 76 | permission under the Copyright and Similar Rights held by the 77 | Licensor. For purposes of this Public License, where the Licensed 78 | Material is a musical work, performance, or sound recording, 79 | Adapted Material is always produced where the Licensed Material is 80 | synched in timed relation with a moving image. 81 | 82 | b. Adapter's License means the license You apply to Your Copyright 83 | and Similar Rights in Your contributions to Adapted Material in 84 | accordance with the terms and conditions of this Public License. 85 | 86 | c. Copyright and Similar Rights means copyright and/or similar rights 87 | closely related to copyright including, without limitation, 88 | performance, broadcast, sound recording, and Sui Generis Database 89 | Rights, without regard to how the rights are labeled or 90 | categorized. For purposes of this Public License, the rights 91 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 92 | Rights. 93 | 94 | d. Effective Technological Measures means those measures that, in the 95 | absence of proper authority, may not be circumvented under laws 96 | fulfilling obligations under Article 11 of the WIPO Copyright 97 | Treaty adopted on December 20, 1996, and/or similar international 98 | agreements. 99 | 100 | e. Exceptions and Limitations means fair use, fair dealing, and/or 101 | any other exception or limitation to Copyright and Similar Rights 102 | that applies to Your use of the Licensed Material. 103 | 104 | f. Licensed Material means the artistic or literary work, database, 105 | or other material to which the Licensor applied this Public 106 | License. 107 | 108 | g. Licensed Rights means the rights granted to You subject to the 109 | terms and conditions of this Public License, which are limited to 110 | all Copyright and Similar Rights that apply to Your use of the 111 | Licensed Material and that the Licensor has authority to license. 112 | 113 | h. Licensor means the individual(s) or entity(ies) granting rights 114 | under this Public License. 115 | 116 | i. Share means to provide material to the public by any means or 117 | process that requires permission under the Licensed Rights, such 118 | as reproduction, public display, public performance, distribution, 119 | dissemination, communication, or importation, and to make material 120 | available to the public including in ways that members of the 121 | public may access the material from a place and at a time 122 | individually chosen by them. 123 | 124 | j. Sui Generis Database Rights means rights other than copyright 125 | resulting from Directive 96/9/EC of the European Parliament and of 126 | the Council of 11 March 1996 on the legal protection of databases, 127 | as amended and/or succeeded, as well as other essentially 128 | equivalent rights anywhere in the world. 129 | 130 | k. You means the individual or entity exercising the Licensed Rights 131 | under this Public License. Your has a corresponding meaning. 132 | 133 | 134 | Section 2 -- Scope. 135 | 136 | a. License grant. 137 | 138 | 1. Subject to the terms and conditions of this Public License, 139 | the Licensor hereby grants You a worldwide, royalty-free, 140 | non-sublicensable, non-exclusive, irrevocable license to 141 | exercise the Licensed Rights in the Licensed Material to: 142 | 143 | a. reproduce and Share the Licensed Material, in whole or 144 | in part; and 145 | 146 | b. produce, reproduce, and Share Adapted Material. 147 | 148 | 2. Exceptions and Limitations. For the avoidance of doubt, where 149 | Exceptions and Limitations apply to Your use, this Public 150 | License does not apply, and You do not need to comply with 151 | its terms and conditions. 152 | 153 | 3. Term. The term of this Public License is specified in Section 154 | 6(a). 155 | 156 | 4. Media and formats; technical modifications allowed. The 157 | Licensor authorizes You to exercise the Licensed Rights in 158 | all media and formats whether now known or hereafter created, 159 | and to make technical modifications necessary to do so. The 160 | Licensor waives and/or agrees not to assert any right or 161 | authority to forbid You from making technical modifications 162 | necessary to exercise the Licensed Rights, including 163 | technical modifications necessary to circumvent Effective 164 | Technological Measures. For purposes of this Public License, 165 | simply making modifications authorized by this Section 2(a) 166 | (4) never produces Adapted Material. 167 | 168 | 5. Downstream recipients. 169 | 170 | a. Offer from the Licensor -- Licensed Material. Every 171 | recipient of the Licensed Material automatically 172 | receives an offer from the Licensor to exercise the 173 | Licensed Rights under the terms and conditions of this 174 | Public License. 175 | 176 | b. No downstream restrictions. You may not offer or impose 177 | any additional or different terms or conditions on, or 178 | apply any Effective Technological Measures to, the 179 | Licensed Material if doing so restricts exercise of the 180 | Licensed Rights by any recipient of the Licensed 181 | Material. 182 | 183 | 6. No endorsement. Nothing in this Public License constitutes or 184 | may be construed as permission to assert or imply that You 185 | are, or that Your use of the Licensed Material is, connected 186 | with, or sponsored, endorsed, or granted official status by, 187 | the Licensor or others designated to receive attribution as 188 | provided in Section 3(a)(1)(A)(i). 189 | 190 | b. Other rights. 191 | 192 | 1. Moral rights, such as the right of integrity, are not 193 | licensed under this Public License, nor are publicity, 194 | privacy, and/or other similar personality rights; however, to 195 | the extent possible, the Licensor waives and/or agrees not to 196 | assert any such rights held by the Licensor to the limited 197 | extent necessary to allow You to exercise the Licensed 198 | Rights, but not otherwise. 199 | 200 | 2. Patent and trademark rights are not licensed under this 201 | Public License. 202 | 203 | 3. To the extent possible, the Licensor waives any right to 204 | collect royalties from You for the exercise of the Licensed 205 | Rights, whether directly or through a collecting society 206 | under any voluntary or waivable statutory or compulsory 207 | licensing scheme. In all other cases the Licensor expressly 208 | reserves any right to collect such royalties. 209 | 210 | 211 | Section 3 -- License Conditions. 212 | 213 | Your exercise of the Licensed Rights is expressly made subject to the 214 | following conditions. 215 | 216 | a. Attribution. 217 | 218 | 1. If You Share the Licensed Material (including in modified 219 | form), You must: 220 | 221 | a. retain the following if it is supplied by the Licensor 222 | with the Licensed Material: 223 | 224 | i. identification of the creator(s) of the Licensed 225 | Material and any others designated to receive 226 | attribution, in any reasonable manner requested by 227 | the Licensor (including by pseudonym if 228 | designated); 229 | 230 | ii. a copyright notice; 231 | 232 | iii. a notice that refers to this Public License; 233 | 234 | iv. a notice that refers to the disclaimer of 235 | warranties; 236 | 237 | v. a URI or hyperlink to the Licensed Material to the 238 | extent reasonably practicable; 239 | 240 | b. indicate if You modified the Licensed Material and 241 | retain an indication of any previous modifications; and 242 | 243 | c. indicate the Licensed Material is licensed under this 244 | Public License, and include the text of, or the URI or 245 | hyperlink to, this Public License. 246 | 247 | 2. You may satisfy the conditions in Section 3(a)(1) in any 248 | reasonable manner based on the medium, means, and context in 249 | which You Share the Licensed Material. For example, it may be 250 | reasonable to satisfy the conditions by providing a URI or 251 | hyperlink to a resource that includes the required 252 | information. 253 | 254 | 3. If requested by the Licensor, You must remove any of the 255 | information required by Section 3(a)(1)(A) to the extent 256 | reasonably practicable. 257 | 258 | 4. If You Share Adapted Material You produce, the Adapter's 259 | License You apply must not prevent recipients of the Adapted 260 | Material from complying with this Public License. 261 | 262 | 263 | Section 4 -- Sui Generis Database Rights. 264 | 265 | Where the Licensed Rights include Sui Generis Database Rights that 266 | apply to Your use of the Licensed Material: 267 | 268 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 269 | to extract, reuse, reproduce, and Share all or a substantial 270 | portion of the contents of the database; 271 | 272 | b. if You include all or a substantial portion of the database 273 | contents in a database in which You have Sui Generis Database 274 | Rights, then the database in which You have Sui Generis Database 275 | Rights (but not its individual contents) is Adapted Material; and 276 | 277 | c. You must comply with the conditions in Section 3(a) if You Share 278 | all or a substantial portion of the contents of the database. 279 | 280 | For the avoidance of doubt, this Section 4 supplements and does not 281 | replace Your obligations under this Public License where the Licensed 282 | Rights include other Copyright and Similar Rights. 283 | 284 | 285 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 286 | 287 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 288 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 289 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 290 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 291 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 292 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 293 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 294 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 295 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 296 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 297 | 298 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 299 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 300 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 301 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 302 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 303 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 304 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 305 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 306 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 307 | 308 | c. The disclaimer of warranties and limitation of liability provided 309 | above shall be interpreted in a manner that, to the extent 310 | possible, most closely approximates an absolute disclaimer and 311 | waiver of all liability. 312 | 313 | 314 | Section 6 -- Term and Termination. 315 | 316 | a. This Public License applies for the term of the Copyright and 317 | Similar Rights licensed here. However, if You fail to comply with 318 | this Public License, then Your rights under this Public License 319 | terminate automatically. 320 | 321 | b. Where Your right to use the Licensed Material has terminated under 322 | Section 6(a), it reinstates: 323 | 324 | 1. automatically as of the date the violation is cured, provided 325 | it is cured within 30 days of Your discovery of the 326 | violation; or 327 | 328 | 2. upon express reinstatement by the Licensor. 329 | 330 | For the avoidance of doubt, this Section 6(b) does not affect any 331 | right the Licensor may have to seek remedies for Your violations 332 | of this Public License. 333 | 334 | c. For the avoidance of doubt, the Licensor may also offer the 335 | Licensed Material under separate terms or conditions or stop 336 | distributing the Licensed Material at any time; however, doing so 337 | will not terminate this Public License. 338 | 339 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 340 | License. 341 | 342 | 343 | Section 7 -- Other Terms and Conditions. 344 | 345 | a. The Licensor shall not be bound by any additional or different 346 | terms or conditions communicated by You unless expressly agreed. 347 | 348 | b. Any arrangements, understandings, or agreements regarding the 349 | Licensed Material not stated herein are separate from and 350 | independent of the terms and conditions of this Public License. 351 | 352 | 353 | Section 8 -- Interpretation. 354 | 355 | a. For the avoidance of doubt, this Public License does not, and 356 | shall not be interpreted to, reduce, limit, restrict, or impose 357 | conditions on any use of the Licensed Material that could lawfully 358 | be made without permission under this Public License. 359 | 360 | b. To the extent possible, if any provision of this Public License is 361 | deemed unenforceable, it shall be automatically reformed to the 362 | minimum extent necessary to make it enforceable. If the provision 363 | cannot be reformed, it shall be severed from this Public License 364 | without affecting the enforceability of the remaining terms and 365 | conditions. 366 | 367 | c. No term or condition of this Public License will be waived and no 368 | failure to comply consented to unless expressly agreed to by the 369 | Licensor. 370 | 371 | d. Nothing in this Public License constitutes or may be interpreted 372 | as a limitation upon, or waiver of, any privileges and immunities 373 | that apply to the Licensor or You, including from the legal 374 | processes of any jurisdiction or authority. 375 | 376 | 377 | ======================================================================= 378 | 379 | Creative Commons is not a party to its public 380 | licenses. Notwithstanding, Creative Commons may elect to apply one of 381 | its public licenses to material it publishes and in those instances 382 | will be considered the “Licensor.” The text of the Creative Commons 383 | public licenses is dedicated to the public domain under the CC0 Public 384 | Domain Dedication. Except for the limited purpose of indicating that 385 | material is shared under a Creative Commons public license or as 386 | otherwise permitted by the Creative Commons policies published at 387 | creativecommons.org/policies, Creative Commons does not authorize the 388 | use of the trademark "Creative Commons" or any other trademark or logo 389 | of Creative Commons without its prior written consent including, 390 | without limitation, in connection with any unauthorized modifications 391 | to any of its public licenses or any other arrangements, 392 | understandings, or agreements concerning use of licensed material. For 393 | the avoidance of doubt, this paragraph does not form part of the 394 | public licenses. 395 | 396 | Creative Commons may be contacted at creativecommons.org. 397 | -------------------------------------------------------------------------------- /_book/site_libs/quarto-search/fuse.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io) 3 | * 4 | * Copyright (c) 2022 Kiro Risk (http://kiro.me) 5 | * All Rights Reserved. Apache Software License 2.0 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | */ 9 | var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,t);return{get:function(t){var i=t.match(C).length;if(n.has(i))return n.get(i);var o=1/Math.pow(i,.5*e),c=parseFloat(Math.round(o*r)/r);return n.set(i,c),c},clear:function(){n.clear()}}}var $=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.getFn,i=void 0===n?I.getFn:n,o=t.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o;r(this,e),this.norm=E(c,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return o(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,g(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();g(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?I.getFn:r,o=n.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o,a=new $({getFn:i,fieldNormWeight:c});return a.setKeys(e.map(_)),a.setSources(t),a.create(),a}function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,o=void 0===i?0:i,c=t.expectedLocation,a=void 0===c?0:c,s=t.distance,u=void 0===s?I.distance:s,h=t.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=r/e.length;if(l)return f;var d=Math.abs(a-o);return u?f+d/u:d?1:f}function N(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:I.minMatchCharLength,n=[],r=-1,i=-1,o=0,c=e.length;o=t&&n.push([r,i]),r=-1)}return e[o-1]&&o-r>=t&&n.push([r,o-1]),n}var P=32;function W(e){for(var t={},n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,c=void 0===o?I.location:o,a=i.threshold,s=void 0===a?I.threshold:a,u=i.distance,h=void 0===u?I.distance:u,l=i.includeMatches,f=void 0===l?I.includeMatches:l,d=i.findAllMatches,v=void 0===d?I.findAllMatches:d,g=i.minMatchCharLength,y=void 0===g?I.minMatchCharLength:g,p=i.isCaseSensitive,m=void 0===p?I.isCaseSensitive:p,k=i.ignoreLocation,M=void 0===k?I.ignoreLocation:k;if(r(this,e),this.options={location:c,threshold:s,distance:h,includeMatches:f,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:m,ignoreLocation:M},this.pattern=m?t:t.toLowerCase(),this.chunks=[],this.pattern.length){var b=function(e,t){n.chunks.push({pattern:e,alphabet:W(e),startIndex:t})},x=this.pattern.length;if(x>P){for(var w=0,L=x%P,S=x-L;w3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?I.location:i,c=r.distance,a=void 0===c?I.distance:c,s=r.threshold,u=void 0===s?I.threshold:s,h=r.findAllMatches,l=void 0===h?I.findAllMatches:h,f=r.minMatchCharLength,d=void 0===f?I.minMatchCharLength:f,v=r.includeMatches,g=void 0===v?I.includeMatches:v,y=r.ignoreLocation,p=void 0===y?I.ignoreLocation:y;if(t.length>P)throw new Error(w(P));for(var m,k=t.length,M=e.length,b=Math.max(0,Math.min(o,M)),x=u,L=b,S=d>1||g,_=S?Array(M):[];(m=e.indexOf(t,L))>-1;){var O=R(t,{currentLocation:m,expectedLocation:b,distance:a,ignoreLocation:p});if(x=Math.min(O,x),L=m+k,S)for(var j=0;j=z;q-=1){var B=q-1,J=n[e.charAt(B)];if(S&&(_[B]=+!!J),K[q]=(K[q+1]<<1|1)&J,F&&(K[q]|=(A[q+1]|A[q])<<1|1|A[q+1]),K[q]&$&&(C=R(t,{errors:F,currentLocation:B,expectedLocation:b,distance:a,ignoreLocation:p}))<=x){if(x=C,(L=B)<=b)break;z=Math.max(1,2*b-L)}}if(R(t,{errors:F+1,currentLocation:b,expectedLocation:b,distance:a,ignoreLocation:p})>x)break;A=K}var U={isMatch:L>=0,score:Math.max(.001,C)};if(S){var V=N(_,d);V.length?g&&(U.indices=V):U.isMatch=!1}return U}(e,n,i,{location:c+o,distance:a,threshold:s,findAllMatches:u,minMatchCharLength:h,includeMatches:r,ignoreLocation:l}),p=y.isMatch,m=y.score,k=y.indices;p&&(g=!0),v+=m,p&&k&&(d=[].concat(f(d),f(k)))}));var y={isMatch:g,score:g?v/this.chunks.length:1};return g&&r&&(y.indices=d),y}}]),e}(),z=function(){function e(t){r(this,e),this.pattern=t}return o(e,[{key:"search",value:function(){}}],[{key:"isMultiMatch",value:function(e){return D(e,this.multiRegex)}},{key:"isSingleMatch",value:function(e){return D(e,this.singleRegex)}}]),e}();function D(e,t){var n=e.match(t);return n?n[1]:null}var K=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"exact"}},{key:"multiRegex",get:function(){return/^="(.*)"$/}},{key:"singleRegex",get:function(){return/^=(.*)$/}}]),n}(z),q=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"$/}},{key:"singleRegex",get:function(){return/^!(.*)$/}}]),n}(z),B=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"prefix-exact"}},{key:"multiRegex",get:function(){return/^\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^\^(.*)$/}}]),n}(z),J=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-prefix-exact"}},{key:"multiRegex",get:function(){return/^!\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^!\^(.*)$/}}]),n}(z),U=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}],[{key:"type",get:function(){return"suffix-exact"}},{key:"multiRegex",get:function(){return/^"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^(.*)\$$/}}]),n}(z),V=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-suffix-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^!(.*)\$$/}}]),n}(z),G=function(e){a(n,e);var t=l(n);function n(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=o.location,a=void 0===c?I.location:c,s=o.threshold,u=void 0===s?I.threshold:s,h=o.distance,l=void 0===h?I.distance:h,f=o.includeMatches,d=void 0===f?I.includeMatches:f,v=o.findAllMatches,g=void 0===v?I.findAllMatches:v,y=o.minMatchCharLength,p=void 0===y?I.minMatchCharLength:y,m=o.isCaseSensitive,k=void 0===m?I.isCaseSensitive:m,M=o.ignoreLocation,b=void 0===M?I.ignoreLocation:M;return r(this,n),(i=t.call(this,e))._bitapSearch=new T(e,{location:a,threshold:u,distance:l,includeMatches:d,findAllMatches:g,minMatchCharLength:p,isCaseSensitive:k,ignoreLocation:b}),i}return o(n,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),n}(z),H=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){for(var t,n=0,r=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,r.push([t,n-1]);var o=!!r.length;return{isMatch:o,score:o?0:1,indices:r}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),n}(z),Q=[K,H,B,J,V,U,q,G],X=Q.length,Y=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;function Z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map((function(e){for(var n=e.trim().split(Y).filter((function(e){return e&&!!e.trim()})),r=[],i=0,o=n.length;i1&&void 0!==arguments[1]?arguments[1]:{},i=n.isCaseSensitive,o=void 0===i?I.isCaseSensitive:i,c=n.includeMatches,a=void 0===c?I.includeMatches:c,s=n.minMatchCharLength,u=void 0===s?I.minMatchCharLength:s,h=n.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=n.findAllMatches,d=void 0===f?I.findAllMatches:f,v=n.location,g=void 0===v?I.location:v,y=n.threshold,p=void 0===y?I.threshold:y,m=n.distance,k=void 0===m?I.distance:m;r(this,e),this.query=null,this.options={isCaseSensitive:o,includeMatches:a,minMatchCharLength:u,findAllMatches:d,ignoreLocation:l,location:g,threshold:p,distance:k},this.pattern=o?t:t.toLowerCase(),this.query=Z(this.pattern,this.options)}return o(e,[{key:"searchIn",value:function(e){var t=this.query;if(!t)return{isMatch:!1,score:1};var n=this.options,r=n.includeMatches;e=n.isCaseSensitive?e:e.toLowerCase();for(var i=0,o=[],c=0,a=0,s=t.length;a-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function ve(e,t){t.score=e.score}function ge(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?I.includeMatches:r,o=n.includeScore,c=void 0===o?I.includeScore:o,a=[];return i&&a.push(de),c&&a.push(ve),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return a.length&&a.forEach((function(t){t(e,r)})),r}))}var ye=function(){function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;r(this,e),this.options=t(t({},I),i),this.options.useExtendedSearch,this._keyStore=new S(this.options.keys),this.setCollection(n,o)}return o(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof $))throw new Error("Incorrect 'index' type");this._myIndex=t||F(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){k(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n1&&void 0!==arguments[1]?arguments[1]:{},n=t.limit,r=void 0===n?-1:n,i=this.options,o=i.includeMatches,c=i.includeScore,a=i.shouldSort,s=i.sortFn,u=i.ignoreFieldNorm,h=g(e)?g(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return fe(h,{ignoreFieldNorm:u}),a&&h.sort(s),y(r)&&r>-1&&(h=h.slice(0,r)),ge(h,this._docs,{includeMatches:o,includeScore:c})}},{key:"_searchStringList",value:function(e){var t=re(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,o=e.n;if(k(n)){var c=t.searchIn(n),a=c.isMatch,s=c.score,u=c.indices;a&&r.push({item:n,idx:i,matches:[{score:s,value:n,norm:o,indices:u}]})}})),r}},{key:"_searchLogical",value:function(e){var t=this,n=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).auto,r=void 0===n||n,i=function e(n){var i=Object.keys(n),o=ue(n);if(!o&&i.length>1&&!se(n))return e(le(n));if(he(n)){var c=o?n[ce]:i[0],a=o?n[ae]:n[c];if(!g(a))throw new Error(x(c));var s={keyId:j(c),pattern:a};return r&&(s.searcher=re(a,t)),s}var u={children:[],operator:i[0]};return i.forEach((function(t){var r=n[t];v(r)&&r.forEach((function(t){u.children.push(e(t))}))})),u};return se(e)||(e=le(e)),i(e)}(e,this.options),r=function e(n,r,i){if(!n.children){var o=n.keyId,c=n.searcher,a=t._findMatches({key:t._keyStore.get(o),value:t._myIndex.getValueForItemAtKeyId(r,o),searcher:c});return a&&a.length?[{idx:i,item:r,matches:a}]:[]}for(var s=[],u=0,h=n.children.length;u1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?I.getFn:n,i=t.fieldNormWeight,o=void 0===i?I.fieldNormWeight:i,c=e.keys,a=e.records,s=new $({getFn:r,fieldNormWeight:o});return s.setKeys(c),s.setIndexRecords(a),s},ye.config=I,function(){ne.push.apply(ne,arguments)}(te),ye},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t(); -------------------------------------------------------------------------------- /_book/site_libs/quarto-html/tippy.umd.min.js: -------------------------------------------------------------------------------- 1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?M(e,t.content):e.textContent=t.content)}function S(e){var t=e.firstElementChild,n=f(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function N(e){var t=d(),n=d();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=d();function o(n,r){var o=S(t),i=o.box,a=o.content,s=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||I(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(i.removeChild(s),i.appendChild(V(r.arrow))):i.appendChild(V(r.arrow)):s&&i.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),I(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}N.$$tippy=!0;var B=1,H=[],U=[];function _(o,s){var v,g,h,C,T,A,L,k,M=j(o,Object.assign({},R,P(l(s)))),V=!1,I=!1,N=!1,_=!1,F=[],W=a(we,M.interactiveDebounce),X=B++,Y=(k=M.plugins).filter((function(e,t){return k.indexOf(e)===t})),$={id:X,reference:o,popper:d(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:Y,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(g),cancelAnimationFrame(h)},setProps:function(e){if($.state.isDestroyed)return;ae("onBeforeUpdate",[$,e]),be();var t=$.props,n=j(o,Object.assign({},t,l(e),{ignoreAttributes:!0}));$.props=n,he(),t.interactiveDebounce!==n.interactiveDebounce&&(ce(),W=a(we,n.interactiveDebounce));t.triggerTarget&&!n.triggerTarget?u(t.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):n.triggerTarget&&o.removeAttribute("aria-expanded");ue(),ie(),J&&J(t,n);$.popperInstance&&(Ce(),Ae().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));ae("onAfterUpdate",[$,e])},setContent:function(e){$.setProps({content:e})},show:function(){var e=$.state.isVisible,t=$.state.isDestroyed,o=!$.state.isEnabled,a=x.isTouch&&!$.props.touch,s=r($.props.duration,0,R.duration);if(e||t||o||a)return;if(te().hasAttribute("disabled"))return;if(ae("onShow",[$],!1),!1===$.props.onShow($))return;$.state.isVisible=!0,ee()&&(z.style.visibility="visible");ie(),de(),$.state.isMounted||(z.style.transition="none");if(ee()){var u=re(),p=u.box,f=u.content;b([p,f],0)}A=function(){var e;if($.state.isVisible&&!_){if(_=!0,z.offsetHeight,z.style.transition=$.props.moveTransition,ee()&&$.props.animation){var t=re(),n=t.box,r=t.content;b([n,r],s),y([n,r],"visible")}se(),ue(),c(U,$),null==(e=$.popperInstance)||e.forceUpdate(),ae("onMount",[$]),$.props.animation&&ee()&&function(e,t){me(e,t)}(s,(function(){$.state.isShown=!0,ae("onShown",[$])}))}},function(){var e,t=$.props.appendTo,r=te();e=$.props.interactive&&t===n||"parent"===t?r.parentNode:i(t,[r]);e.contains(z)||e.appendChild(z);$.state.isMounted=!0,Ce()}()},hide:function(){var e=!$.state.isVisible,t=$.state.isDestroyed,n=!$.state.isEnabled,o=r($.props.duration,1,R.duration);if(e||t||n)return;if(ae("onHide",[$],!1),!1===$.props.onHide($))return;$.state.isVisible=!1,$.state.isShown=!1,_=!1,V=!1,ee()&&(z.style.visibility="hidden");if(ce(),ve(),ie(!0),ee()){var i=re(),a=i.box,s=i.content;$.props.animation&&(b([a,s],o),y([a,s],"hidden"))}se(),ue(),$.props.animation?ee()&&function(e,t){me(e,(function(){!$.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&t()}))}(o,$.unmount):$.unmount()},hideWithInteractivity:function(e){ne().addEventListener("mousemove",W),c(H,W),W(e)},enable:function(){$.state.isEnabled=!0},disable:function(){$.hide(),$.state.isEnabled=!1},unmount:function(){$.state.isVisible&&$.hide();if(!$.state.isMounted)return;Te(),Ae().forEach((function(e){e._tippy.unmount()})),z.parentNode&&z.parentNode.removeChild(z);U=U.filter((function(e){return e!==$})),$.state.isMounted=!1,ae("onHidden",[$])},destroy:function(){if($.state.isDestroyed)return;$.clearDelayTimeouts(),$.unmount(),be(),delete o._tippy,$.state.isDestroyed=!0,ae("onDestroy",[$])}};if(!M.render)return $;var q=M.render($),z=q.popper,J=q.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+$.id,$.popper=z,o._tippy=$,z._tippy=$;var G=Y.map((function(e){return e.fn($)})),K=o.hasAttribute("aria-expanded");return he(),ue(),ie(),ae("onCreate",[$]),M.showOnCreate&&Le(),z.addEventListener("mouseenter",(function(){$.props.interactive&&$.state.isVisible&&$.clearDelayTimeouts()})),z.addEventListener("mouseleave",(function(){$.props.interactive&&$.props.trigger.indexOf("mouseenter")>=0&&ne().addEventListener("mousemove",W)})),$;function Q(){var e=$.props.touch;return Array.isArray(e)?e:[e,0]}function Z(){return"hold"===Q()[0]}function ee(){var e;return!(null==(e=$.props.render)||!e.$$tippy)}function te(){return L||o}function ne(){var e=te().parentNode;return e?w(e):document}function re(){return S(z)}function oe(e){return $.state.isMounted&&!$.state.isVisible||x.isTouch||C&&"focus"===C.type?0:r($.props.delay,e?0:1,R.delay)}function ie(e){void 0===e&&(e=!1),z.style.pointerEvents=$.props.interactive&&!e?"":"none",z.style.zIndex=""+$.props.zIndex}function ae(e,t,n){var r;(void 0===n&&(n=!0),G.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(r=$.props)[e].apply(r,t)}function se(){var e=$.props.aria;if(e.content){var t="aria-"+e.content,n=z.id;u($.props.triggerTarget||o).forEach((function(e){var r=e.getAttribute(t);if($.state.isVisible)e.setAttribute(t,r?r+" "+n:n);else{var o=r&&r.replace(n,"").trim();o?e.setAttribute(t,o):e.removeAttribute(t)}}))}}function ue(){!K&&$.props.aria.expanded&&u($.props.triggerTarget||o).forEach((function(e){$.props.interactive?e.setAttribute("aria-expanded",$.state.isVisible&&e===te()?"true":"false"):e.removeAttribute("aria-expanded")}))}function ce(){ne().removeEventListener("mousemove",W),H=H.filter((function(e){return e!==W}))}function pe(e){if(!x.isTouch||!N&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!$.props.interactive||!O(z,t)){if(u($.props.triggerTarget||o).some((function(e){return O(e,t)}))){if(x.isTouch)return;if($.state.isVisible&&$.props.trigger.indexOf("click")>=0)return}else ae("onClickOutside",[$,e]);!0===$.props.hideOnClick&&($.clearDelayTimeouts(),$.hide(),I=!0,setTimeout((function(){I=!1})),$.state.isMounted||ve())}}}function fe(){N=!0}function le(){N=!1}function de(){var e=ne();e.addEventListener("mousedown",pe,!0),e.addEventListener("touchend",pe,t),e.addEventListener("touchstart",le,t),e.addEventListener("touchmove",fe,t)}function ve(){var e=ne();e.removeEventListener("mousedown",pe,!0),e.removeEventListener("touchend",pe,t),e.removeEventListener("touchstart",le,t),e.removeEventListener("touchmove",fe,t)}function me(e,t){var n=re().box;function r(e){e.target===n&&(E(n,"remove",r),t())}if(0===e)return t();E(n,"remove",T),E(n,"add",r),T=r}function ge(e,t,n){void 0===n&&(n=!1),u($.props.triggerTarget||o).forEach((function(r){r.addEventListener(e,t,n),F.push({node:r,eventType:e,handler:t,options:n})}))}function he(){var e;Z()&&(ge("touchstart",ye,{passive:!0}),ge("touchend",Ee,{passive:!0})),(e=$.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(ge(e,ye),e){case"mouseenter":ge("mouseleave",Ee);break;case"focus":ge(D?"focusout":"blur",Oe);break;case"focusin":ge("focusout",Oe)}}))}function be(){F.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),F=[]}function ye(e){var t,n=!1;if($.state.isEnabled&&!xe(e)&&!I){var r="focus"===(null==(t=C)?void 0:t.type);C=e,L=e.currentTarget,ue(),!$.state.isVisible&&m(e)&&H.forEach((function(t){return t(e)})),"click"===e.type&&($.props.trigger.indexOf("mouseenter")<0||V)&&!1!==$.props.hideOnClick&&$.state.isVisible?n=!0:Le(e),"click"===e.type&&(V=!n),n&&!r&&De(e)}}function we(e){var t=e.target,n=te().contains(t)||z.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=p(o.placement),s=o.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=t.top-r+u>i,v=r-t.bottom-c>i,m=t.left-n+f>i,g=n-t.right-l>i;return d||v||m||g}))}(Ae().concat(z).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),e)&&(ce(),De(e))}function Ee(e){xe(e)||$.props.trigger.indexOf("click")>=0&&V||($.props.interactive?$.hideWithInteractivity(e):De(e))}function Oe(e){$.props.trigger.indexOf("focusin")<0&&e.target!==te()||$.props.interactive&&e.relatedTarget&&z.contains(e.relatedTarget)||De(e)}function xe(e){return!!x.isTouch&&Z()!==e.type.indexOf("touch")>=0}function Ce(){Te();var t=$.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,s=t.moveTransition,u=ee()?S(z).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||te()}:o,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(ee()){var n=re().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];ee()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),$.popperInstance=e.createPopper(c,z,Object.assign({},n,{placement:r,onFirstUpdate:A,modifiers:p}))}function Te(){$.popperInstance&&($.popperInstance.destroy(),$.popperInstance=null)}function Ae(){return f(z.querySelectorAll("[data-tippy-root]"))}function Le(e){$.clearDelayTimeouts(),e&&ae("onTrigger",[$,e]),de();var t=oe(!0),n=Q(),r=n[0],o=n[1];x.isTouch&&"hold"===r&&o&&(t=o),t?v=setTimeout((function(){$.show()}),t):$.show()}function De(e){if($.clearDelayTimeouts(),ae("onUntrigger",[$,e]),$.state.isVisible){if(!($.props.trigger.indexOf("mouseenter")>=0&&$.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&V)){var t=oe(!1);t?g=setTimeout((function(){$.state.isVisible&&$.hide()}),t):h=requestAnimationFrame((function(){$.hide()}))}}else ve()}}function F(e,n){void 0===n&&(n={});var r=R.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,t),window.addEventListener("blur",L);var o=Object.assign({},n,{plugins:r}),i=h(e).reduce((function(e,t){var n=t&&_(t,o);return n&&e.push(n),e}),[]);return v(e)?i[0]:i}F.defaultProps=R,F.setDefaultProps=function(e){Object.keys(e).forEach((function(t){R[t]=e[t]}))},F.currentInput=x;var W=Object.assign({},e.applyStyles,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),X={mouseover:"mouseenter",focusin:"focus",click:"click"};var Y={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=S(e.popper),r=n.box,o=n.content,i=e.props.animateFill?function(){var e=d();return e.className="tippy-backdrop",y([e],"hidden"),e}():null;return{onCreate:function(){i&&(r.insertBefore(i,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(i){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));o.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y([i],"visible")}},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y([i],"hidden")}}}};var $={clientX:0,clientY:0},q=[];function z(e){var t=e.clientX,n=e.clientY;$={clientX:t,clientY:n}}var J={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=w(e.props.triggerTarget||t),r=!1,o=!1,i=!0,a=e.props;function s(){return"initial"===e.props.followCursor&&e.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,e.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||t.contains(n.target),o=e.props.followCursor,i=n.clientX,a=n.clientY,s=t.getBoundingClientRect(),u=i-s.left,c=a-s.top;!r&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=i,r=a;"initial"===o&&(n=e.left+u,r=e.top+c);var s="horizontal"===o?e.top:r,p="vertical"===o?e.right:n,f="horizontal"===o?e.bottom:r,l="vertical"===o?e.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){e.props.followCursor&&(q.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",z)}(n))}function d(){0===(q=q.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",z)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=e.props},onAfterUpdate:function(t,n){var i=n.followCursor;r||void 0!==i&&a.followCursor!==i&&(d(),i?(l(),!e.state.isMounted||o||s()||u()):(c(),p()))},onMount:function(){e.props.followCursor&&!o&&(i&&(f($),i=!1),s()||u())},onTrigger:function(e,t){m(t)&&($={clientX:t.clientX,clientY:t.clientY}),o="focus"===t.type},onHidden:function(){e.props.followCursor&&(p(),c(),i=!0)}}}};var G={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference;var r=-1,o=!1,i=[],a={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(o){var a=o.state;e.props.inlinePositioning&&(-1!==i.indexOf(a.placement)&&(i=[]),t!==a.placement&&-1===i.indexOf(a.placement)&&(i.push(a.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,r){if(n.length<2||null===e)return t;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":var o=n[0],i=n[n.length-1],a="top"===e,s=o.top,u=i.bottom,c=a?o.left:i.left,p=a?o.right:i.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),l=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return t}}(p(e),n.getBoundingClientRect(),f(n.getClientRects()),r)}(a.placement)}})),t=a.placement)}};function s(){var t;o||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,a),o=!0,e.setProps(t),o=!1)}return{onCreate:s,onAfterUpdate:s,onTrigger:function(t,n){if(m(n)){var o=f(e.reference.getClientRects()),i=o.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),a=o.indexOf(i);r=a>-1?a:r}},onHidden:function(){r=-1}}}};var K={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function r(t){return!0===e.props.sticky||e.props.sticky===t}var o=null,i=null;function a(){var s=r("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&Q(o,s)||u&&Q(i,u))&&e.popperInstance&&e.popperInstance.update(),o=s,i=u,e.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){e.props.sticky&&a()}}}};function Q(e,t){return!e||!t||(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)}return F.setDefaultProps({plugins:[Y,J,G,K],render:N}),F.createSingleton=function(e,t){var n;void 0===t&&(t={});var r,o=e,i=[],a=[],c=t.overrides,p=[],f=!1;function l(){a=o.map((function(e){return u(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function v(){i=o.map((function(e){return e.reference}))}function m(e){o.forEach((function(t){e?t.enable():t.disable()}))}function g(e){return o.map((function(t){var n=t.setProps;return t.setProps=function(o){n(o),t.reference===r&&e.setProps(o)},function(){t.setProps=n}}))}function h(e,t){var n=a.indexOf(t);if(t!==r){r=t;var s=(c||[]).concat("content").reduce((function(e,t){return e[t]=o[n].props[t],e}),{});e.setProps(Object.assign({},s,{getReferenceClientRect:"function"==typeof s.getReferenceClientRect?s.getReferenceClientRect:function(){var e;return null==(e=i[n])?void 0:e.getBoundingClientRect()}}))}}m(!1),v(),l();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){r=null},onClickOutside:function(e){e.props.showOnCreate&&!f&&(f=!0,r=null)},onShow:function(e){e.props.showOnCreate&&!f&&(f=!0,h(e,i[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},y=F(d(),Object.assign({},s(t,["overrides"]),{plugins:[b].concat(t.plugins||[]),triggerTarget:a,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[W])})})),w=y.show;y.show=function(e){if(w(),!r&&null==e)return h(y,i[0]);if(!r||null!=e){if("number"==typeof e)return i[e]&&h(y,i[e]);if(o.indexOf(e)>=0){var t=e.reference;return h(y,t)}return i.indexOf(e)>=0?h(y,e):void 0}},y.showNext=function(){var e=i[0];if(!r)return y.show(0);var t=i.indexOf(r);y.show(i[t+1]||e)},y.showPrevious=function(){var e=i[i.length-1];if(!r)return y.show(e);var t=i.indexOf(r),n=i[t-1]||e;y.show(n)};var E=y.setProps;return y.setProps=function(e){c=e.overrides||c,E(e)},y.setInstances=function(e){m(!0),p.forEach((function(e){return e()})),o=e,m(!1),v(),l(),p=g(y),y.setProps({triggerTarget:a})},p=g(y),y},F.delegate=function(e,n){var r=[],o=[],i=!1,a=n.target,c=s(n,["target"]),p=Object.assign({},c,{trigger:"manual",touch:!1}),f=Object.assign({touch:R.touch},c,{showOnCreate:!0}),l=F(e,p);function d(e){if(e.target&&!i){var t=e.target.closest(a);if(t){var r=t.getAttribute("data-tippy-trigger")||n.trigger||R.trigger;if(!t._tippy&&!("touchstart"===e.type&&"boolean"==typeof f.touch||"touchstart"!==e.type&&r.indexOf(X[e.type])<0)){var s=F(t,f);s&&(o=o.concat(s))}}}}function v(e,t,n,o){void 0===o&&(o=!1),e.addEventListener(t,n,o),r.push({node:e,eventType:t,handler:n,options:o})}return u(l).forEach((function(e){var n=e.destroy,a=e.enable,s=e.disable;e.destroy=function(e){void 0===e&&(e=!0),e&&o.forEach((function(e){e.destroy()})),o=[],r.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),r=[],n()},e.enable=function(){a(),o.forEach((function(e){return e.enable()})),i=!1},e.disable=function(){s(),o.forEach((function(e){return e.disable()})),i=!0},function(e){var n=e.reference;v(n,"touchstart",d,t),v(n,"mouseover",d),v(n,"focusin",d),v(n,"click",d)}(e)})),l},F.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;U.forEach((function(e){var t=!1;if(n&&(t=g(n)?e.reference===n:e.popper===n.popper),!t){var o=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:o})}}))},F.roundArrow='',F})); 2 | 3 | -------------------------------------------------------------------------------- /_book/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | Global Change Research Group How We Work 14 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 73 | 74 | 75 | 76 | 77 | 78 | 79 |
80 |
81 | 94 |
95 | 96 |
97 | 98 | 159 |
160 | 161 | 170 | 171 |
172 | 173 |
174 |
175 |

Global Change Research Group How We Work

176 |
177 | 178 |
179 |
180 | This is the lab manual for the Global Change Research Group at the University of California Santa Cruz 181 |
182 |
183 | 184 | 185 |
186 | 187 |
188 |
Author
189 |
190 |

Roy Roberts

191 |
192 |
193 | 194 |
195 |
Published
196 |
197 |

March 11, 2025

198 |
199 |
200 | 201 | 202 |
203 | 204 | 205 | 206 |
207 | 208 | 209 |
210 |

1 Welcome!

211 |


This is the lab manual for the Global Change Research Group at the University of California, Santa Cruz. We study how species adapt to rapidly changing environments to inform global stewardship and train the next generation of scientific leaders. More about our group’s research can be found on our website.

212 |

This lab manual resource is intended to provide an overview for lab members and others about how we do our work, and our expectations for our team. It is also a space to document institutional knowledge and for important information about procedures and available resources. Lab protocol and methods can be found in a separate book Pinsky Lab Methods.

213 |

This book is based on the Feylab Lab Manual. Because this repo existed proir, the Feylab Lab Manual repo was not forked and instead the structure and format were imitated. If interested in creating a similar please visit the Feylab Lab Manual Repo or see Quick steps to making a copy of the lab manual and publishing it!

214 |
215 |

This lab is licensed under a Creative Commons Attribution 4.0 International License.

216 | 217 | 218 |
219 | 220 |
221 | 638 | 647 |
648 | 661 | 662 | 663 | 664 | 665 | --------------------------------------------------------------------------------