tag:blogger.com,1999:blog-43761196135494962462024-03-18T02:13:59.567-07:00Diving into Genetics and GenomicsA wet-dry hybrid biologist's take on genetics and genomics. Mostly is about Linux, R, python, reproducible research, open science and NGS. Grab my book to transform yourself to a computational biologist https://divingintogeneticsandgenomics.ck.page/tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.comBlogger247125tag:blogger.com,1999:blog-4376119613549496246.post-69971394953637320002023-01-29T20:56:00.002-08:002023-01-29T20:58:33.612-08:0010 tips for learning git<p>1/ Several basic commands will serve you a long way:</p><div data-slate-node="element" style="position: relative;"><span data-slate-node="text">git clone </span></div><div data-slate-node="element" style="position: relative;"><span data-slate-node="text">git add </span></div><div data-slate-node="element" style="position: relative;"><span data-slate-node="text">git commit -m </span></div><div data-slate-node="element" style="position: relative;"><span data-slate-node="text">git push</span></div><div data-slate-node="element" style="position: relative;"><span data-slate-node="text">
</span></div><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIxJTJGJTIwJTIwU2V2ZXJhbCUyMGJhc2ljJTIwY29tbWFuZHMlMjB3aWxsJTIwc2VydmUlMjB5b3UlMjBhJTIwbG9uZyUyMHdheSUzQSUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0JTIwY2xvbmUlMjAlMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycCUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMmdpdCUyMGFkZCUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0JTIwY29tbWl0JTIwLW0lMjAlMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycCUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMmdpdCUyMHB1c2glMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycCUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMiUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyVGhvc2UlMjBhcmUlMjBlbm91Z2glMjB0byUyMGdldCUyMHlvdSUyMHN0YXJ0ZWQuJTIwVG8lMjBiZSUyMGhvbmVzdCUyQyUyMHRob3NlJTIwYXJlJTIwc3RpbGwlMjB0aGUlMjBtb3N0JTIwZnJlcXVlbnQlMjBjb21tYW5kcyUyMEklMjB1c2UuJTIyJTdEJTVEJTdEJTVE" data-slate-node="element" style="position: relative;"><span data-slate-node="text">Those are enough to get you started. To be honest, those are still the most frequent commands I use.</span></div><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIxJTJGJTIwJTIwU2V2ZXJhbCUyMGJhc2ljJTIwY29tbWFuZHMlMjB3aWxsJTIwc2VydmUlMjB5b3UlMjBhJTIwbG9uZyUyMHdheSUzQSUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0JTIwY2xvbmUlMjAlMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycCUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMmdpdCUyMGFkZCUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0JTIwY29tbWl0JTIwLW0lMjAlMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycCUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMmdpdCUyMHB1c2glMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycCUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMiUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyVGhvc2UlMjBhcmUlMjBlbm91Z2glMjB0byUyMGdldCUyMHlvdSUyMHN0YXJ0ZWQuJTIwVG8lMjBiZSUyMGhvbmVzdCUyQyUyMHRob3NlJTIwYXJlJTIwc3RpbGwlMjB0aGUlMjBtb3N0JTIwZnJlcXVlbnQlMjBjb21tYW5kcyUyMEklMjB1c2UuJTIyJTdEJTVEJTdEJTVE" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><br /></span></div><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIxJTJGJTIwJTIwU2V2ZXJhbCUyMGJhc2ljJTIwY29tbWFuZHMlMjB3aWxsJTIwc2VydmUlMjB5b3UlMjBhJTIwbG9uZyUyMHdheSUzQSUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0JTIwY2xvbmUlMjAlMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycCUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMmdpdCUyMGFkZCUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0JTIwY29tbWl0JTIwLW0lMjAlMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycCUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMmdpdCUyMHB1c2glMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycCUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMiUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyVGhvc2UlMjBhcmUlMjBlbm91Z2glMjB0byUyMGdldCUyMHlvdSUyMHN0YXJ0ZWQuJTIwVG8lMjBiZSUyMGhvbmVzdCUyQyUyMHRob3NlJTIwYXJlJTIwc3RpbGwlMjB0aGUlMjBtb3N0JTIwZnJlcXVlbnQlMjBjb21tYW5kcyUyMEklMjB1c2UuJTIyJTdEJTVEJTdEJTVE" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><div data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">2/ understand git and github. You use git to track files locally, and github can host your repos. You can start with the github skill page </span></span></span><span class="styles__Wrapper-publish__sc-1srq8n3-0 hvLnyp" contenteditable="false" data-slate-inline="true" data-slate-node="element" data-slate-void="true"><span color="transparent" data-slate-spacer="true" style="height: 0px; outline: none; position: absolute;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-length="23" data-slate-zero-width="z"></span></span></span></span><span class="styles__VoidText-publish__sc-15qb9lw-0 gmkfuT" data-state="closed"><a href="https://buff.ly/3tO2iaf">https://buff.ly/3tO2iaf</a></span></span><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"> </span></span></span></div><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">gitlab </span></span></span><span class="styles__Wrapper-publish__sc-1srq8n3-0 hvLnyp" contenteditable="false" data-slate-inline="true" data-slate-node="element" data-slate-void="true"><span color="transparent" data-slate-spacer="true" style="height: 0px; outline: none; position: absolute;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-length="23" data-slate-zero-width="z"></span></span></span></span><span class="styles__VoidText-publish__sc-15qb9lw-0 gmkfuT" data-state="closed"><a href="https://buff.ly/3JlGA69">https://buff.ly/3JlGA69</a></span></span><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"> is an alternative to github</span></span></span></div><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"><br /></span></span></span></div><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">3/ software carpentry git workshop is a nice resource to learn git </span></span></span><span class="styles__Wrapper-publish__sc-1srq8n3-0 hvLnyp" contenteditable="false" data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIzJTJGJTIwc29mdHdhcmUlMjBjYXJwZW50cnklMjBnaXQlMjB3b3Jrc2hvcCUyMGlzJTIwYSUyMG5pY2UlMjByZXNvdXJjZSUyMHRvJTIwbGVhcm4lMjBnaXQlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjNrVWhxQjclMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYza1VocUI3JTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-inline="true" data-slate-node="element" data-slate-void="true"><span color="transparent" data-slate-spacer="true" style="height: 0px; outline: none; position: absolute;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-length="23" data-slate-zero-width="z"></span></span></span></span><span class="styles__VoidText-publish__sc-15qb9lw-0 gmkfuT" data-state="closed"><a href="https://buff.ly/3kUhqB7">https://buff.ly/3kUhqB7</a></span></span><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"></span></span></span><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"><br /></span></span></span></div><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">4/ An open source game about learning Git! </span></span></span><span class="styles__Wrapper-publish__sc-1srq8n3-0 hvLnyp" contenteditable="false" data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjI0JTJGJTIwJTIwQW4lMjBvcGVuJTIwc291cmNlJTIwZ2FtZSUyMGFib3V0JTIwbGVhcm5pbmclMjBHaXQhJTIwJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYyWlBYVXJYJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGMlpQWFVyWCUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjIlN0QlNUQlN0QlNUQ=" data-slate-inline="true" data-slate-node="element" data-slate-void="true"><span color="transparent" data-slate-spacer="true" style="height: 0px; outline: none; position: absolute;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-length="23" data-slate-zero-width="z"></span></span></span></span><span class="styles__VoidText-publish__sc-15qb9lw-0 gmkfuT" data-state="closed"><a href="https://buff.ly/2ZPXUrX">https://buff.ly/2ZPXUrX</a></span></span><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"></span></span></span><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"><br /></span></span></span></div><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">5/ Learn it for free on Udemy </span></span></span><span class="styles__Wrapper-publish__sc-1srq8n3-0 hvLnyp" contenteditable="false" data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjI1JTJGJTIwTGVhcm4lMjBpdCUyMGZvciUyMGZyZWUlMjBvbiUyMFVkZW15JTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzUnZUQ0E5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM1J2VENBOSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjIlN0QlNUQlN0QlNUQ=" data-slate-inline="true" data-slate-node="element" data-slate-void="true"><span color="transparent" data-slate-spacer="true" style="height: 0px; outline: none; position: absolute;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-length="23" data-slate-zero-width="z"></span></span></span></span><span class="styles__VoidText-publish__sc-15qb9lw-0 gmkfuT" data-state="closed"><a href="https://buff.ly/3RvTCA9">https://buff.ly/3RvTCA9</a></span></span><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"></span></span></span><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"><br /></span></span></span></div><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">6/ The best interactive tutorial for learing git branching </span></span></span><span class="styles__Wrapper-publish__sc-1srq8n3-0 hvLnyp" contenteditable="false" data-slate-inline="true" data-slate-node="element" data-slate-void="true"><span color="transparent" data-slate-spacer="true" style="height: 0px; outline: none; position: absolute;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-length="23" data-slate-zero-width="z"></span></span></span></span><span class="styles__VoidText-publish__sc-15qb9lw-0 gmkfuT" data-state="closed"><a href="https://buff.ly/2tQTJN4">https://buff.ly/2tQTJN4</a></span></span><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"> I had a lot of fun playing it.</span></span></span></div><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"><br /></span></span></span></div><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">7/ </span></span></span><span class="styles__Wrapper-publish__sc-1srq8n3-0 hvLnyp" contenteditable="false" data-slate-inline="true" data-slate-node="element" data-slate-void="true"><span color="transparent" data-slate-spacer="true" style="height: 0px; outline: none; position: absolute;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-length="23" data-slate-zero-width="z"></span></span></span></span><span class="styles__VoidText-publish__sc-15qb9lw-0 gmkfuT" data-state="closed"><a href="https://buff.ly/2w5p9zi">https://buff.ly/2w5p9zi</a></span></span><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">Oh Shit, Git!?! You know, sometimes it messed up so much locally I just delete my local copy and do a fresh git clone :)</span></span></span></div><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"> </span></span></span></div><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">8/ </span></span></span><span class="styles__Wrapper-publish__sc-1srq8n3-0 hvLnyp" contenteditable="false" data-slate-inline="true" data-slate-node="element" data-slate-void="true"><span color="transparent" data-slate-spacer="true" style="height: 0px; outline: none; position: absolute;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-length="23" data-slate-zero-width="z"></span></span></span></span><span class="styles__VoidText-publish__sc-15qb9lw-0 gmkfuT" data-state="closed"><a href="https://buff.ly/2U9C8hC">https://buff.ly/2U9C8hC</a></span></span><span data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjI4JTJGJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYyVTlDOGhDJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGMlU5QzhoQyUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjBIb3clMjB0byUyMHVzZSUyMGdpdCUyMHdpdGglMjBSLiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"> How to use git with R.</span></span></span></span></span></span></div><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"><span data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjI4JTJGJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYyVTlDOGhDJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGMlU5QzhoQyUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjBIb3clMjB0byUyMHVzZSUyMGdpdCUyMHdpdGglMjBSLiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"><br /></span></span></span></span></span></span></div><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true">9/ git cheatsheet </span></span></span><span class="styles__Wrapper-publish__sc-1srq8n3-0 hvLnyp" contenteditable="false" data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjI5JTJGJTIwZ2l0JTIwY2hlYXRzaGVldCUyMCUyMCUyMiU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJhJTIyJTJDJTIydXJsJTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0gyUHJXYSUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjNIMlByV2ElMjIlN0QlNUQlN0QlMkMlN0IlMjJ0ZXh0JTIyJTNBJTIyJTIwJTIyJTdEJTVEJTdEJTVE" data-slate-inline="true" data-slate-node="element" data-slate-void="true"><span color="transparent" data-slate-spacer="true" style="height: 0px; outline: none; position: absolute;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-length="23" data-slate-zero-width="z"></span></span></span></span><span class="styles__VoidText-publish__sc-15qb9lw-0 gmkfuT" data-state="closed"><a href="https://buff.ly/3H2PrWa">https://buff.ly/3H2PrWa</a></span></span><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"></span></span></span><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"><span data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjI4JTJGJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYyVTlDOGhDJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGMlU5QzhoQyUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjBIb3clMjB0byUyMHVzZSUyMGdpdCUyMHdpdGglMjBSLiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"><br /></span></span></span></span></span></span></div><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;">10/ if you collaborate with others, you need to understand the gihub flow </div><span class="styles__Wrapper-publish__sc-1srq8n3-0 hvLnyp" contenteditable="false" data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIxMCUyRiUyMGlmJTIweW91JTIwY29sbGFicmF0ZSUyMHdpdGglMjBvdGhlcnMlMkMlMjB5b3UlMjBuZWVkJTIwdG8lMjB1bmRlcnN0YW5kJTIwdGhlJTIwZ2lodWIlMjBmbG93JTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzQ2N2VGlvJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0NjdlRpbyUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjIlN0QlNUQlN0QlNUQ=" data-slate-inline="true" data-slate-node="element" data-slate-void="true"><a href="https://buff.ly/3CcvTio"><span color="transparent" data-slate-spacer="true" style="height: 0px; outline: none; position: absolute;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-length="23" data-slate-zero-width="z"></span></span></span></span><span class="styles__VoidText-publish__sc-15qb9lw-0 gmkfuT" data-state="closed">https://buff.ly/3CcvTio</span></a></span><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"></span></span></span><div data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIyJTJGJTIwdW5kZXJzdGFuZCUyMGdpdCUyMGFuZCUyMGdpdGh1Yi4lMjBZb3UlMjB1c2UlMjBnaXQlMjB0byUyMHRyYWNrJTIwZmlsZXMlMjBsb2NhbGx5JTJDJTIwYW5kJTIwZ2l0aHViJTIwY2FuJTIwaG9zdCUyMHlvdXIlMjByZXBvcy4lMjBZb3UlMjBjYW4lMjBzdGFydCUyMHdpdGglMjB0aGUlMjBnaXRodWIlMjBza2lsbCUyMHBhZ2UlMjAlMjAlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyYSUyMiUyQyUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYnVmZi5seSUyRjN0TzJpYWYlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzdE8yaWFmJTIyJTdEJTVEJTdEJTJDJTdCJTIydGV4dCUyMiUzQSUyMiUyMCUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyZ2l0bGFiJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYzSmxHQTY5JTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGM0psR0E2OSUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjAlMjBpcyUyMGFuJTIwYWx0ZXJuYXRpdmUlMjB0byUyMGdpdGh1YiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="element" style="position: relative;"><span data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"><span data-slate-fragment="JTVCJTdCJTIydHlwZSUyMiUzQSUyMnAlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjI4JTJGJTIwJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmElMjIlMkMlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmJ1ZmYubHklMkYyVTlDOGhDJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZidWZmLmx5JTJGMlU5QzhoQyUyMiU3RCU1RCU3RCUyQyU3QiUyMnRleHQlMjIlM0ElMjIlMjBIb3clMjB0byUyMHVzZSUyMGdpdCUyMHdpdGglMjBSLiUyMCUyMiU3RCU1RCU3RCU1RA==" data-slate-node="text"><span data-slate-leaf="true"><span data-slate-string="true"> </span></span></span></span></span></span></div></span></div>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com9tag:blogger.com,1999:blog-4376119613549496246.post-17415290794943505652022-12-13T18:24:00.003-08:002022-12-13T18:24:15.242-08:0015 tools/papers for multi-sample multi-group single-cell RNAseq differential expression analysis<p> 1/ [An Empirical Bayes Method for Differential Expression Analysis of Single Cells with Deep Generative Models](https://www.biorxiv.org/content/10.1101/2022.05.27.493625v1) scVI-DE</p><p>2/ [muscat](http://www.bioconductor.org/packages/release/bioc/html/muscat.html)</p><p>3/ [Confronting false discoveries in single-cell differential expression](https://www.nature.com/articles/s41467-021-25960-2) "These observations suggest that, in practice, pseudobulk approaches provide an excellent trade-off between speed and accuracy for single-cell DE analysis." One needs to considder biolgoical replicates, pseduobulk works well.</p><p>4/ [Modelling group heteroscedasticity in single-cellRNA-seq pseudo-bulk data](https://www.biorxiv.org/content/10.1101/2022.09.12.507511v1)</p><p>5/ [BSDE: barycenter single-cell differential expression for case–control studies](https://academic.oup.com/bioinformatics/article/38/10/2765/6554192?login=false)</p><p> 6/ [distinct](http://www.bioconductor.org/packages/release/bioc/html/distinct.html) Both are from Mark Robinson group.</p><p>7/ [nebula](https://github.com/lhe17/nebula) https://www.biorxiv.org/content/biorxiv/early/2020/09/25/2020.09.24.311662.full.pdf</p><p>8/ [Fast identification of differential distributions in single-cell RNA-sequencing data with waddR](https://academic.oup.com/bioinformatics/advance-article/doi/10.1093/bioinformatics/btab226/6207964) https://github.com/goncalves-lab/waddR</p><p>9/ [CoCoA-diff: counterfactual inference for single-cell gene expression analysis](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-021-02438-4)</p><p>10/ [Bias, robustness and scalability in single-cell differential expression analysis](https://www.nature.com/articles/nmeth.4612) From Mark Robinson group.</p><p>11/ [Comparative analysis of differential gene expression analysis tools for single-cell RNA sequencing data](https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-019-2599-6) "We observed that current methods designed for scRNAseq data do not tend to show better performance compared to methods designed for bulk RNAseq data."</p><p>12/ [Tree-based Correlation Screen and Visualization for Exploring Phenotype-Cell Type Association in Multiple Sample Single-Cell RNA-Sequencing Experiments](https://www.biorxiv.org/content/10.1101/2021.10.27.466024v1) TreeCorTreat is an open source R package that tackles this problem by using a tree-based correlation screen to analyze and visualize the association between phenotype and transcriptomic features and cell types at multiple cell type resolution levels.</p><p>13/ [Quantifying the effect of experimental perturbations in single-cell RNA-sequencing data using graph signal processing](https://www.biorxiv.org/content/10.1101/532846v3) read this thread https://twitter.com/krishnaswamylab/status/1328876444810960896?s=27</p><p>14/ [Causal identification of single-cell experimental perturbation effects with CINEMA-OT](https://www.biorxiv.org/content/10.1101/2022.07.31.502173v1)</p><p>github https://github.com/vandijklab/CINEMA-OT</p><p>15/ [IDEAS: individual level differential expression analysis for single-cell RNA-seq data](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-022-02605-1)</p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com3tag:blogger.com,1999:blog-4376119613549496246.post-63817602109329199482022-12-11T06:19:00.007-08:002022-12-11T06:26:46.369-08:00 32 resources for (to-be) faculty on salary negotiation, grant writing, funding, and lab management<p>1/ Tips for negotiating salary and startup for newly-hired tenure-track faculty](https://dynamicecology.wordpress.com/2017/03/01/tips-for-negotiating-salary-and-startup-for-newly-hired-tenure-track-faculty/)</p><p>2/ [Creating accessibility in academic negotiations](https://www.sciencedirect.com/science/article/pii/S0968000422002870?dgcid=authord)</p><p>3/ [Ten Simple Rules to becoming a principal investigator](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1007448)</p><p>4/ [applying for a faculty position](http://effortreport.libsyn.com/15-applying-for-a-faculty-position) by Roger Peng.</p><p>5/ [A list of publicly available grant proposals in the biological sciences](https://jabberwocky.weecology.org/2012/08/10/a-list-of-publicly-available-grant-proposals-in-the-biological-sciences/)</p><p>6/ [open grant](https://www.ogrants.org/) find other people's grants.</p><p>7/ [Early Career Funding, Awards, and Other Funding](https://docs.google.com/spreadsheets/d/1H1aj--VUYr7eMFk_T7x0Oh985LqbyyscXg2wAAevDnU/edit#gid=0) </p><p>8/ https://ecrcentral.org/resources</p><p>9/ [Funding schemes for postdoctoral fellowships](https://asntech.github.io/postdoc-funding-schemes/)</p><p>10/ [Postdoctoral Funding Opportunities by Johns Hopkins](https://research.jhu.edu/rdt/funding-opportunities/postdoctoral/)</p><p>11/ [Early Career Funding Opportunities by Johns Hopkins](https://research.jhu.edu/rdt/funding-opportunities/early-career/)</p><p>12/ [The CommKit](http://mitcommlab.mit.edu/broad/use-the-commkit/) is a collection of guides to successful communication in the biological sciences, written by the BRCL Fellows.</p><p>13/ [writing in sciences stanford online course](https://www.coursera.org/learn/sciwrite/)</p><p>14 / [Ten simple rules for structuring papers](http://www.biorxiv.org/content/early/2017/05/23/088278)</p><p>15/ [NIH grant podcasts](https://grants.nih.gov/news/virtual-learning/podcasts.htm)</p><p>16/ [NIC guide](https://www.niaid.nih.gov/grants-contracts/write-research-plan)</p><p>17/ [Thoughts on reviewing NIH proposals: What is the difference between a 2.0 and 3.0 in initial score?](http://mistressoftheanimals.scientopia.org/2018/02/10/thoughts-on-reviewing-nih-proposals-what-is-the-difference-between-a-2-0-and-3-0-in-initial-score/) a blog post.</p><p>18/ [how to write a K99](https://k99.sbamin.com/) by Samir Amin (my good buddy). Go and check out this treasure.</p><p>19/ [seeking the k99](https://timoast.github.io/blog/seeking-the-k99/) a blog post by Tim Stuart.</p><p>20/ [AuthorArranger: Conquer journal title pages in seconds](https://authorarranger.nci.nih.gov/#/)</p><p>21/ [typeset](https://www.typeset.io/) The quickest way to read and understand scientific literature</p><p>22/ [cocites](http://www.cocites.com/)</p><p>23/ [connected papers](https://www.connectedpapers.com/)</p><p>24/ [ZoteroBib](https://zbib.org/) is a free service that helps you quickly create a bibliography in any citation style.</p><p>25/ [How to craft a figure legend for scientific papers](https://blog.bioturing.com/2018/05/10/how-to-craft-a-figure-legend-for-scientific-papers/) </p><p>26/ [Ten quick tips for making things findable](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1008469)</p><p>27/ [Making experimental data tables in the life sciences more FAIR: a pragmatic approach](https://academic.oup.com/gigascience/article/9/12/giaa144/6034785)</p><p>28/ protocols: https://www.protocols.io/</p><p>29/ [electronic lab notebooks review by Harvard HMS](https://datamanagement.hms.harvard.edu/electronic-lab-notebooks)</p><p>30/ [Rspace](https://www.researchspace.com/) Next-gen Elab notebook.</p><p>31/ [How to grow a healthy lab](https://www.nature.com/collections/pmlcrkkyyq) Nature collections</p><p>32/ [Bench Sci](https://www.benchsci.com/) Run Successful Experiments with the Right Antibody. Let our AI decode the literature to provide antibody usage data that's unbiased and experiment-specific</p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com3tag:blogger.com,1999:blog-4376119613549496246.post-18276207556247172322022-12-07T20:15:00.003-08:002022-12-07T20:15:16.613-08:00 23 tools to work with (single-cell) TCR/BCR-seq immune repertoire data<p>1/ [immunarch](https://immunarch.com/index.html) </p><p>2/ [scRepertoire](https://github.com/ncborcherding/scRepertoire) </p><p>3/ [dandelion](https://sc-dandelion.readthedocs.io/en/latest/) python package for analyzing single cell BCR/TCR data from 10x Genomics 5’ solution! </p><p>4/ [TRUST4](https://www.nature.com/articles/s41592-021-01142-2) developed in Shirley Liu's group. Use it to extract TCR/BCR information from bulk RNAseq or 5' scRNAseq data.</p><p>5/ a dramatic speedup for one of the core computations for adaptive immune receptor repertoire (AIRR) analysis - the discovery and counting of receptors that overlap between repertoires! Check out [CompAIRR](https://github.com/uio-bmi/compairr). With 10^4 repertoires of 10^5 sequences each, CompAIRR ran in 17 minutes while the fastest existing tool took 10 days, amounting to a ~1000x speedup</p><p>6/ [ClusTCR](https://svalkiers.github.io/clusTCR/): a Python interface for rapid clustering of large sets of CDR3 sequences with unknown antigen specificity;</p><p>7/ [GLIPH2](https://www.nature.com/articles/s41587-020-0505-4)</p><p>8/ [GIANA allows computationally-efficient TCR clustering and multi-disease repertoire classification by isometric transformation](https://www.nature.com/articles/s41467-021-25006-7) from Bo Li.</p><p>9/ [tcrdist3](https://github.com/kmayerb/tcrdist3) is a python API-enabled toolkit for analyzing T-cell receptor repertoires</p><p>10/ [TCRex](https://tcrex.biodatamining.be/): a web tool for the prediction of TCR–epitope recognition</p><p>11/ [ImRex](https://github.com/pmoris/ImRex) TCR-epitope recognition prediction using combined sequence input represention for convolutional neural networks.</p><p>12/ [NetTCR - 2.0](https://services.healthtech.dtu.dk/service.php?NetTCR-2.0) Sequence-based prediction of peptide-TCR binding</p><p>13/ [CellaRepertorium](https://github.com/amcdavid/CellaRepertorium)</p><p>14/ [enclone](https://10xgenomics.github.io/enclone/) from 10x. we should give this a try if we want to cluster TCR and BCR clonotypes.</p><p>15/ [migec](https://github.com/mikessh/migec):A RepSeq processing swiss-knife.</p><p>16/ [MiXCR](https://github.com/milaboratory/mixcr) is a universal software for fast and accurate analysis of T- and B- cell receptor repertoire sequencing data.</p><p>17/ [ImReP](https://sergheimangul.wordpress.com/imrep/) is a computational method for rapid and accurate profiling of the adaptive immune repertoire from regular RNA-Seq data.</p><p>18/ [TcellMatch](https://github.com/theislab/tcellmatch): Predicting T-cell to epitope specificity. cellMatch is a collection of models to predict antigen specificity of **single T cells** based on CDR3 sequences and other single cell modalities, such as RNA counts and surface protein counts</p><p>19/ [scirpy](https://github.com/icbi-lab/scirpy): A scanpy extension for single-cell TCR analysis. </p><p>20/ [Tessa](https://github.com/jcao89757/tessa) is a Bayesian model to integrate T cell receptor (TCR) sequence profiling with transcriptomes of T cells. Enabled by the recently developed single cell sequencing techniques, which provide both TCR sequences and RNA sequences of each T cell concurrently, Tessa maps the functional landscape of the TCR repertoire, and generates insights into understanding human immune response to diseases. </p><p>21/ [DeepTCR](https://github.com/sidhomj/DeepTCR) Deep Learning Methods for Parsing T-Cell Receptor Sequencing (TCRSeq) Data</p><p>https://twitter.com/John_Will_I_Am/status/1570837756787691527</p><p>https://www.science.org/doi/10.1126/sciadv.abq5089</p><p>22/ [Integrating T cell receptor sequences and transcriptional profiles by clonotype neighbor graph analysis (CoNGA)](https://www.nature.com/articles/s41587-021-00989-2)</p><p>23/ [Echidna: Integrated simulations of single-cell immune receptor repertoires and transcriptomes](https://academic.oup.com/bioinformaticsadvances/advance-article/doi/10.1093/bioadv/vbac062/6687122?login=false)</p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com4tag:blogger.com,1999:blog-4376119613549496246.post-15458728043352570292022-11-29T19:34:00.002-08:002022-11-29T19:34:23.431-08:007 links to deeply understand heatmap <p>Making a heatmap is an essential skill for a bioinformatician. Just check how many figures are heatmap or heatmap variants in the genomics or single cell paper.</p><p>But you probably do not understand heatmap. 7 reading resources to understand heatmap!</p><p>1/ Mapping quantitative data to color <a href="https://www.nature.com/articles/nmeth.2134">https://www.nature.com/articles/nmeth.2134</a> </p><p>2/ Heat map from Nature Method column <a href="https://www.nature.com/articles/nmeth.1902">https://www.nature.com/articles/nmeth.1902</a></p><p>3/ A tale of two heatmap functions <a href="https://rpubs.com/crazyhottommy/a-tale-of-two-heatmap-functions">https://rpubs.com/crazyhottommy/a-tale-of-two-heatmap-functions</a> An old post by me.</p><p>4/ Heatmap demystified <a href="https://rpubs.com/crazyhottommy/heatmap_demystified">https://rpubs.com/crazyhottommy/heatmap_demystified</a> yet another post by me</p><p>5/ understand color mapping is key <a href="https://jokergoo.github.io/ComplexHeatmap-reference/book/a-single-heatmap.html#colors">https://jokergoo.github.io/ComplexHeatmap-reference/book/a-single-heatmap.html#colors</a></p><p>6/ understand rastering <a href="https://jokergoo.github.io/2020/06/30/rasterization-in-complexheatmap/">https://jokergoo.github.io/2020/06/30/rasterization-in-complexheatmap/</a></p><p>7/ what happens when you have a huge matrix 20,000 rows/genes x 50 columns to plot? <a href="https://gdevailly.netlify.app/post/plotting-big-matrices-in-r/">https://gdevailly.netlify.app/post/plotting-big-matrices-in-r/</a></p><p><br /></p><p>I learned so much from Zuguang Gu, thanks for his awesome Complexheatmap package <a href="https://jokergoo.github.io/ComplexHeatmap-reference/book/index.html">https://jokergoo.github.io/ComplexHeatmap-reference/book/index.html</a> . it is my go-to tool for making heatmaps.</p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-1504117891657988012022-11-28T19:45:00.007-08:002022-11-28T19:45:37.474-08:006 training resources for data management <p><br /></p><p>* Best Practices for Biomedical Research Data Management <a href="https://learn.canvas.net/courses/1854">https://learn.canvas.net/courses/1854</a></p><p>* Research Data Management Librarian Academy (<a href="https://rdmla.github.io/)">https://rdmla.github.io/)</a></p><p>* DataONE Data Management Skillbuilding Hub (<a href="https://dataoneorg.github.io/Education">https://dataoneorg.github.io/Education</a>)</p><p>* Data Management Training Clearinghouse (<a href="https://dmtclearinghouse.esipfed.org/">https://dmtclearinghouse.esipfed.org/</a>)</p><p>* Research data management open training materials Zenodo Community (<a href="https://zenodo.org/communities/dcc-rdm-training-materials">https://zenodo.org/communities/dcc-rdm-training-materials</a>)</p><p>* Consortium of European Social Science Data Archives (CESSDA) Training Resources (<a href="https://www.cessda.eu/Training-Resources">https://www.cessda.eu/Training-Resources</a>)</p><p>Bonus:</p><p>Learn from TCGA # Collaborative Genomics Projects: A Comprehensive Guide <a href="https://www.sciencedirect.com/book/9780128021439/collaborative-genomics-projects-a-comprehensive-guide">https://www.sciencedirect.com/book/9780128021439/collaborative-genomics-projects-a-comprehensive-guide</a></p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com1tag:blogger.com,1999:blog-4376119613549496246.post-57059482044185462172022-11-27T19:50:00.000-08:002022-11-27T19:50:00.613-08:008 R/command line tools to deal with excel, tsv and csv files<p> R packages:</p><p>* [readxl](<a href="https://readxl.tidyverse.org/">https://readxl.tidyverse.org/</a>)</p><p>* [tidyxl](<a href="https://github.com/nacnudus/tidyxl">https://github.com/nacnudus/tidyxl</a>)</p><p>* [janitor](<a href="https://github.com/sfirke/janitor">https://github.com/sfirke/janitor</a>)</p><p><br /></p><p>command line tools:</p><p>* [VisiData](<a href="https://www.visidata.org/">https://www.visidata.org/</a>) is an interactive multitool for tabular data. It combines the clarity of a spreadsheet, the efficiency of the terminal, and the power of Python, into a lightweight utility which can handle millions of rows with ease.</p><p>* [csvkit](<a href="https://csvkit.readthedocs.io/en/latest/index.html#">https://csvkit.readthedocs.io/en/latest/index.html#</a>)</p><p>* [csvtk](<a href="https://bioinf.shenwei.me/csvtk/usage/)">https://bioinf.shenwei.me/csvtk/usage/)</a> a cross-platform, efficient and practical CSV/TSV toolkit.</p><p>* [Miller](<a href="https://miller.readthedocs.io/en/latest/">https://miller.readthedocs.io/en/latest/</a>) is a command-line tool for querying, shaping, and reformatting data files in various formats including CSV, TSV, JSON, and JSON Lines.</p><p>* [eBay's TSV Utilities](<a href="https://opensource.ebay.com/tsv-utils/">https://opensource.ebay.com/tsv-utils/</a>)</p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-91201458382673321242022-11-15T19:37:00.003-08:002022-11-15T19:38:41.520-08:008 Resources to study Transcription factor binding, enhancers and histone modification distribution<p> 1. ENCODE <a href="https://www.encodeproject.org/">https://www.encodeproject.org/</a></p><p>2. The International Human Epigenome Consortium (IHEC) epigenome data portal <a href="http://epigenomesportal.ca/ihec/index.html?as=1">http://epigenomesportal.ca/ihec/index.html?as=1</a></p><p>3. Blueprint epigenome <a href="http://dcc.blueprint-epigenome.eu/#/home">http://dcc.blueprint-epigenome.eu/#/home</a></p><p>4. EpiFactors <a href="http://epifactors.autosome.ru/">http://epifactors.autosome.ru/</a> is a database for epigenetic factors, corresponding genes and products.</p><p>5. CistromeDB <a href="http://cistrome.org/db/#/">http://cistrome.org/db/#/</a> by Shirley Liu group</p><p>6. Remap <a href="https://remap2022.univ-amu.fr/">https://remap2022.univ-amu.fr/</a> is a large scale integrative analysis of DNA-binding experiments for Homo sapiens, Mus musculus, Drosophila melanogaster and Arabidopsis thaliana transcriptional regulators.</p><p>7. ChIP-Atlas <a href="http://chip-atlas.org/">http://chip-atlas.org/</a> An integrative, comprehensive database to explore public Epigenetic dataset, including ChIP-Seq, DNase-Seq, ATAC-Seq, and Bisulfite-Seq data: ChIP-Atlas covers almost all public data archived in Sequence Read Archive of NCBI, EBI, and DDBJ with over 224,000 experiments.</p><p>8. Fantom5 <a href="https://fantom.gsc.riken.jp/5/">https://fantom.gsc.riken.jp/5/</a></p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-59215243126822719782022-11-13T13:14:00.003-08:002022-11-13T13:14:21.099-08:007 Books for you to learn bioinformatics<p>1. Data Analysis for the Life Sciences <a href="https://leanpub.com/dataanalysisforthelifesciences">https://leanpub.com/dataanalysisforthelifesciences</a> You can get it for free!</p><p>2. practical computing for biologist <a href="https://practicalcomputing.org/">https://practicalcomputing.org/</a> My first ever book to start learning computational biology.</p><p>3. A Primer for Computational Biology <a href="https://open.oregonstate.education/computationalbiology/">https://open.oregonstate.education/computationalbiology/</a></p><p>4. Computational Genomics with R <a href="http://compgenomr.github.io/book">http://compgenomr.github.io/book</a>/</p><p>5. The Biologist’s Guide to Computing <a href="https://book.biologistsguide2computing.com/en/stable">https://book.biologistsguide2computing.com/en/stable</a>/ </p><p>6. Bioinformatics Data Skills <a href="https://www.oreilly.com/library/view/bioinformatics-data-skills/9781449367480/">https://www.oreilly.com/library/view/bioinformatics-data-skills/9781449367480/</a> A must read to upgrade your bioinformatics skills once you know the basics.</p><p>7. Bioinformatics Workbook: A tutorial to help scientists design their projects and analyze their data. <a href="https://bioinformaticsworkbook.org/#gsc.tab=0">https://bioinformaticsworkbook.org/#gsc.tab=0</a></p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-20978248580568511092022-11-10T13:33:00.004-08:002022-11-10T13:33:33.559-08:00 7 FREE Books to learn data science <p>1. Data science: A first introduction <a href="https://datasciencebook.ca/">https://datasciencebook.ca/</a></p><p>2. Introduction to Data Science <a href="http://rafalab.dfci.harvard.edu/dsbook/">http://rafalab.dfci.harvard.edu/dsbook/</a></p><p>3. Agile Data Science with R <a href="https://edwinth.github.io/ADSwR/index.html">https://edwinth.github.io/ADSwR/index.html</a></p><p>4. Tidy Modeling with R <a href="https://www.tmwr.org/">https://www.tmwr.org/</a></p><p>5. Feature Engineering and Selection: A Practical Approach for Predictive Models <a href="https://bookdown.org/max/FES/">https://bookdown.org/max/FES/</a></p><p>6. Another Book on Data Science <a href="https://www.anotherbookondatascience.com/">https://www.anotherbookondatascience.com/</a> compare R and python side by side</p><p>7. Research Software Engineering with Python <a href="https://merely-useful.tech/py-rse">https://merely-useful.tech/py-rse</a>/</p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com1tag:blogger.com,1999:blog-4376119613549496246.post-7227284013811812612022-11-09T18:12:00.003-08:002022-11-09T18:14:16.870-08:0012 resources to bookmark for reproducible computational research <p>1. a reproducible workflow. <a href="https://www.youtube.com/watch?v=s3JldKoA0zw">https://www.youtube.com/watch?v=s3JldKoA0zw</a> This two minute video will change your mind on reproducible research </p><p>2. Parallel sequencing lives, or what makes large sequencing projects successful <a href="https://academic.oup.com/gigascience/article/6/11/gix100/4557140?login=false">https://academic.oup.com/gigascience/article/6/11/gix100/4557140?login=false</a></p><p>3. Common-sense approaches to sharing tabular data alongside publication <a href="https://www.sciencedirect.com/science/article/pii/S2666389921002300">https://www.sciencedirect.com/science/article/pii/S2666389921002300</a></p><p>4. A Reproducible Data Analysis Workflow with R Markdown, Git, Make, and Docker <a href="https://psyarxiv.com/8xzqy/">https://psyarxiv.com/8xzqy/</a></p><p>5. Practical Computational Reproducibility in the Life Sciences <a href="https://www.cell.com/cell-systems/fulltext/S2405-4712(18)30140-6">https://www.cell.com/cell-systems/fulltext/S2405-4712(18)30140-6</a></p><p>6. A video by Dr.Keith A. Baggerly from MD Anderson [The Importance of Reproducible Research in High-Throughput Biology](<a href="https://www.youtube.com/watch?v=7gYIs7uYbMo">https://www.youtube.com/watch?v=7gYIs7uYbMo</a>) highly recommended.</p><p>7. Ten Simple Rules for Reproducible Computational Research <a href="http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1003285">http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1003285</a>)</p><p>8. Good Enough Practices in Scientific Computing <a href="http://arxiv.org/abs/1609.00037">http://arxiv.org/abs/1609.00037</a> </p><p>9. Best Practices for Scientific Computing <a href="https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745">https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745</a></p><p>10. A Quick Guide to Organizing Computational Biology Projects <a href="http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.100042">http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.100042</a> A must read for computational biologists!</p><p>11. Reproducibility of computational workflows is automated using continuous analysis <a href="https://www.nature.com/articles/nbt.3780">https://www.nature.com/articles/nbt.3780</a></p><p>12. Five selfish reasons to work reproducibly <a href="https://genomebiology.biomedcentral.com/articles/10.1186/s13059-015-0850-7">https://genomebiology.biomedcentral.com/articles/10.1186/s13059-015-0850-7</a></p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com2tag:blogger.com,1999:blog-4376119613549496246.post-70698358547793321742022-11-07T19:15:00.006-08:002022-11-07T19:15:32.692-08:009 tools for interactive exploring single-cell RNAseq data<p>1. cellxgene <a href="https://github.com/chanzuckerberg/cellxgene">https://github.com/chanzuckerberg/cellxgene</a></p><p>2. cellar <a href="https://github.com/euxhenh/cellar">https://github.com/euxhenh/cellar</a></p><p>3. scSVA: an interactive tool for big data visualization and exploration in single-cell omics <a href="https://www.biorxiv.org/content/10.1101/512582v1">https://www.biorxiv.org/content/10.1101/512582v1</a></p><p>4. ASAP: a web-based platform for the analysis and interactive visualization of single-cell RNA-seq data <a href="https://academic.oup.com/bioinformatics/article/33/19/3123/3852081?login=false">https://academic.oup.com/bioinformatics/article/33/19/3123/3852081?login=false</a></p><p>5. [iSEE](<a href="https://bioconductor.org/packages/release/bioc/html/iSEE.html)">https://bioconductor.org/packages/release/bioc/html/iSEE.html)</a> Provides functions for creating an interactive Shiny-based graphical user interface for exploring data stored in SummarizedExperiment objects, including row- and column-level metadata</p><p>6. [VISION](<a href="https://github.com/YosefLab/VISION">https://github.com/YosefLab/VISION</a>) A high-throughput and unbiased module for interpreting scRNA-seq data.</p><p>7. [DISCO]<a href="(http://immunesinglecell.org/">(http://immunesinglecell.org/</a>): Deep Integration of Single-Cell Omics. Want to visual millions of cell online and annotate cell type automatically? Try it!!! Make single cell easier and make life easier!</p><p>8. [TISCH](<a href="http://tisch.comp-genomics.org/">http://tisch.comp-genomics.org/</a>) Tumor Immune Single-cell Hub (TISCH) is a scRNA-seq database focusing on tumor microenvironment (TME).</p><p>9. [CancerSCEM](<a href="https://ngdc.cncb.ac.cn/cancerscem">https://ngdc.cncb.ac.cn/cancerscem</a>) To date, CancerSCE version 1.0 consists of 208 cancer samples across 28 studies and 20 human cancer types</p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com1tag:blogger.com,1999:blog-4376119613549496246.post-66869364774276305932022-11-07T05:05:00.005-08:002022-11-07T06:00:49.486-08:008 links to BETTER understand principal component analysis (PCA)<p>9 links to BETTER understand principal component analysis (PCA):</p><p>1. <a href="https://divingintogeneticsandgenomics.rbind.io/post/pca-in-action/">https://divingintogeneticsandgenomics.rbind.io/post/pca-in-action/</a> PCA in action, my blog post to calculate SVD and PCA with #rstats </p><p>2. <a href="https://www.youtube.com/watch?v=rYz83XPxiZo">https://www.youtube.com/watch?v=rYz83XPxiZo</a> MIT 1806 linear algebra on SVD</p><p>3. <a href="https://peterbloem.nl/blog/pca-4">https://peterbloem.nl/blog/pca-4</a> THE SINGULAR VALUE DECOMPOSITION (SVD)</p><p>4. <a href="http://rafalab.github.io/pages/harvardx.html">http://rafalab.github.io/pages/harvardx.html</a> High Dimension data analysis, week 2. </p><p>5. <a href="https://towardsdatascience.com/why-pca-looks-triangular-a642daac721">https://towardsdatascience.com/why-pca-looks-triangular-a642daac721</a>a why PCA looks triangular. </p><p>6. <a href="https://www.nxn.se/valent/2017/6/12/how-to-read-pca-plots">https://www.nxn.se/valent/2017/6/12/how-to-read-pca-plots</a> How to read PCA plots for single-cell data.</p><p>7. <a href="https://twitter.com/AedinCulhane/status/1007110262187544577">https://twitter.com/AedinCulhane/status/1007110262187544577</a> PCA horseshoe artifact</p><p>8. <a data-attribute-index="13" href="https://lnkd.in/eq6iUPZC" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-underline); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">https://www.youtube.com/watch?v=_UVHneBUBW0</a> <span color="rgba(0, 0, 0, 0.9)" face="-apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif" style="background-color: white; font-size: 14px;"> by Josh Starmer</span></p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-77835802510681021022022-11-03T05:16:00.004-07:002022-11-03T05:16:44.104-07:005 tools to visualize genomic datasets <p> 1. Karyoploter <a href="https://bernatgel.github.io/karyoploter_tutorial/Tutorial/PlotCoverage/PlotCoverage.html">https://bernatgel.github.io/karyoploter_tutorial/Tutorial/PlotCoverage/PlotCoverage.html</a> I used that to plot single-cell ATACseq tracks <a href="https://github.com/crazyhottommy/scATACutils/#plot-atacseq-tracks-for-each-cluster-of-cells">https://github.com/crazyhottommy/scATACutils/#plot-atacseq-tracks-for-each-cluster-of-cells</a>, more examples <a href="https://rpubs.com/crazyhottommy/scATAC_tracks">https://rpubs.com/crazyhottommy/scATAC_tracks</a></p><p>2. plotgardener is a genomic data visualization package for R. Using `grid` graphics, `plotgardener` empowers users to programmatically and flexibly generate multi-panel figures </p><p><a href="https://github.com/PhanstielLab/plotgardener">https://github.com/PhanstielLab/plotgardener</a> </p><p>3. The goal of **g(r)osling** <a href="https://github.com/gosling-lang/grosling">https://github.com/gosling-lang/grosling</a> is to help you build interactive genomics visualizations with [Gosling](<a href="https://github.com/gosling-lang/gosling.js)">https://github.com/gosling-lang/gosling.js)</a>. This package uses [reticulate](https://rstudio.github.io/reticulate/) to provide an interface to the [Gos](https://github.com/gosling-lang/gos) Python package. https://github.com/gosling-lang/grosling</p><p>4. Intervene: a tool for intersection and visualization of multiple gene or genomic region sets </p><p> <a href="https://bitbucket.org/CBGR/intervene/src/master/">https://bitbucket.org/CBGR/intervene/src/master/</a></p><p> 5. <a href="https://42basepairs.com/">https://42basepairs.com/</a> saw it yesterday by @RobAboukhalil</p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-82730810344390705402022-11-02T10:31:00.008-07:002022-11-02T10:31:57.537-07:008 links to bookmark for better data visualization<p> Data visualization is a critical step in data analysis, 8 links to bookmark for better data visualization :</p><p>1. Nature Methods point of view data visualization <a href="http://blogs.nature.com/methagora/2013/07/data-visualization-points-of-view.html">http://blogs.nature.com/methagora/2013/07/data-visualization-points-of-view.html</a> the columns on color mapping and heatmap are very nice.</p><p>2. Ten simple rules to colorize biological data visualization <a href="https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1008259">https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1008259</a></p><p>3. data visualization resources <a href="https://sabahzero.github.io/dataviz/resources">https://sabahzero.github.io/dataviz/resources</a></p><p>4. Fundamentals of Data Visualization <a href="https://clauswilke.com/dataviz/">https://clauswilke.com/dataviz/</a> </p><p>5. Data Visualization <a href="https://socviz.co/">https://socviz.co/</a> by Kieran Healy. I've read book and 4 and 5.</p><p>6. [R Graphics Cookbook](<a href="http://www.cookbook-r.com/Graphs/">http://www.cookbook-r.com/Graphs/</a>) by Winston Chang.</p><p>7. [ggplot2: Elegant Graphics for Data Analysis](<a href="https://www.amazon.com/ggplot2-Elegant-Graphics-Data-Analysis/dp/0387981403">https://www.amazon.com/ggplot2-Elegant-Graphics-Data-Analysis/dp/0387981403</a>) by Hadely Wickham.</p><p>8. <a href="https://www.data-to-viz.com/">https://www.data-to-viz.com/</a> help you to choose the right chart</p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-60155818875432781752022-11-01T06:01:00.006-07:002022-11-01T06:01:36.185-07:006 links on workflow to make your life easier<p> Bioinformatics analysis involves a lot of steps, 6 links on workflow to make your life easier:</p><p>1. over hundreds of workflow tools and engines <a href="https://github.com/pditommaso/awesome-pipeline">https://github.com/pditommaso/awesome-pipeline</a> </p><p>2. see also from the CWL wiki <a href="https://github.com/common-workflow-language/common-workflow-language/wiki/Existing-Workflow-systems">https://github.com/common-workflow-language/common-workflow-language/wiki/Existing-Workflow-systems</a></p><p>3. A review of bioinformatic pipeline frameworks <a href="https://academic.oup.com/bib/article/18/3/530/2562749">https://academic.oup.com/bib/article/18/3/530/2562749</a></p><p>4. discussion on biostars <a href="https://www.biostars.org/p/115745/">https://www.biostars.org/p/115745/</a></p><p>5. two papers by Titus Brown [Ten simple rules and a template for creating workflows-as-applications](<a href="https://osf.io/preprints/8w5j3/">https://osf.io/preprints/8w5j3/</a>)</p><p>6. Streamlining Data-Intensive Biology With Workflow Systems <a href="https://dib-lab.github.io/2020-workflows-paper/">https://dib-lab.github.io/2020-workflows-paper/</a></p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-51284721463257275802022-10-28T09:16:00.003-07:002022-10-28T09:16:15.649-07:0016 resources for re-analyzing public expression data.<p>1. <a href="https://rnama.com/docs/search-evaluation">https://rnama.com/docs/search-evaluation</a> RNA meta Analysis has ~26,700 studies (5,717 RNA-Seq and 20,955 Microarray)</p><p>2. [refine.bio](<a href="https://www.refine.bio/">https://www.refine.bio/</a>) will have harmonized over 60,000 gene expression experiments</p><p>3. BioJupies <a href="https://maayanlab.cloud/biojupies/">https://maayanlab.cloud/biojupies/</a></p><p>4. [Recount2-FANTOM](<a href="https://www.biorxiv.org/content/10.1101/659490v1">https://www.biorxiv.org/content/10.1101/659490v1</a>) Recounting the FANTOM Cage Associated Transcriptome. Long non-coding RNAs.</p><p>5. Recount3 <a href="https://rna.recount.bio/">https://rna.recount.bio/</a></p><p>6. [dee2](<a href="http://dee2.io/">http://dee2.io/</a>) Digital Expression Explorer 2. Digital Expression Explorer 2 (DEE2) is a repository of uniformly processed RNA-seq data mined from public data obtained from NCBI Short Read Archive. By Ziemann Mark et.al! Version 2 of dee.</p><p>7. Extracting allelic read counts from 250,000 human sequencing runs in Sequence Read Archive <a href="https://www.biorxiv.org/content/10.1101/386441v1?rss=1">https://www.biorxiv.org/content/10.1101/386441v1?rss=1</a></p><p>8. [MetaSRA: normalized sample-specific metadata for the Sequence Read Archive](<a href="http://biorxiv.org/content/early/2016/11/30/090506">http://biorxiv.org/content/early/2016/11/30/090506</a>)</p><p>9. [ARCHS4: Massive Mining of Publicly Available RNA-seq Data from Human and Mouse](<a href="https://amp.pharm.mssm.edu/archs4/">https://amp.pharm.mssm.edu/archs4/</a>) ARCHS4 provides access to gene counts from HiSeq 2000, HiSeq 2500 and NextSeq 500 platforms for human and mouse experiments from GEO and SRA.</p><p>10. [DEP-reads: Uniformlly processed public RNA-Seq data](<a href="http://bioinformatics.sdstate.edu/reads">http://bioinformatics.sdstate.edu/reads</a>/) Read counts data for 5,470 human and mouse datasets from ARCHS4 v6 and 12,670 datasets from DEE2 for 9 model organisms by steven Ge.</p><p>11. [SRA-explorer](<a href="https://ewels.github.io/sra-explorer/">https://ewels.github.io/sra-explorer/</a>) This tool aims to make datasets within the Sequence Read Archive more accessible. </p><p>12. [intropolis](<a href="https://github.com/nellore/intropolis">https://github.com/nellore/intropolis</a>) is a list of exon-exon junctions found across **21,504** human RNA-seq samples on the Sequence Read Archive (SRA) from spliced read alignment to hg19 with Rail-RNA.</p><p>13. [batch recompute ~20,000 RNA-seq samples from larget sequencing project such as TCGA, TARGET and GETEX](<a href="https://genome-cancer.soe.ucsc.edu/proj/site/xena/datapages/?host=https://toil.xenahubs.net">https://genome-cancer.soe.ucsc.edu/proj/site/xena/datapages/?host=https://toil.xenahubs.net</a>). Used `hg38` and `gencode v21` as annotation.</p><p>14. [A cloud-based workflow to quantify transcript-expression levels in public cancer compendia](<a href="http://biorxiv.org/content/early/2016/07/12/063552">http://biorxiv.org/content/early/2016/07/12/063552</a>) used kallisto for TCGA/CCLE datasets and gencode v24 as annotation.</p><p>15. [MiPanda](<a href="http://www.mipanda.org/">http://www.mipanda.org/</a>) is an online resource for the interrogation and visualization of gene expression data from the myriad of publicly available cancer and normal next generation sequencing datasets.</p><p>16. [Curation of over 10,000 transcriptomic studies to enable data reuse](<a href="https://www.biorxiv.org/content/10.1101/2020.07.13.201442v1">https://www.biorxiv.org/content/10.1101/2020.07.13.201442v1</a>)</p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-83586250230231113992022-10-25T10:25:00.001-07:002022-10-25T10:25:17.565-07:0010 courses to get you started with bioinformatics <p><span style="font-family: arial;">1/ <a href="http://rafalab.dfci.harvard.edu/pages/harvardx.html">http://rafalab.dfci.harvard.edu/pages/harvardx.html</a> by Rafa</span></p><p><span style="font-family: arial;">2/ <a href="https://github.com/quinlan-lab/applied-computational-genomics#course-lecture-slides">https://github.com/quinlan-lab/applied-computational-genomics#course-lecture-slides</a> </span></p><p><span style="font-family: arial;">by Aaron Quinlan, the creator of bedtools and many other cool tools.</span></p><p><span style="font-family: arial;"><br /></span></p><p><span style="font-family: arial;">3/ <a href="https://www.bioinformaticsalgorithms.org/">https://www.bioinformaticsalgorithms.org/</a> You can find the video classes on Coursera </span></p><p><span style="font-family: arial;"><br /></span></p><p><span style="font-family: arial;">4/ <a href="http://www.personal.psu.edu/iua1/courses/2014-BMMB-852.html">http://www.personal.psu.edu/iua1/courses/2014-BMMB-852.html</a> by Istvan Albert, the creator of [biostars](https://www.biostars.org/).</span></p><p><span style="font-family: arial;"><br /></span></p><p><span style="font-family: arial;">5/ Introduction to Bioinformatics and Computational Biology <a href="https://liulab-dfci.github.io/bioinfo-combio/">https://liulab-dfci.github.io/bioinfo-combio/</a> by @XShirleyLiu </span></p><p><span style="font-family: arial;">glad to contribute a little myself.</span></p><p><span style="font-family: arial;"><br /></span></p><p><span style="font-family: arial;">6/ data carpentry workshops <a href="https://datacarpentry.org/lessons/#genomics-workshop">https://datacarpentry.org/lessons/#genomics-workshop</a> I am honored to serve as the curriculum committee chair </span></p><p><span style="font-family: arial;"><br /></span></p><p><span style="font-family: arial;">7/ Computational Genomics: Applied Comparative Genomics <a href="https://github.com/schatzlab/appliedgenomics2018">https://github.com/schatzlab/appliedgenomics2018</a></span></p><p><span style="font-family: arial;">8/ Introduction to Computational Biology <a href="https://biodatascience.github.io/compbio/">https://biodatascience.github.io/compbio/</a> by Mike Love @mikelove</span></p><p><span style="font-family: arial;"><br /></span></p><p><span style="font-family: arial;">9/ [MIT Computational Biology: Genomes, Networks, Evolution, Health - Fall 2018 - 6.047/6.878/HST.507](<a href="https://www.youtube.com/playlist?list=PLypiXJdtIca6GBQwDTo4bIEDV8F4RcAgt">https://www.youtube.com/playlist?list=PLypiXJdtIca6GBQwDTo4bIEDV8F4RcAgt</a>) by Manolis Kellis</span></p><p><span style="font-family: arial;"><br /></span></p><p><span style="font-family: arial;">10/ An introduction to Applied Bioinformatics <a href="http://readiab.org/introduction.html">http://readiab.org/introduction.html</a> Very nice book with python code.</span></p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-11744127495783888252022-10-23T08:06:00.005-07:002022-10-23T16:51:15.953-07:005 websites to analyze GEO RNAseq data without a single line of code<div style="text-align: left;"><span style="font-family: arial;">1. GEOdiver <a href="https://www.geodiver.co.uk/">https://www.geodiver.co.uk/</a></span></div><div style="text-align: left;"><span style="font-family: arial;"><br />2. shinyGEO <a href="https://gdancik.shinyapps.io/shinyGEO/">https://gdancik.shinyapps.io/shinyGEO/</a></span></div><div style="text-align: left;"><span style="font-family: arial;"><br />3. scanGEO <a href="http://scangeo.dartmouth.edu/ScanGEO/">http://scangeo.dartmouth.edu/ScanGEO/</a></span></div><div style="text-align: left;"><span style="font-family: arial;"><br />4. GREIN : GEO RNA-seq experiments interactive navigator for re-analyzing GEO RNA-seq data <a href="https://hub.docker.com/r/ucbd2k/grein/">https://hub.docker.com/r/ucbd2k/grein/</a></span></div><div style="text-align: left;"><span style="font-family: arial;"><br />5. ImaGEO: Integrative Meta-Analysis of GEO Data <a href="https://imageo.genyo.es/">https://imageo.genyo.es/</a></span></div><div style="text-align: left;"><span style="font-family: arial;"><br />Bonus <a href="https://www.ebi.ac.uk/gxa/home">https://www.ebi.ac.uk/gxa/home</a> more than GEO</span></div><div style="text-align: left;"><span style="font-family: arial;">one more Gemma https://gemma.msl.ubc.ca/home.html</span></div>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-42316304043966817132022-10-20T16:44:00.004-07:002022-10-20T16:44:34.686-07:0012 websites to learn computation and many others!<div style="text-align: left;"><span style="font-family: arial;"> 1/ coursera <a href="https://www.coursera.org/">https://www.coursera.org/</a> The first website I used. I took a data science Specialization https://www.coursera.org/specializations/jhu-data-science and https://www.coursera.org/learn/bioinformatics</span></div><div style="text-align: left;"><span style="font-family: arial;"><br />2/ edx <a href="https://www.edx.org/ ">https://www.edx.org/ </a> I took this one first <a href="https://www.edx.org/professional-certificate/harvardx-data-analysis-for-life-sciences">https://www.edx.org/professional-certificate/harvardx-data-analysis-for-life-sciences</a> and <a href="https://www.edx.org/course/statistical-learning">https://www.edx.org/course/statistical-learning</a> and recently some management classes </span></div><div style="text-align: left;"><span style="font-family: arial;"><br />3/ udactiy <a href="https://www.udacity.com/">https://www.udacity.com/</a> I took R courses, ggplot2,github and intro to ML </span></div><div style="text-align: left;"><span style="font-family: arial;"><br />4/ udemy <a href="https://www.udemy.com/">https://www.udemy.com/</a> I took several python courses there.</span></div><div style="text-align: left;"><span style="font-family: arial;"><br />5/ MIT opencourseware <a href="https://ocw.mit.edu/">https://ocw.mit.edu/</a> 1806 linear algebra and many others!</span></div><div style="text-align: left;"><span style="font-family: arial;"><br />6/ harvard CS50 <a href="https://pll.harvard.edu/course/cs50-introduction-computer-science?delta=0">https://pll.harvard.edu/course/cs50-introduction-computer-science?delta=0</a></span></div><div style="text-align: left;"><span style="font-family: arial;"><br />7/ youtube channel 3blue1brown <a href="https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw">https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw</a> blow you away with cristal clear explanations. I watched the linear algebra series </span></div><div style="text-align: left;"><span style="font-family: arial;"><br />8/ Khan academy <a href="https://www.khanacademy.org/">https://www.khanacademy.org/</a></span></div><div style="text-align: left;"><span style="font-family: arial;"><br />9/ free code camp <a href="https://www.freecodecamp.org/">https://www.freecodecamp.org/</a></span></div><div style="text-align: left;"><span style="font-family: arial;"><br />10/ Hubspot <a href="https://academy.hubspot.com/">https://academy.hubspot.com/</a> this one is new to me</span></div><div style="text-align: left;"><span style="font-family: arial;"><br />11/ EBML-EBI training <a href="https://www.ebi.ac.uk/training/online/">https://www.ebi.ac.uk/training/online/</a> bioinformatics courses</span></div><div style="text-align: left;"><span style="font-family: arial;"><br />12/ skillup <a href="https://www.simplilearn.com/skillup-free-online-courses">https://www.simplilearn.com/skillup-free-online-courses</a> this is new to me as well</span></div>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-71877198636702066182022-10-19T06:40:00.002-07:002022-10-19T06:40:29.232-07:00 12 web tools to explore genomics data<p><br /></p><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">1. cbioportal </span><a data-attribute-index="2" href="https://cbioportal.org/" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">https://cbioportal.org</a><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;"> explore genomic datasets at the tips of your fingers</span><br style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">2. xena </span><a data-attribute-index="3" href="https://xena.ucsc.edu/" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">https://xena.ucsc.edu</a><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">, a UCSC effort. Everyone needs to learn how to use UCSC genome browser </span><a data-attribute-index="4" href="https://genome.ucsc.edu/" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">https://genome.ucsc.edu</a><br style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">3. depmap portal </span><a data-attribute-index="5" href="https://lnkd.in/et3uDeci" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">https://lnkd.in/et3uDeci</a><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;"> Cancer Cell Line Encyclopedia</span><br style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">4. TCGA RNA fusion portal </span><a data-attribute-index="6" href="https://tumorfusions.org/" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">https://tumorfusions.org</a><br style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">5. </span><a data-attribute-index="7" href="https://lnkd.in/e3P7td-w" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">https://lnkd.in/e3P7td-w</a><br style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">6. Tumor Immune Syngeneic MOuse (TISMO) database </span><a data-attribute-index="8" href="http://tismo.cistrome.org/" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">http://tismo.cistrome.org</a><br style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">7. PDX models </span><a data-attribute-index="9" href="https://lnkd.in/ezby9kns" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">https://lnkd.in/ezby9kns</a><br style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">8. </span><a data-attribute-index="10" href="https://lnkd.in/ev6EUkwf" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">https://lnkd.in/ev6EUkwf</a><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;"> Tumor Immune Dysfunction and Exclusion</span><br style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">9. </span><a data-attribute-index="11" href="http://timer.cistrome.org/" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">http://timer.cistrome.org</a><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;"> TIMER is a comprehensive resource for systematical analysis of immune infiltrates across diverse cancer types</span><br style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">10. genePattern </span><a data-attribute-index="12" href="https://genepattern.org/" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">https://genepattern.org</a><br style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">11. </span><a data-attribute-index="13" href="https://lnkd.in/ekFBdjfW" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">https://lnkd.in/ekFBdjfW</a><br style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px;">12. draw mutation for a protein </span><a data-attribute-index="14" href="https://lnkd.in/em8GmHQM" style="background-color: white; border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: var(--font-weight-bold); line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: normal; padding: var(--artdeco-reset-base-padding-zero); position: relative; text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); word-break: normal;">https://lnkd.in/em8GmHQM</a><br style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important;" />tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-8572863834457774642022-10-17T14:47:00.001-07:002022-10-17T21:24:51.361-07:0010 tools to make a better flowchart than in PPT<p><span style="font-family: arial;">1. Canva <a href="https://www.canva.com/graphs/flowcharts/">https://www.canva.com/graphs/flowcharts/</a></span><span style="font-family: arial;"> it can also make a nice logo. I made my twitter banner with it.</span></p><p><span style="font-family: arial;">2. Figma <a href="https://www.figma.com/templates/flowchart-maker/">https://www.figma.com/templates/flowchart-maker/</a> recently bought by Adobe</span></p><p><span style="font-family: arial;">3. Adobe illustrator </span></p><p><span style="font-family: arial;">4. Miro <a href="https://miro.com/aq/ps/flowchart-1/">https://miro.com/aq/ps/flowchart-1/</a></span></p><p><span style="font-family: arial;">5. <a href="http://draw.io" rel="nofollow" target="_blank">draw.io </a></span></p><p><span style="font-family: arial;">6. Inkscape <a href="https://github.com/fredhutchio/inkscape-tutorial">https://github.com/fredhutchio/inkscape-tutorial</a></span></p><p><span style="font-family: arial;">7. DiagrammeR if you want to play with R <a href="https://rich-iannone.github.io/DiagrammeR/">https://rich-iannone.github.io/DiagrammeR/</a></span></p><p><span style="font-family: arial;">8. Lucidchart <a href="https://www.lucidchart.com/pages/">https://www.lucidchart.com/pages/</a></span></p><p><span style="font-family: arial;">9. Latex <a href="https://www.baeldung.com/cs/latex-flowcharts">https://www.baeldung.com/cs/latex-flowcharts</a></span></p><p><span style="font-family: arial;">10. <a href="https://whimsical.com/">https://whimsical.com/</a></span></p><div><br /></div>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-50623182740782260832022-10-14T19:35:00.000-07:002022-10-14T19:35:02.240-07:0010 websites for drawing scientific figures<p><br /></p><p class="p2" style="color: #0a529f; font-family: "Avenir Next"; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 3px 0px 0px 30px; text-indent: -22px;"><span class="s1" style="color: #1d1d1d; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">1.<span class="Apple-tab-span" style="white-space: pre;"> </span><a href="https://biorender.com/"><span class="s2" style="color: #0a529f; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">biorender.com</span></a></span></p><p class="p2" style="color: #0a529f; font-family: "Avenir Next"; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 3px 0px 0px 30px; text-indent: -22px;"><span class="s1" style="color: #1d1d1d; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">2.<span class="Apple-tab-span" style="white-space: pre;"> </span><a href="http://reactome.org/icon-lib"><span class="s2" style="color: #0a529f; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">reactome.org/icon-lib</span></a></span></p><p class="p2" style="color: #0a529f; font-family: "Avenir Next"; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 3px 0px 0px 30px; text-indent: -22px;"><span class="s1" style="color: #1d1d1d; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">3.<span class="Apple-tab-span" style="white-space: pre;"> </span><a href="http://thenounproject.com"><span class="s2" style="color: #0a529f; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">thenounproject.com</span></a></span></p><p class="p2" style="color: #0a529f; font-family: "Avenir Next"; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 3px 0px 0px 30px; text-indent: -22px;"><span class="s1" style="color: #1d1d1d; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">4.<span class="Apple-tab-span" style="white-space: pre;"> </span><a href="http://bioicons.com"><span class="s2" style="color: #0a529f; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">bioicons.com</span></a></span></p><p class="p2" style="color: #0a529f; font-family: "Avenir Next"; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 3px 0px 0px 30px; text-indent: -22px;"><span class="s1" style="color: #1d1d1d; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">5.<span class="Apple-tab-span" style="white-space: pre;"> </span><a href="http://healthicons.org"><span class="s2" style="color: #0a529f; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">healthicons.org</span></a></span><span class="s3" style="color: #1d1d1d;"> </span></p><p class="p2" style="color: #0a529f; font-family: "Avenir Next"; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 3px 0px 0px 30px; text-indent: -22px;"><span class="s1" style="color: #1d1d1d; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">6.<span class="Apple-tab-span" style="white-space: pre;"> </span><a href="http://Scidraw.io"><span class="s2" style="color: #0a529f; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">Scidraw.io</span></a></span></p><p class="p2" style="color: #0a529f; font-family: "Avenir Next"; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 3px 0px 0px 30px; text-indent: -22px;"><span class="s1" style="color: #1d1d1d; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">7.<span class="Apple-tab-span" style="white-space: pre;"> </span><a href="http://undraw.co"><span class="s2" style="color: #0a529f; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">undraw.co</span></a></span></p><p class="p2" style="color: #0a529f; font-family: "Avenir Next"; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 3px 0px 0px 30px; text-indent: -22px;"><span class="s1" style="color: #1d1d1d; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">8.<span class="Apple-tab-span" style="white-space: pre;"> </span><a href="https://smart.servier.com/"><span class="s2" style="color: #0a529f; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">smart.servier.com</span></a></span></p><p class="p2" style="color: #0a529f; font-family: "Avenir Next"; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 3px 0px 0px 30px; text-indent: -22px;"><span class="s1" style="color: #1d1d1d; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">9.<span class="Apple-tab-span" style="white-space: pre;"> </span><a href="https://www.edrawmax.com/"><span class="s2" style="color: #0a529f; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">edrawmax.com</span></a></span></p><p class="p2" style="color: #0a529f; font-family: "Avenir Next"; font-size: 14px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 3px 0px 0px 30px; text-indent: -22px;"><span class="s1" style="color: #1d1d1d; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">10.<span class="Apple-tab-span" style="white-space: pre;"> </span></span><span class="s3" style="color: #1d1d1d;"><a href="https://linktr.ee/mindthegraph"><span class="s4" style="color: #0a529f;">linktr.ee/mindthegraph</span></a></span></p><p><br /></p>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-86161475097974674072022-07-29T05:20:00.002-07:002022-07-29T05:20:43.237-07:00How to make a transcript to gene mapping file<p> <span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;">I need a transcript to gene mapping file for</span><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;"> </span><code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">Salmon</code><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;">. I am aware of annotation</span><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;"> </span><code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">bioconductor</code><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;"> </span><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;">packages that can do this job. However, I was working on a species which does not have the annotation in a package format (I am going to use Drosphila as an example for this blog post). I had to go and got the gtf file and made such a file from scratch.</span></p><div class="article-style" itemprop="articleBody" style="background-color: white; box-sizing: border-box; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;"><p style="box-sizing: border-box; margin: 0px 0px 1rem;">Please read the <a href="https://useast.ensembl.org/info/website/upload/gff.html" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;">specifications</a> of those two file formats.</p><div class="section level3" id="download-drosophila-gtf-file-from-ensemble-and-gff-file-from-ncbi" style="box-sizing: border-box;"><h3 style="box-sizing: border-box; color: #313131; font-family: "{{ .Get \"heading_font\" }}", sans-serif; font-size: 1.25rem; line-height: 1.25; margin-bottom: 0.5rem; margin-top: 1.5rem; overflow-wrap: break-word; text-rendering: optimizelegibility;">Download drosophila gtf file from ENSEMBLE and gff file from NCBI</h3><p style="box-sizing: border-box; margin: 0px 0px 1rem;">Find the <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">gff</code> file at <a class="uri" href="https://www.ncbi.nlm.nih.gov/genome/?term=drosophila+melanogaster" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;">https://www.ncbi.nlm.nih.gov/genome/?term=drosophila+melanogaster</a><br style="box-sizing: border-box;" />Find the <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">gtf</code> file at <a class="uri" href="ftp://ftp.ensembl.org/pub/release-95/gtf/drosophila_melanogaster/" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;">ftp://ftp.ensembl.org/pub/release-95/gtf/drosophila_melanogaster/</a></p><pre class="bash" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">#gtf file</span>
zless -S ~/Downloads/Drosophila_melanogaster.BDGP6.95.gtf.gz | grep -v <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"#"</span> | cut -f3 | sort | uniq -c</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 160859 CDS</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 4 Selenocysteine</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 187373 exon</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 46299 five_prime_utr</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 17737 gene</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 30492 start_codon</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 33892 three_prime_utr</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 34767 transcript</span></span></code></pre><pre class="bash" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">#gff file</span>
zless -S ~/Downloads/GCF_000001215.4_Release_6_plus_ISO1_MT_genomic.gff.gz| grep -v <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"#"</span> | cut -f3 | sort | uniq -c</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 160949 CDS</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 1 RNase_MRP_RNA</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 2 RNase_P_RNA</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 2 SRP_RNA</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 584 antisense_RNA</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 187809 exon</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 17421 gene</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 2275 lnc_RNA</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 30480 mRNA</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 479 miRNA</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 5416 mobile_genetic_element</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 77 ncRNA</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 263 primary_transcript</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 308 pseudogene</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 134 rRNA</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 1870 region</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 1 sequence_feature</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 32 snRNA</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 289 snoRNA</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 319 tRNA</span></span></code></pre></div><div class="section level3" id="use-unix-command-to-make-a-transcripts-to-gene-mapping-file-from-gtf-file" style="box-sizing: border-box;"><h3 style="box-sizing: border-box; color: #313131; font-family: "{{ .Get \"heading_font\" }}", sans-serif; font-size: 1.25rem; line-height: 1.25; margin-bottom: 0.5rem; margin-top: 1.5rem; overflow-wrap: break-word; text-rendering: optimizelegibility;">Use unix command to make a transcripts to gene mapping file from gtf file</h3><p style="box-sizing: border-box; margin: 0px 0px 1rem;">We see the feature types are quite different although they are both annotation files for the same species. The <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">gtf</code> file is relatively well formatted, and we can make a transcripts to gene mapping file easily using unix command line.</p><pre class="bash" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;">zless -S ~/Downloads/Drosophila_melanogaster.BDGP6.95.gtf.gz | grep -v <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"#"</span> | awk <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">'$3=="transcript"'</span> | cut -f9 | tr -s <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">";"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">" "</span> | awk <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">'{print$4"\t"$2}'</span> | sort | uniq | sed <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">'s/\"//g'</span> | tee tx2gene_ensemble.tsv| head</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># FBgn0013687 FBgn0013687</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># FBtr0005088 FBgn0260439</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># FBtr0006151 FBgn0000056</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># FBtr0070000 FBgn0031081</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># FBtr0070001 FBgn0052826</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># FBtr0070002 FBgn0031085</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># FBtr0070003 FBgn0062565</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># FBtr0070006 FBgn0031089</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># FBtr0070007 FBgn0031092</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># FBtr0070008 FBgn0031094</span></span></code></pre><p style="box-sizing: border-box; margin: 0px 0px 1rem;">hmm…why the first line has both genes in the two columns?… sanity check:</p><pre class="bash" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;">zless -S ~/Downloads/Drosophila_melanogaster.BDGP6.95.gtf.gz | grep <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"FBgn0013687"</span> | less -S</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs objectivec" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">## mitochondrion_genome FlyBase gene 14917 19524 . + . gene_id <span class="hljs-meta-string" style="box-sizing: border-box;">"FBgn0013687"</span>; gene_name <span class="hljs-meta-string" style="box-sizing: border-box;">"mt:ori"</span>; gene_source <span class="hljs-meta-string" style="box-sizing: border-box;">"FlyBase"</span>; gene_biotype <span class="hljs-meta-string" style="box-sizing: border-box;">"pseudogene"</span>;</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">## mitochondrion_genome FlyBase transcript 14917 19524 . + . gene_id <span class="hljs-meta-string" style="box-sizing: border-box;">"FBgn0013687"</span>; transcript_id <span class="hljs-meta-string" style="box-sizing: border-box;">"FBgn0013687"</span>; gene_name <span class="hljs-meta-string" style="box-sizing: border-box;">"mt:ori"</span>; gene_source <span class="hljs-meta-string" style="box-sizing: border-box;">"FlyBase"</span>; gene_biotype <span class="hljs-meta-string" style="box-sizing: border-box;">"pseudogene"</span>; transcript_source <span class="hljs-meta-string" style="box-sizing: border-box;">"FlyBase"</span>; transcript_biotype <span class="hljs-meta-string" style="box-sizing: border-box;">"pseudogene"</span>;</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">## mitochondrion_genome FlyBase exon 14917 19524 . + . gene_id <span class="hljs-meta-string" style="box-sizing: border-box;">"FBgn0013687"</span>; transcript_id <span class="hljs-meta-string" style="box-sizing: border-box;">"FBgn0013687"</span>; exon_number <span class="hljs-meta-string" style="box-sizing: border-box;">"1"</span>; gene_name <span class="hljs-meta-string" style="box-sizing: border-box;">"mt:ori"</span>; gene_source <span class="hljs-meta-string" style="box-sizing: border-box;">"FlyBase"</span>; gene_biotype <span class="hljs-meta-string" style="box-sizing: border-box;">"pseudogene"</span>; transcript_source <span class="hljs-meta-string" style="box-sizing: border-box;">"FlyBase"</span>; transcript_biotype <span class="hljs-meta-string" style="box-sizing: border-box;">"pseudogene"</span>; exon_id <span class="hljs-meta-string" style="box-sizing: border-box;">"FBgn0013687-E1"</span>;</span></code></pre><p style="box-sizing: border-box; margin: 0px 0px 1rem;">Indeed it is in the original gtf file.</p></div><div class="section level3" id="use-gffutilsto-make-a-transcripts-to-gene-mapping-file-from-gff-file" style="box-sizing: border-box;"><h3 style="box-sizing: border-box; color: #313131; font-family: "{{ .Get \"heading_font\" }}", sans-serif; font-size: 1.25rem; line-height: 1.25; margin-bottom: 0.5rem; margin-top: 1.5rem; overflow-wrap: break-word; text-rendering: optimizelegibility;">Use <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 22.5px; padding: 2px 4px;">gffutils</code>to make a transcripts to gene mapping file from gff file</h3><p style="box-sizing: border-box; margin: 0px 0px 1rem;">The <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">gff</code> file is not that well defined. One may still be able to use some unix tricks to get the tx2gene.tsv file from a gff file, but it can be rather awkward especially for gff files from other not well annotated species. Instead, let’s use <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">gffutils</code>, a python package to do the same.</p><p style="box-sizing: border-box; margin: 0px 0px 1rem;">install <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">gffutils</code> in terminal:</p><p style="box-sizing: border-box; margin: 0px 0px 1rem;"><code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">source activate snakemake</code><br style="box-sizing: border-box;" /><code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">conda install gffutils</code></p><p style="box-sizing: border-box; margin: 0px 0px 1rem;">Note, I am running python through Rsutdio/ First read how to set python path for <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">reticulate</code> at <a class="uri" href="https://rstudio.github.io/reticulate/articles/versions.html" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;">https://rstudio.github.io/reticulate/articles/versions.html</a> read more on <a class="uri" href="https://cran.r-project.org/web/packages/reticulate/vignettes/versions.html" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;">https://cran.r-project.org/web/packages/reticulate/vignettes/versions.html</a></p><p style="box-sizing: border-box; margin: 0px 0px 1rem;">Somehow, I have to create a <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">.Rprofile</code> in the same folder of <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">.Rproj</code> file with the following line to use my snakemake conda environment which is python3:</p><p style="box-sizing: border-box; margin: 0px 0px 1rem;"><code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">Sys.setenv(PATH = paste("/anaconda3/envs/snakemake/bin/", Sys.getenv("PATH"), sep=":"))</code></p><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">library</span>(reticulate)
<span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># check which python I am using</span>
py_discover_config()</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># python: /anaconda3/envs/snakemake/bin//python</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># libpython: /anaconda3/envs/snakemake/lib/libpython3.6m.dylib</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># pythonhome: /anaconda3/envs/snakemake:/anaconda3/envs/snakemake</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># version: 3.6.7 |Anaconda, Inc.| (default, Oct 23 2018, 14:01:38) [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># numpy: /anaconda3/envs/snakemake/lib/python3.6/site-packages/numpy</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># numpy_version: 1.15.3</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># </span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># python versions found: </span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># /anaconda3/envs/snakemake/bin//python</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># /usr/bin/python</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># /anaconda3/envs/py27/bin/python</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># /anaconda3/envs/snakemake/bin/python</span></span></code></pre><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># these did not work for me...</span>
<span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># use_condaenv("snakemake", required = TRUE)</span>
<span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># use_python("/anaconda3/envs/snakemake/bin/python")</span></code></pre><pre class="python" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">import</span> sys
print(sys.version)</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># 3.6.7 |Anaconda, Inc.| (default, Oct 23 2018, 14:05:31) </span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]</span></span></code></pre><pre class="python" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">import</span> gffutils
<span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">import</span> itertools
<span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">import</span> os
os.listdir()
db = gffutils.create_db(<span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GCF_000001215.4_Release_6_plus_ISO1_MT_genomic.gff.gz"</span>, <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">":memory:"</span>, force = <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">True</span>,merge_strategy=<span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"merge"</span>, id_spec={<span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">'gene'</span>: <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">'Dbxref'</span>})
list(db.featuretypes())
<span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># one can do it for one type of features, say mRNA</span>
<span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">for</span> mRNA <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">in</span> itertools.islice(db.features_of_type(<span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">'mRNA'</span>), <span class="hljs-number" style="box-sizing: border-box; color: teal;">10</span>):
print(mRNA[<span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">'transcript_id'</span>][<span class="hljs-number" style="box-sizing: border-box; color: teal;">0</span>], mRNA[<span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">'gene'</span>][<span class="hljs-number" style="box-sizing: border-box; color: teal;">0</span>])
<span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">#print(mRNA.attributes.items())</span>
<span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">## but I then have to do the same for lnc_RNA and others. </span>
<span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">## instead, loop over all features in the database</span></code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># NM_001103384.3 CG17636</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># NM_001258513.2 CG17636</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># NM_001258512.2 CG17636</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># NM_001297796.1 RhoGAP1A</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># NM_001297795.1 RhoGAP1A</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># NM_001103385.2 RhoGAP1A</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># NM_001103386.2 RhoGAP1A</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># NM_001169155.1 RhoGAP1A</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># NM_001297797.1 RhoGAP1A</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># NM_001297801.1 tyn</span></span></code></pre><pre class="python" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;">tx_and_gene=[]
<span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">with</span> open(<span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"tx2gene_NCBI.tsv"</span>, <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"w"</span>) <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">as</span> f:
<span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">for</span> feature <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">in</span> db.all_features():
transcript = feature.attributes.get(<span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">'transcript_id'</span>, [<span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">None</span>])[<span class="hljs-number" style="box-sizing: border-box; color: teal;">0</span>]
gene = feature.attributes.get(<span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">'gene'</span>, [<span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">None</span>])[<span class="hljs-number" style="box-sizing: border-box; color: teal;">0</span>]
<span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">if</span> gene <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">and</span> transcript <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">and</span> ([transcript, gene] <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">not</span> <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">in</span> tx_and_gene):
tx_and_gene.append([transcript, gene])
f.write(transcript + <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"\t"</span> + gene + <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"\n"</span>)</code></pre><p style="box-sizing: border-box; margin: 0px 0px 1rem;">These lines of codes are not hard to write. It takes more time to read the package documentation and understand how to use the package. One problem with bioinFORMATics is that there are so many different file formats. To make things worse, even for gff file format, many files do not follow the exact specification. You can have a taste of that at <a class="uri" href="http://daler.github.io/gffutils/examples.html" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;">http://daler.github.io/gffutils/examples.html</a>.</p></div></div><div class="article-tags" style="background-color: white; box-sizing: border-box; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;"><a class="btn btn-primary btn-outline" href="https://divingintogeneticsandgenomics.rbind.io/tags/gff/" style="background: transparent !important; border-color: rgb(50, 140, 193) !important; border-image: initial; border-radius: 4px; border-style: solid; border-width: 1px; box-sizing: border-box; color: rgb(50, 140, 193) !important; cursor: pointer; display: inline-block; font-size: 14px; line-height: 1.42857; margin-bottom: 0px; padding: 6px 12px; text-align: center; text-decoration-line: none; touch-action: manipulation; transition: all 0.5s ease 0s; user-select: none; vertical-align: middle; white-space: nowrap;">gff</a></div><div><br /></div>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com0tag:blogger.com,1999:blog-4376119613549496246.post-63203759585215689742022-07-22T08:31:00.000-07:002022-07-22T08:31:01.804-07:00My odyssey of obtaining scRNAseq metadata<p><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;">I want to curate a public scRNAseq dataset from this paper</span><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;"> </span><a href="https://pubmed.ncbi.nlm.nih.gov/34653365/" style="box-sizing: border-box; color: #328cc1; font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px; text-decoration-line: none; transition: color 0.6s ease 0s;">Single-cell analyses reveal key immune cell subsets associated with response to PD-L1 blockade in triple-negative breast cancer</a></p><div class="section level3" id="ffq" style="background-color: white; box-sizing: border-box; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;"><h3 style="box-sizing: border-box; color: #313131; font-family: "{{ .Get \"heading_font\" }}", sans-serif; font-size: 1.25rem; line-height: 1.25; margin-bottom: 0.5rem; margin-top: 1.5rem; overflow-wrap: break-word; text-rendering: optimizelegibility;">ffq</h3><p style="box-sizing: border-box; margin: 0px 0px 1rem;">I first tried <a href="https://github.com/pachterlab/ffq" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;">ffq</a>, but it gave me errors.</p><p style="box-sizing: border-box; margin: 0px 0px 1rem;"><code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">ffq</code> fetches metadata information from the following databases:</p><ul style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><li style="box-sizing: border-box;">GEO: Gene Expression Omnibus,</li><li style="box-sizing: border-box;">SRA: Sequence Read Archive,</li><li style="box-sizing: border-box;">EMBL-EBI: European Molecular BIology Laboratory’s European BIoinformatics Institute,</li><li style="box-sizing: border-box;">DDBJ: DNA Data Bank of Japan,</li><li style="box-sizing: border-box;">NIH Biosample: Biological source materials used in experimental assays,</li><li style="box-sizing: border-box;">ENCODE: The Encyclopedia of DNA Elements.</li></ul><pre class="bash" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;">(base) ➜ ~ ffq GSE169246
[2022-06-06 14:32:22,716] INFO Parsing GEO GSE169246
[2022-06-06 14:32:24,418] INFO Finding supplementary files <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">for</span> GEO GSE169246
[2022-06-06 14:32:28,001] WARNING There are 83 samples <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">for</span> GSE169246
[2022-06-06 14:32:28,001] INFO Parsing GSM GSM5188367
[2022-06-06 14:32:33,047] INFO Finding supplementary files <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">for</span> GSM GSM5188367
[2022-06-06 14:32:34,409] INFO No supplementary files found <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">for</span> GSM5188367
[2022-06-06 14:32:39,659] INFO Getting sample <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">for</span> GSM5188367
[2022-06-06 14:32:41,847] WARNING No sample found. Either the provided GSM accession is invalid or raw data was not provided <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">for</span> this record</code></pre></div><div class="section level3" id="get-the-metadata-using-geoquery" style="background-color: white; box-sizing: border-box; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;"><h3 style="box-sizing: border-box; color: #313131; font-family: "{{ .Get \"heading_font\" }}", sans-serif; font-size: 1.25rem; line-height: 1.25; margin-bottom: 0.5rem; margin-top: 1.5rem; overflow-wrap: break-word; text-rendering: optimizelegibility;">get the metadata using GEOquery</h3><p style="box-sizing: border-box; margin: 0px 0px 1rem;">other methods: pysradb <a class="uri" href="https://github.com/saketkc/pysradb" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;">https://github.com/saketkc/pysradb</a></p><p style="box-sizing: border-box; margin: 0px 0px 1rem;">I then tried <a href="https://bioconductor.org/packages/release/bioc/html/GEOquery.html" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;"><code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">GEOquery</code></a></p><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">library</span>(GEOquery)
<span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">library</span>(tidyverse)
<span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">library</span>(here)
<span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">#getGEOSuppFiles(GEO ="GSE176021")</span>
<span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># one can also get the matrix by setting GSEMatrix to TRUE</span>
meta<- getGEO(GEO= <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSE169246"</span>,GSEMatrix=<span class="hljs-literal" style="box-sizing: border-box; color: teal;">FALSE</span>)</code></pre><p style="box-sizing: border-box; margin: 0px 0px 1rem;">The <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">meta</code> object’s gsms slot contains useful information</p><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">## metadata </span>
meta@gsms$GSM5188440@header$characteristics_ch1</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"tissue: blood"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"disease state: TNBC patient"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [3] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"group: Progression"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"treatment: Chemo"</span></span></code></pre><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">## sample ID, I need it because the count matrix cell name is prefixed by it</span>
meta@gsms$GSM5188440@header$title </code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Prog_P008_b"</span></span></code></pre><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">## patient ID</span>
meta@gsms$GSM5188440@header$source_name_ch1</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"P008"</span></span></code></pre><p style="box-sizing: border-box; margin: 0px 0px 1rem;"><code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">meta@gsms</code> is a list of lists. <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">purrr::map()</code> is a perfect tool to tidy it.</p><p style="box-sizing: border-box; margin: 0px 0px 1rem;">you can learn more <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">purrr</code> from <a class="uri" href="https://jennybc.github.io/purrr-tutorial/" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;">https://jennybc.github.io/purrr-tutorial/</a></p><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># each list entry is one sample</span>
names(meta@gsms)</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188367"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188368"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188369"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188370"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188371"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [6] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188372"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188373"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188374"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188375"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188376"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [11] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188377"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188378"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188379"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188380"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188381"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [16] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188382"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188383"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188384"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188385"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188386"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [21] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188387"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188388"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188389"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188390"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188391"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [26] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188392"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188393"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188394"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188395"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188396"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [31] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188397"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188398"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188399"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188400"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188401"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [36] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188402"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188403"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188404"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188405"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188406"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [41] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188407"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188408"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188409"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188410"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188411"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [46] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188412"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188413"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188414"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188415"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188416"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [51] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188417"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188418"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188419"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188420"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188421"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [56] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188422"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188423"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188424"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188425"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188426"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [61] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188427"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188428"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188429"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188430"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188431"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [66] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188432"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188433"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188434"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188435"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188436"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [71] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188437"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188438"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188439"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188440"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188441"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [76] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188442"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188443"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188444"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188445"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5585280"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [81] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5585281"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5585282"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5585283"</span></span></code></pre><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;">meta@gsms$GSM5188367@header</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$channel_count</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"1"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$characteristics_ch1</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"tissue: blood"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"disease state: TNBC patient"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [3] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"group: Pre-treatment"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"treatment: anti-PDL1+Chemo"</span> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$contact_address</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Yiheyuan Road"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$contact_city</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Beijing"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$contact_country</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"China"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$contact_department</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"BIOPIC"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$contact_email</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"zhangyuanyuanbio@pku.edu.cn"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$contact_institute</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Peking Univerisity"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$contact_laboratory</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Zemin Zhang's Lab"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$contact_name</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Yuanyuan,,Zhang"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$contact_state</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Beijing"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> $`contact_zip/postal_code`</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"100871"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$data_processing</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"For 10X data, Cell Ranger 3.0.0 was used to quantify gene expression level, identify TCR sequences and quantify ATAC-seq peaks ."</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [2] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Genome_build: GRCh38 for RNA expression,TCR data and ATAC peaks."</span> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$data_row_count</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"0"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$description</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"10X Genomics platform"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$extract_protocol_ch1</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Peripheral blood mononuclear cells (PBMCs) were isolated with HISTOPAQUE-1077 (Sigma-Aldrich) solution. In brief, 3 ml fresh peripheral blood was collected at baseline, 4 weeks after treatment initiation and disease progression in EDTA anticoagulant tubes and subsequently layered onto HISTOPAQUE-1077. Tumor biopsy samples were first stored in RNAlater RNA stabilization reagent (QIAGEN) after collection and kept on ice to avoid RNA degradation. Samples were then collected in the RPMI-1640 medium (Gibco) with 10% FBS (Gibco), and enzymatically digested with gentle MACS Tumor Dissociation Kit (Miltenyi Biotec) for 60 min on a rotor at 37 °C according to the manufacturer’s protocol. The dissociated cells were next passed through a 40-µm cell-strainer (BD) in the RPMI-1640 medium (Invitrogen) with 10% FBS until uniform cell suspensions were obtained. Subsequently, the suspended cells were passed through cell strainers and centrifuged at 400 g for 10 min. Red blood cells were removed via the same procedure described above. After washing twice with 1x PBS (Invitrogen), the cell pellets were re-suspended in sorting buffer (PBS supplemented with 1% FBS)."</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [2] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"single cells were sorted into 1.5 ml tubes (Eppendorf) and counted manually under the microscope. The concentration of single cell suspensions was adjusted to 500-1200 cells/ul. Cells were loaded between 7,000 and 15,000 cells/chip position using the 10x Chromium Single cell 5’ Library, Gel Bead & Multiplex Kit and Chip Kit (10x Genomics, V3 barcoding chemistry) according to the manufacturer’s instructions. All the subsequent steps were performed following the standard manufacturer’s protocols. Purified libraries were analyzed by an Illumina Hiseq X Ten sequencer with 150-bp paired-end reads."</span> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [3] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"10x Chromium Single cell 5’ + VDJ Library, and 10x Chromium Single cell ATAC-seq Library"</span> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$geo_accession</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSM5188367"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$instrument_model</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"HiSeq X Ten"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$last_update_date</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Sep 17 2021"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$library_selection</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"cDNA"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$library_source</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"transcriptomic"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$library_strategy</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"RNA-Seq"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$molecule_ch1</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"polyA RNA"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$organism_ch1</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Homo sapiens"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$platform_id</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GPL20795"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$relation</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"BioSample: <a class="vglnk" href="https://www.ncbi.nlm.nih.gov/biosample/SAMN18383051" rel="nofollow" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;"><span style="box-sizing: border-box;">https</span><span style="box-sizing: border-box;">://</span><span style="box-sizing: border-box;">www</span><span style="box-sizing: border-box;">.</span><span style="box-sizing: border-box;">ncbi</span><span style="box-sizing: border-box;">.</span><span style="box-sizing: border-box;">nlm</span><span style="box-sizing: border-box;">.</span><span style="box-sizing: border-box;">nih</span><span style="box-sizing: border-box;">.</span><span style="box-sizing: border-box;">gov</span><span style="box-sizing: border-box;">/</span><span style="box-sizing: border-box;">biosample</span><span style="box-sizing: border-box;">/</span><span style="box-sizing: border-box;">SAMN18383051</span></a>"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$series_id</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"GSE169246"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$source_name_ch1</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"P007"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$status</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Public on Sep 15 2021"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$submission_date</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Mar 19 2021"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$supplementary_file_1</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"NONE"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$taxid_ch1</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"9606"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$title</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Pre_P007_b"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$treatment_protocol_ch1</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"Half of 22 TNBC patients were treated with paclitaxel monotherapy and the other half were treated with paclitaxel plus atezolizumab as first-line treatment"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$type</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"SRA"</span></span></code></pre><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># extract the metadata from the header</span>
purrr::map(meta@gsms, ~.x@header$characteristics_ch1)[<span class="hljs-number" style="box-sizing: border-box; color: teal;">1</span>:<span class="hljs-number" style="box-sizing: border-box; color: teal;">5</span>]</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$GSM5188367</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"tissue: blood"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"disease state: TNBC patient"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [3] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"group: Pre-treatment"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"treatment: anti-PDL1+Chemo"</span> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$GSM5188368</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"tissue: lymph_node"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"disease state: TNBC patient"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [3] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"group: Pre-treatment"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"treatment: anti-PDL1+Chemo"</span> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$GSM5188369</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"tissue: blood"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"disease state: TNBC patient"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [3] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"group: Pre-treatment"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"treatment: anti-PDL1+Chemo"</span> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$GSM5188370</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"tissue: lymph_node"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"disease state: TNBC patient"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [3] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"group: Pre-treatment"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"treatment: anti-PDL1+Chemo"</span> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-variable" style="box-sizing: border-box; color: teal;">$GSM5188371</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [1] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"tissue: blood"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"disease state: TNBC patient"</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> [3] <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"group: Pre-treatment"</span> <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"treatment: anti-PDL1+Chemo"</span></span></code></pre><p style="box-sizing: border-box; margin: 0px 0px 1rem;">Also, have you used the awesome <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">stack</code> and <code style="background-color: #f9f2f4; border-radius: 4px; box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 18px; padding: 2px 4px;">unstack</code> function in base R? There are so many good hidden functions.</p><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># save it to a variable</span>
meta1<- purrr::map(meta@gsms, ~.x@header$characteristics_ch1) %>%
stack() %>%
separate(values, into = c(<span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"condition"</span>, <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"value"</span>), sep= <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">": "</span>)%>%
pivot_wider(names_from= condition, values_from = value) %>%
janitor::clean_names()
meta2<- purrr::map(meta@gsms, ~.x@header$title) %>%
stack() %>%
dplyr::rename(sample_id = values)
meta3<- purrr::map(meta@gsms, ~.x@header$source_name_ch1) %>%
stack() %>%
dplyr::rename(patient_id = values)
head(meta1)</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># A tibble: 6 × 5</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> ind tissue disease_state group treatment </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <fct> <chr> <chr> <chr> <chr> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 1 GSM5188367 blood TNBC patient Pre-treatment anti-PDL1+Chemo</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 2 GSM5188368 lymph_node TNBC patient Pre-treatment anti-PDL1+Chemo</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 3 GSM5188369 blood TNBC patient Pre-treatment anti-PDL1+Chemo</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 4 GSM5188370 lymph_node TNBC patient Pre-treatment anti-PDL1+Chemo</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 5 GSM5188371 blood TNBC patient Pre-treatment anti-PDL1+Chemo</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 6 GSM5188372 blood TNBC patient Pre-treatment Chemo</span></code></pre><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;">head(meta2)</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> sample_id ind</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 1 Pre_P007_b GSM5188367</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 2 Pre_P007_t GSM5188368</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 3 Pre_P012_b GSM5188369</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 4 Pre_P012_t GSM5188370</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 5 Pre_P014_b GSM5188371</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 6 Pre_P023_b GSM5188372</span></code></pre><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;">head(meta3)</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> patient_id ind</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 1 P007 GSM5188367</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 2 P007 GSM5188368</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 3 P012 GSM5188369</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 4 P012 GSM5188370</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 5 P014 GSM5188371</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 6 P023 GSM5188372</span></code></pre><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">##merge all of them</span>
meta<- left_join(meta1, meta2) %>%
left_join(meta3)
head(meta)</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># A tibble: 6 × 7</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> ind tissue disease_state group treatment sample_id patient_id</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <fct> <chr> <chr> <chr> <chr> <chr> <chr> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 1 GSM5188367 blood TNBC patient Pre-treatm… anti-PDL… Pre_P007… P007 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 2 GSM5188368 lymph_node TNBC patient Pre-treatm… anti-PDL… Pre_P007… P007 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 3 GSM5188369 blood TNBC patient Pre-treatm… anti-PDL… Pre_P012… P012 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 4 GSM5188370 lymph_node TNBC patient Pre-treatm… anti-PDL… Pre_P012… P012 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 5 GSM5188371 blood TNBC patient Pre-treatm… anti-PDL… Pre_P014… P014 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 6 GSM5188372 blood TNBC patient Pre-treatm… Chemo Pre_P023… P023</span></code></pre><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">## remove the scATACseq samples</span>
meta<- meta %>%
filter(!str_detect(sample_id, <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"ATAC-seq"</span>))</code></pre></div><div class="section level3" id="get-the-response-data" style="background-color: white; box-sizing: border-box; color: rgba(0, 0, 0, 0.8); font-family: "{{ .Get \"body_font\" }}", sans-serif; font-size: 20px;"><h3 style="box-sizing: border-box; color: #313131; font-family: "{{ .Get \"heading_font\" }}", sans-serif; font-size: 1.25rem; line-height: 1.25; margin-bottom: 0.5rem; margin-top: 1.5rem; overflow-wrap: break-word; text-rendering: optimizelegibility;">Get the response data</h3><p style="box-sizing: border-box; margin: 0px 0px 1rem;">Now, I will need to go to the publication and find the supplementary table which contains the response data. It looks like this:</p><p style="box-sizing: border-box; margin: 0px 0px 1rem;"><img src="https://divingintogeneticsandgenomics.rbind.io/img/meta_excel.png" style="border: 0px; box-sizing: border-box; display: block; height: auto; margin: 60px auto; max-width: 500px; padding: 0px; vertical-align: middle;" />Everyone should read this <a class="uri" href="https://datacarpentry.org/spreadsheet-ecology-lesson/02-common-mistakes/" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;">https://datacarpentry.org/spreadsheet-ecology-lesson/02-common-mistakes/</a> and <a href="https://www.tandfonline.com/doi/full/10.1080/00031305.2017.1375989" style="background-color: transparent; box-sizing: border-box; color: #328cc1; text-decoration-line: none; transition: color 0.6s ease 0s;">Data organization in spreadsheet</a></p><p style="box-sizing: border-box; margin: 0px 0px 1rem;">Using excel wisely is not a rocket science, but using it correctly can make bioinformatician’s life much easier.</p><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;">clinical_data<- readxl::read_xlsx(<span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"~/Downloads/1-s2.0-S1535610821004992-mmc2.xlsx"</span>, skip = <span class="hljs-number" style="box-sizing: border-box; color: teal;">1</span>)
<span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">## there are many places need to be fixed</span>
print(clinical_data, n = <span class="hljs-number" style="box-sizing: border-box; color: teal;">40</span>)</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs objectivec" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> # A tibble: 27 × 19</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> Treatment `Patient ID` `Biopsied lesi…` `Diameter of b…` `Size of targe…`</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><dbl></span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 1 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> NA</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 2 Anti-PD-L1+ … P019 Lymph Node 15 36</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 3 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P010 Lung 21 35</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 4 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P012 Lymph Node 28 28</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 5 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P007 Lymph Node 22 22</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 6 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P017 Lymph Node 16 45</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 7 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P001 - - 45</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 8 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P002 Chest Wall 48 48</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 9 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P014 - - 11</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 10 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P004 Chest Wall 35 35</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 11 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P005 Liver 87 97</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 12 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P016 Chest Wall 24 24</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 13 Chemo P022 Breast 33 48</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 14 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P011 - - 30</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 15 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P020 Breast 37 55</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 16 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P008 Lung 22 22</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 17 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P013 Liver 36 152</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 18 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P025 Breast 26 26</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 19 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P018 Breast 48 48</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 20 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P023 Breast 26 42</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 21 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P024 Breast 72 95</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 22 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P003 Chest Wall 11 30</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 23 <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> P028 - 26 57</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 24 N,Not availa… <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> NA</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 25 * Negative v… <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> NA</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 26 # PR,partial… <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> NA</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> 27 $The + sign … <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> <span class="hljs-meta-string" style="box-sizing: border-box;"><NA></span> NA</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> # … with 14 more variables: Age <span class="hljs-meta-string" style="box-sizing: border-box;"><dbl></span>, `Stage (TNM )` <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span>, `PD-L1` <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span>,</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> # `TILs (%)` <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span>, Tumor <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span>, ...11 <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span>, ...12 <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span>, Blood <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span>,</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> # ...14 <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span>, ...15 <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span>,</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> # `Relative change of target lesions (8 weeks after treatment initiation vs. Pre-treatment)*` <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span>,</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> # `Relative change of biopsied lesions (8 weeks after treatment initiation vs. Pre-treatment)*` <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span>,</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#> # `Clinical efficacy#` <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span>, `Time to progression (months)$` <span class="hljs-meta-string" style="box-sizing: border-box;"><chr></span></span></code></pre><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">## remove the first row and the last 4 rows, fill in the NAs for the Treatment </span>
clinical_data<- clinical_data %>%
janitor::clean_names() %>%
slice(<span class="hljs-number" style="box-sizing: border-box; color: teal;">2</span>:<span class="hljs-number" style="box-sizing: border-box; color: teal;">23</span>) %>%
tidyr::fill(treatment) %>%
dplyr::select(!(tumor:x15)) </code></pre><p style="box-sizing: border-box; margin: 0px 0px 1rem;">yeah, and N for not available , and sometimes - means not available. let’s fix that.</p><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;">clinical_data<- clinical_data %>%
<span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;">#trim off the white spaces. this will help the later step too</span>
mutate_all(~str_trim(.x, side =<span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"both"</span>)) %>%
mutate_at(vars(-pd_l1), ~str_replace(.x , <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"^-$"</span>, <span class="hljs-literal" style="box-sizing: border-box; color: teal;">NA_character_</span>)) %>%
mutate_all( ~str_replace(.x , <span class="hljs-string" style="box-sizing: border-box; color: #dd1144;">"^N$"</span>, <span class="hljs-literal" style="box-sizing: border-box; color: teal;">NA_character_</span>))</code></pre><p style="box-sizing: border-box; margin: 0px 0px 1rem;">merge the two tables</p><pre class="r" style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;">meta<- meta %>%
left_join(clinical_data) %>%
arrange(patient_id, biopsied_lesion) %>%
select(-biopsied_lesion)
print(meta, n = <span class="hljs-number" style="box-sizing: border-box; color: teal;">20</span>)</code></pre><pre style="background-color: #f8f8f8; border-radius: 4px; border: 1px solid rgb(248, 248, 248); box-sizing: border-box; color: #c7254e; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;"><code class="hljs shell" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; box-sizing: border-box; color: #333333; display: block; font-family: "{{ .Get \"mono_font\" }}", monospace; font-size: inherit; overflow-x: auto; padding: 0.5em;"><span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># A tibble: 83 × 17</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> ind tissue disease_state group treatment sample_id patient_id</span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <fct> <chr> <chr> <chr> <chr> <chr> <chr> </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 1 GSM5188381 blood TNBC patient Pre-treat… anti-PDL… Pre_P001… P001 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 2 GSM5188414 blood TNBC patient Post-trea… anti-PDL… Post_P00… P001 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 3 GSM5188376 blood TNBC patient Pre-treat… anti-PDL… Pre_P002… P002 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 4 GSM5188377 chest_wall TNBC patient Pre-treat… anti-PDL… Pre_P002… P002 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 5 GSM5188410 blood TNBC patient Post-trea… anti-PDL… Post_P00… P002 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 6 GSM5188411 chest_wall TNBC patient Post-trea… anti-PDL… Post_P00… P002 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 7 GSM5188437 blood TNBC patient Progressi… anti-PDL… Prog_P00… P002 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 8 GSM5188401 chest_wall TNBC patient Post-trea… Chemo Post_P00… P003 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 9 GSM5585280 blood TNBC patient Pre-treat… Anti-PD-… Pre_P004… P004 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 10 GSM5585281 chest_wall TNBC patient Pre-treat… Anti-PD-… Pre_P004… P004 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 11 GSM5585282 blood TNBC patient Post-trea… Anti-PD-… Post_P00… P004 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 12 GSM5585283 blood TNBC patient Progressi… Anti-PD-… Prog_P00… P004 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 13 GSM5188398 blood TNBC patient Pre-treat… anti-PDL… Pre_P005… P005 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 14 GSM5188399 liver TNBC patient Pre-treat… anti-PDL… Pre_P005… P005 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 15 GSM5188430 blood TNBC patient Post-trea… anti-PDL… Post_P00… P005 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 16 GSM5188431 liver TNBC patient Post-trea… anti-PDL… Post_P00… P005 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 17 GSM5188367 blood TNBC patient Pre-treat… anti-PDL… Pre_P007… P007 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 18 GSM5188368 lymph_node TNBC patient Pre-treat… anti-PDL… Pre_P007… P007 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 19 GSM5188402 blood TNBC patient Post-trea… anti-PDL… Post_P00… P007 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> 20 GSM5188433 blood TNBC patient Progressi… anti-PDL… Prog_P00… P007 </span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># … with 63 more rows, and 10 more variables:</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># diameter_of_biopsied_lesion_mm <chr>, size_of_target_lesion_som_mm <chr>,</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># age <chr>, stage_tnm <chr>, pd_l1 <chr>, ti_ls_percent <chr>,</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># relative_change_of_target_lesions_8_weeks_after_treatment_initiation_vs_pre_treatment <chr>,</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># relative_change_of_biopsied_lesions_8_weeks_after_treatment_initiation_vs_pre_treatment <chr>,</span></span>
<span class="hljs-meta" style="box-sizing: border-box; color: #999999; font-weight: bold;">#</span><span class="bash" style="box-sizing: border-box;">> <span class="hljs-comment" style="box-sizing: border-box; color: #999988; font-style: italic;"># clinical_efficacy_number <chr>, time_to_progression_months <chr></span></span></code></pre><p style="box-sizing: border-box; margin: 0px 0px 1rem;">That’s how much it takes to get the sample level metadata from a public dataset. It is hard to fully automate and one has to go to GEO and supplementary tables, and wrangle the data to a desired format. If you ask me, I will tell you this is the real-life bioinformatics.</p><p style="box-sizing: border-box; margin: 0px 0px 1rem;">Happy BioinFORMATics</p></div>tommyhttp://www.blogger.com/profile/04023008941349107659noreply@blogger.com2