--- title: nf-core/bytesize 29 coproID tags: bytesize, nf-core, open-source, talk --- <!-- .slide: data-background="https://raw.githubusercontent.com/maxulysse/maxulysse.github.io/main/assets/img/svg/green_white_bg.svg" --> <a href="https://www.nf-co.re"><img src="https://raw.githubusercontent.com/nf-core/logos/master/byte-size-logos/bytesize-darkbg.svg" width="65%"><img></a> # \#29: coproID Maxime Borry / <img src="https://openmoji.org/data/color/svg/E040.svg" width=50> @notmaxib / <img src="https://openmoji.org/data/color/svg/E045.svg" width=50> @maxibor Max Planck Institute for Evolutionary Anthropology --- # Overview - What is a coprolite ? :poop: - The challenge of identifying their source :dog: :man_and_woman_holding_hands: - The coproID solution :computer: - nf-core then and now --- # What is a coprolite ? <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Lloydsbankcoprolite_001.jpg/1920px-Lloydsbankcoprolite_001.jpg" width=50%> [The Lloyds bank coprolite - 9th century AD](https://hackmd.io/@aIp0E0_QTJmf9nJ0B87tfg/B1z4GjCOK) **Coprolite ~= Paleofeces** ---- ## Why do we study coprolites ? *A window into the past on the gut microbiome and diet of historical and archaic individuals.* For example: [blue cheese and beer consumption identified from ~ 2500 years old coprolites](https://doi.org/10.1016/j.cub.2021.09.031) <img src="https://i.imgur.com/y1qgRPQ.png" width=20%></img> --- # The challenge of identifying a coprolite's origin Example: A gut microbiome study of *Elmo mupettus* <img src="https://c.tenor.com/q1Yd0ehs3DEAAAAC/pooping-elmo.gif" width=40%></img> <img src="https://i.imgur.com/XQ8aZGy.png" width=40%></img> ---- # Archeological sample reality check Coprolites are often found in a archeological context that can not easily help to attribute them a maker. - No nearby human remains - Shape/consistancy degraded - Mixed human and animal occupation <img src="https://i.imgur.com/L6G72ft.png" width=40%></img> --- # The coproID solution <img src="https://dfzljdn9uc3pi.cloudfront.net/2020/9001/1/fig-2-2x.jpg" width=50%></img> ---- ## Host DNA competitive mapping **Align DNA sequencing reads simultaneously against most likely host genomes** <a href="https://doi.org/10.1038/nmicrobiol.2016.161"><img src="https://i.imgur.com/D6j26Cu.png" width=50%></img></a> ---- ## Gut microbiome profiling Kraken2 taxonomic profiler -> Sample pairwise distance metrics -> Dimensionality reduction <img src="https://i.imgur.com/K0CPuBd.png" width=50%></img> ---- ## Predicting unknown sources from reference samples <img src="https://i.imgur.com/eMeLOXA.png" width=50%></img> ---- ## Predicting unknown sources from reference samples <img src="https://i.imgur.com/2HJWJQo.png" width=45%></img> <a href="https://github.com/maxibor/sourcepredict"><img src="https://i.imgur.com/VZr5xuu.png" width=45%></img></a> ---- ## Predicting unknown sources from reference samples <img src="https://i.imgur.com/qU6863J.png" width=75%></img> --- ## Putting it together Interactive report [maximeborry.com/coproID_report.html](https://maximeborry.com/coproID_report.html) --- # nf-core then and now Last release of coproID in April 2020 :older_adult: <img src="https://i.imgur.com/5nM0qcz.jpg" width=50%></img> ---- - nf-core tools v1.8 - No nf-core schema - No DSL2/modules Exciting to see nf-core develop so rapidly, but challenging to keep pipelines up to date. --- # The End <!-- .slide: data-background="https://raw.githubusercontent.com/maxulysse/maxulysse.github.io/main/assets/img/svg/green_white_bg.svg" --> Repository: [`nf-core/coproid`](https://github.com/nf-core/coproID) Article: [`CoproID predicts the source of coprolites and paleofeces using microbiome composition and host DNA content`](https://doi.org/10.7717/peerj.9001) Slack channel: [`https://nf-co.re/join`](https://nf-co.re/join) <img src="https://cdn.brandfolder.io/5H442O3W/at/pl546j-7le8zk-6gwiyo/Slack_Mark.svg" width=7.5%></img>`#coproid` <div style="margin-top:0.1em">&nbsp;</div> <p align="center"> Follow nf-core on <a href="https://www.twitter.com/nf_core"><img src="https://openmoji.org/data/color/svg/E040.svg" width=6%></a> <a href="https://github.com/nf-core"><img src="https://openmoji.org/data/color/svg/E045.svg" width=6%></a> <a href="https://www.youtube.com/c/nf-core"><img src="https://openmoji.org/data/color/svg/E044.svg" width=6%></a> </a> </p> <a href="https://nf-co.re" style="color: #000000; font-family:Monaco, monospace; font-weight:bold;">https://nf-co.re</a> <div style="display: flex; justify-content: space-evenly; align-items:center;"> <img src="https://chanzuckerberg.com/wp-content/themes/czi/img/logo.svg" width=15%> <div style="font-style:italic; font-size: 0.5em; color: #666;">Icons:<br><a href="https://openmoji.org">openmoji.org</a></div></div> <style> .reveal section img { background:none; border:none; box-shadow:none; } body { background-image: url(https://raw.githubusercontent.com/nf-core/logos/master/nf-core-logos/nf-core-logo-square.svg); background-size: 7.5%; background-repeat: no-repeat; background-position: 3% 96%; background-color: #181a1b; } .reveal body { font-family: 'Roboto', sans-serif; font-weight: 300; color: white; } .reveal p { font-family: 'Roboto', sans-serif; font-weight: 300; color: white; } .reveal h1 { font-family: 'Roboto', sans-serif; font-style: bold; font-weight: 400; color: white; font-size: 62px; } .reveal h2 { font-family: 'Roboto', sans-serif; font-weight: 300; color: white; } .reveal h3 { font-family: 'Roboto', sans-serif; font-style: italic; font-weight: 300; color: white; } .reveal p { font-family: 'Roboto', sans-serif; font-weight: 300; color: white; } .reveal li { font-family: 'Roboto', sans-serif; font-weight: 300; color: white; } .reveal pre { background-color: #272822 !important; display: inline-block; border-radius: 7px; color: #aaaba9; } .reveal pre code { color: #eeeeee; background-color: #272822; font-size: 100%; } .reveal code { background-color: #272822; font-size: 75%; } .reveal .progress { color: #24B064; } .reveal .controls button { color: #24B064; } .reveal blockquote { display: block; position: relative; width: 90%; margin: 20px auto; padding: 5px; background: rgba(255, 255, 255, 0.05); box-shadow: 0px 0px 2px rgb(0 0 0 / 20%); } </style>