<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tips | DEZERAECOX</title><link>https://dezeraecox.com/tags/tips/</link><atom:link href="https://dezeraecox.com/tags/tips/index.xml" rel="self" type="application/rss+xml"/><description>Tips</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sun, 03 Oct 2021 14:28:49 +0000</lastBuildDate><image><url>https://dezeraecox.com/media/icon_hu_8ed84a6f288a564d.png</url><title>Tips</title><link>https://dezeraecox.com/tags/tips/</link></image><item><title>Toolbox talk: Lights, Camera, Action!</title><link>https://dezeraecox.com/toolbox-talk-lights-camera-action/</link><pubDate>Sun, 03 Oct 2021 14:28:49 +0000</pubDate><guid>https://dezeraecox.com/toolbox-talk-lights-camera-action/</guid><description>&lt;h1 id="toolbox-talk-lights-camera-action"&gt;Toolbox talk: Lights, Camera, Action!&lt;/h1&gt;
&lt;p&gt;It is more important than ever for scientists to be concise, engaging and easy to understand. Most importantly, we need to diversify our means of communication to meet the audience where they live. In the age of TikToks and Reels, it seems our digital lives increasingly revolve around easily digestible visual media. So: time to go video! I realise, as I am writing this, the irony of that statement&amp;hellip; But, as part of a recent communication course, I produced my first scientific videos for a general audience - and I think it should be part of every scientist&amp;rsquo;s toolbox! If you&amp;rsquo;re keen to see the finished product, head straight to the
. Otherwise, if you’d like to hear more about the tools, tips and tricks I picked up along the way, read on! Who knows, maybe I&amp;rsquo;ll even make a video version.. 😉&lt;/p&gt;
&lt;h2 id="the-art-of-science-communication-a-little-learning-a-lot-of-fun"&gt;The Art of Science Communication: A little learning, a lot of fun!&lt;/h2&gt;
&lt;p&gt;Last year I tackled my first official professional development course:
. Hosted by the ASBMB, this course covers basic communication skills for scientists looking to increase their public and professional impact. Thanks to a well-paced course, dedicated instructors and a diverse cohort of participants, this course was not only hugely informative but also a lot of fun!&lt;/p&gt;
&lt;p&gt;The main goal, achieved over seven weeks, was to craft our own individual message which would introduce a general audience to our primary research topic. From the very start, we were thrust into the deep end as the first week required us to record a short video detailing our research for the cohort. This was something entirely new to me, and at first watching yourself on screen is incredibly daunting! But after the initial &lt;em&gt;icky-ness&lt;/em&gt; wears off, these practice videos turned out to be a great resource for identifying areas of opportunity in our speaking practice. After establishing this ‘baseline’, the instructors set to work helping us take the bones of that video and craft the message, increase engagement, remove jargon, and improve production. Together, these iterative exercises left each of us with a developed skill set, covering everything from scientific presentations to a non-expert elevator pitch, &lt;em&gt;and&lt;/em&gt; a video product showcasing these skills.&lt;/p&gt;
&lt;p&gt;Scripting, recording, editing and posting a video was something I had never done, much less for science communication purposes. So, just in case you (like me) missed that whole &lt;em&gt;YouTube vloggers&lt;/em&gt; phase, I thought I would cover here some of the hardware, software and general lessons that I learned along the way to creating my final video product.&lt;/p&gt;
&lt;h2 id="lights-setting-up-for-success-means-starting-with-software"&gt;Lights: Setting up for success means starting with software&lt;/h2&gt;
&lt;p&gt;While you certainly don&amp;rsquo;t need any fancy software to shoot videos (just take a look at everyday people shooting Reels) a handful of (free!) software programs can really make a difference for professional content. A few tools that I found useful were a teleprompter-style recording app, and a video editing suite.&lt;/p&gt;
&lt;p&gt;When it comes to talking about science, many academics are used to giving presentations where some multimedia slides guide the content you deliver, and there is a conversational meandering that actually enhances talks like this. When you&amp;rsquo;re recording, however, maintaining eye contact with the camera is much trickier. This is where a good teleprompter app comes in - it allows you to take these cues in the form of text without breaking your connection to the audience through the screen. There are a bunch of free versions depending on your operating system - I used my iPhone for recording, so I found
on the App store. Features to look out for include the ability to change the text size and speed, and the option to export without a watermark.&lt;/p&gt;
&lt;p&gt;For video editing, again this choice is OS-dependent. iMovie on macOS seems to be fantastic. On PC, I had reasonable success with
, but there are quite a few others gaining traction too. Most will have the same functionality - but, importantly, I would suggest looking for something that has a decent online community and plenty of resources for beginners. As novice filmmakers, it can be hard to know where to start otherwise!&lt;/p&gt;
&lt;h2 id="camera-a-little-investment-goes-a-long-way"&gt;Camera: A little investment goes a long way&lt;/h2&gt;
&lt;p&gt;As with software, you certainly do NOT need any expensive or fancy equipment. I shot all my videos on my phone, and the quality was sufficient. For a small investment though (~$50 AUD) you can get a great quality boost from two simple tools; a lapel microphone that connects to your recording device, and a tripod.&lt;/p&gt;
&lt;p&gt;Lapel microphones help improve the sound quality, particularly as captured by a phone - and there are lots of cheap options available. The
has a built-in clip for attaching to clothing, allowing it to be positioned low on the chest out of frame during recording. These are particularly great for people living in places of high background noise (hello friendly neighbourhood leaf-blower that seemed to always be running when I wanted to record!), as they allow you to better isolate speech from contaminating noises during editing.&lt;/p&gt;
&lt;p&gt;A tripod might seem like a large ask for a simple scicomm video. But hear me out - it has a few benefits! 1) It allows you to easily and stably position your recording device to free your hands entirely, letting you fall into a natural speaking rhythm with optional props, and 2) you can easily use a teleprompter app. Again, another excuse for all you online shopaholics to bust out your best bargain hunting skills!&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2021/09/studio.jpg"&gt;
&lt;/figure&gt;
&lt;p&gt;The only other equipment I used when recording was already lying around the house - a black sheet as a backdrop, and a floor lamp to help with even illumination of my glasses. For any fellow bespectacled scicommers out there,
are some great tips on getting rid of the annoying mirror effect light on glasses can have when recording.&lt;/p&gt;
&lt;h2 id="action-time-to-talk-the-talk"&gt;Action: Time to talk the talk!&lt;/h2&gt;
&lt;p&gt;Now for the best (and most important) bit - the doing! All the great equipment in the world does nothing until you have a great science story to tell.&lt;/p&gt;
&lt;p&gt;Before thinking about what you want to talk about, start by reflecting a little on the audience that you want to engage. Audiences composed of fellow scientists outside your field will of course require a very different approach to a collection of non-experts. Likewise, a room full of adults requires a different approach to a room full of children. It&amp;rsquo;s important to hit the right contextual notes, and this rings especially true in video format where people&amp;rsquo;s attention is so easily lost scrolling to the next video in line.&lt;/p&gt;
&lt;p&gt;Once you know your audience, it&amp;rsquo;s time to draft your story. Unlike normal scientific presentations, I recommend writing a script here. This lets you make sure you have a reproducible story that can be honed, helping you to fit the time limit and minimise the number of recording attempts. Yes - attempts with an &lt;em&gt;s&lt;/em&gt; - there will be many. But that&amp;rsquo;s ok, it&amp;rsquo;s just part of the process!&lt;/p&gt;
&lt;p&gt;Some things to think about when honing your story:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Be critical of how engaging your storywill be for your audience&lt;/em&gt; - we all love our science emplicitly, but don&amp;rsquo;t forget to let your audience know why &lt;em&gt;they&lt;/em&gt; should love your science too. What is the important problem or question? What makes your work unique?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Be cautious of spewing facts, figures or findings&lt;/em&gt; - instead, take the audience on a journey with you, just like a good book they can&amp;rsquo;t put down. Have you woven a narrative? What are the challenges this research faces, how have you overcome these?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Be creative in your description of complex topics&lt;/em&gt;- ditch the fancy words in favour of metaphors. A good metaphor can take some time to work through, but don&amp;rsquo;t underestimate their power in helping your audience grasp complicated concepts. Jargon is a huge no-no, even for scientists outside your field.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ok, you have a story written out. Now, it&amp;rsquo;s time to set your scene. For example, I used a plain black backdrop, with some soft glasses-friendly lighting, and the tripod, phone and microphone about 1 m away. Then it&amp;rsquo;s time to record! This is the part where you really just have to feel it. Feel the right pace (conversational, not rushing, with nice pauses), feel your body in space (remember you are a person, not a robot, and if you&amp;rsquo;re anything like me you talk with your hands, like, a lot), and feel the excitement of your story (even on the fifth or sixth time you read it through). To start, I would suggest reading through the whole story on camera from start to finish - ignoring any missteps in favour of practising the whole story. From there, record a few more tries until you are happy. Depending on the video format (and if you plan to have cut sections along the way or a single-take read) you can even piece together sections from different versions that you like the most - this is where editing comes in!&lt;/p&gt;
&lt;h2 id="movie-magic-remix-your-way-to-the-red-carpet"&gt;Movie magic: remix your way to the red carpet.&lt;/h2&gt;
&lt;p&gt;Once you have recorded a few versions, this is where the movie magic happens. Head over to your editor, where you will be able to add transitions (fade-in, fade-out) music, images, sound effects, remove background noise, crop and combine different videos to get a final product you are proud of. In some cases, you might even want to bring in some &lt;strong&gt;
&lt;/strong&gt; - a little out of my league so far but something I am keen to try!&lt;/p&gt;
&lt;p&gt;I decided to add a lead-in image from
(a fantastic collection of images that are free to use with attribution) and in one case I recorded a PowerPoint slideshow that also had a black background, timed to match my finished video. I then overlayed the PowerPoint recording onto my video content, and viola, animated video! There are lots of neat ways to engage your audience beyond a talking head on the screen, so be sure to be creative and take full advantage of this aspect of the medium.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2021/09/openshotpowerpoint-1.png"&gt;
&lt;/figure&gt;
&lt;p&gt;With the complete version, the last step is sharing it with the world. This is actually quite easy to do via youtube - simply sign up for an account (if you don&amp;rsquo;t have one already) then head to the &amp;ldquo;YouTube Studio&amp;rdquo; section where you will find the &amp;ldquo;Content&amp;rdquo; tab.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2021/09/youtube_create.png"&gt;
&lt;/figure&gt;
&lt;p&gt;Uploading a video is as simple as selecting the &amp;ldquo;Create&amp;rdquo; icon, and following the prompts to upload your masterpiece. There are a few options, like whether or not your video should be indexed with the searchable youtube content, that you can toggle to suit your needs. Don&amp;rsquo;t forget a catchy title if you want your content to be found!&lt;/p&gt;
&lt;h2 id="and-thats-a-wrap"&gt;And that&amp;rsquo;s a wrap!&lt;/h2&gt;
&lt;p&gt;That&amp;rsquo;s it, you are officially a scicomm superstar! While producing video content can seem a daunting task, once you get past the weirdness of seeing yourself recorded it really is a great way to share your science. I am super proud of the content I produced during the course - with a few simple tools and a couple of hours work, for the first time I feel confident to share my passion for science in a whole new context. So, without further ado, here are the videos I created!&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;Party tunes: A new phase in the hunt for happy brain cells&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;Turning brain cells into origami masters&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;That&amp;rsquo;s all for now. Hopefully, I&amp;rsquo;ve inspired you to capture your story on camera and share it with the world! Have you made your own scicomm video? Do you have a favourite editing software? Head over to the
, or let me know on
!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Image credits:
via unsplash&lt;/p&gt;</description></item><item><title>Toolbox Talk: Notion</title><link>https://dezeraecox.com/toolbox-talk-notion/</link><pubDate>Sat, 04 Sep 2021 21:23:03 +0000</pubDate><guid>https://dezeraecox.com/toolbox-talk-notion/</guid><description>&lt;h1 id="toolbox-talk-notion"&gt;Toolbox Talk: Notion&lt;/h1&gt;
&lt;p&gt;Notion is the type of software that, if you know, you know. After hitting the scene only a few years ago, it has amassed a somewhat cult-like following among personal productivity buffs. For me, Notion is a love affair that started during Melbourne’s extended COVID lockdown in 2020. During this profoundly confronting time, where life seemed beyond control, I found solace in taking control of my tools and systems. A whole new consolidated and streamlined workflow emerged with Notion at its centre - and wow, do I have some &lt;em&gt;thoughts!&lt;/em&gt; If you came purely for the Notion nitty-gritty, feel free to skip to the Getting Started section. Otherwise, for Notion newbies, here are a few of my feelings about digital tools for science and how Notion fits the bill for me.&lt;/p&gt;
&lt;h2 id="need-a-notion-about-notion"&gt;Need a notion about Notion?&lt;/h2&gt;
&lt;p&gt;First and foremost, Notion is a blank canvas that you can make and mould into (almost) anything! In fact, its versatility is often something sceptics point to as a reason to steer clear. But really, this is where the &lt;em&gt;magic&lt;/em&gt; happens. Unfortunately, it also makes Notion incredibly hard to describe! So, here goes.&lt;/p&gt;
&lt;p&gt;First: &lt;strong&gt;think spreadsheets on steroids&lt;/strong&gt;. At its core, Notion provides an architecture for building relational databases which are like spreadsheets that can be linked. But, **more than that, each entry itself is a &amp;lsquo;page&amp;rsquo; that can contain another database. Which brings me to&amp;hellip; Second: &lt;strong&gt;think lego&lt;/strong&gt;! The second aspect of Notion&amp;rsquo;s design strategy is that all content is considered individual Blocks (even databases). This means that you can stack and link different types of content (from normal text, quotes, callouts, bulleted and numbered lists to more complex structures like embedded webpages, code blocks, equations, date reminders, embedded google drive files, and even databases). Layered on top of this is the ability to display databases as tables, boards, galleries or lists, plus filtering and sorting that makes sure you can see the information you need in the context you need it. Last but not least is the aesthetic! With a simple palette for labelling metadata, headings and text, coupled with optional icons and header images it is super simple to make pretty pages&lt;/p&gt;
&lt;p&gt;What we arrive at is a highly versatile and customisable ecosystem that you can use to build and personalise any architecture you need, from a
to a
to a workplace wiki to a
&amp;hellip; The possibilities are endless! And for people like me, it presents the opportunity to unify all the disparate digital tools that we had cobbled together to take care of these functions in the past, like Evernote and &lt;strong&gt;
&lt;/strong&gt;. In this way, Notion for me embodies the &lt;strong&gt;
&lt;/strong&gt; principle of removing friction, by letting me focus on the work without context switching.&lt;/p&gt;
&lt;h2 id="a-simple-sneak-peek"&gt;A simple sneak peek&lt;/h2&gt;
&lt;p&gt;In honesty, Notion is sometimes a tool you need to &lt;em&gt;see&lt;/em&gt; to understand. So, here is a quick toy task management example. I&amp;rsquo;ve even provided this page as an
template in case you want to try it out!&lt;/p&gt;
&lt;p&gt;To start, databases can look just like a regular spreadsheet, but can also be displayed as a board ( &lt;em&gt;think&lt;/em&gt;: Trello), list, gallery, timeline or calendar. Here is an example of two databases: &amp;ldquo;My First Database&amp;rdquo; viewed as a gallery, and &amp;ldquo;My Second Database&amp;rdquo; viewed as a table, placed on a single page titled &amp;ldquo;Example Relational Databases&amp;rdquo;. Each column of the table view shows some of the metadata for the individual elements. There are lots of types of metadata you can add, including dates, categories from a dropdown, checkboxes, formulas which calculate a property based on other metadata columns, urls, emails, attachments - so many choices!&lt;/p&gt;
&lt;p&gt;Most importantly, we can link these two databases using a relational property, such that we assign Task 1 as associated with Project A. This opens up lots of possibilities, including new formula options called &amp;lsquo;rollups&amp;rsquo; which let you see how many tasks for a project are complete.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2021/09/notion_example_0.png"&gt;
&lt;/figure&gt;
&lt;p&gt;Now, to this point most of these features you could fandangle out of a spreadsheet if you tried hard enough. But here comes the magic. Each of the entries in the database are &lt;em&gt;themselves&lt;/em&gt; pages, which can contain any of the rich content blocks I described above, including more databases. It can also include filtered views of a database so, within a single project, you can overview associated elements.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2021/09/notion_example_1.png"&gt;
&lt;/figure&gt;
&lt;p&gt;Last but not least, one of my favourite time-saving functions - templates! You can add templates to any database, such that when you add a new entry to the database it can be prefilled with page content. This is a super-efficient way to capture essential and consistent information for each new entry beyond the metadata options. You can even pre-filter included databases, such that the filtered view automatically includes only related sub-entries.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2021/09/notion_example_2.png"&gt;
&lt;/figure&gt;
&lt;h2 id="ok-but-what-about-notion-for-science"&gt;Ok&amp;hellip; But what about Notion for science?&lt;/h2&gt;
&lt;p&gt;In my 10 years as a scientist, I was not once introduced to the idea of &amp;ldquo;project management&amp;rdquo;, much less software fit for the task. It was mostly something that we were inherently supposed to &lt;em&gt;do&lt;/em&gt;; keeping track of the overarching aim of our individual project, tracking goals and milestones and tasks. It wasn&amp;rsquo;t until my first post-doc, when suddenly the number of projects I was involved in exploded, that I found myself reaching for help in the form of digital project management tools.&lt;/p&gt;
&lt;p&gt;In contrast, Electronic Lab Notebooks (ELNs) are a digital platform that is slowly permeating all levels of science. The available options seem to be multiplying at a steady rate, and institutional uptake is slowly increasing. Many of the front runner ELNs have connectivity covered, being accessible via browser or app across devices, and provide documentation processes, like versioning and witnessing, in line with funding body and research institution requirements. However, all of the many platforms I have tried suffer from similar issues: (i) they have quite a rigid structure for what constitutes an &amp;ldquo;experiment&amp;rdquo;, (ii) data storage size is limited, (iii) structured similarly to a paper notebook which treats experiments as a single entity, not just one of a number of specialised outputs researchers manage and produce, (iv) have no mechanism to track what stage in the experimental process that experiment is in (idea, design, data gathering, data analysis, summary and storage) and (v) are somewhat of an isolated island.&lt;/p&gt;
&lt;p&gt;Needless to say, Notion has now alleviated most of these pain points. A few of the &lt;strong&gt;best bits&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It works where you do - in an app, browser, mobile, PC, Mac… Wherever you need to be, with synced content meaning everything is always accessible when and where you need it&lt;/li&gt;
&lt;li&gt;It is less rigid than Windows file structures, taking full advantage of the interlinked nature of what we do as scientists, building a web of research&lt;/li&gt;
&lt;li&gt;Allows you to automate some of the ‘boring’ (although I never find them boring!) organisational bits through templating&lt;/li&gt;
&lt;li&gt;Functional web clipper to capture resources and info while you browse&lt;/li&gt;
&lt;li&gt;Good selection of commenting, collaboration and automatic versioning features&lt;/li&gt;
&lt;li&gt;(Almost) infinite customisability enables you to work in a way that works for you&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This being said, there are some &lt;strong&gt;important caveats&lt;/strong&gt; to bear in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Funding bodies sometimes mandate data storage conditions, including the global location of servers for digital data. Notion may not always satisfy this criteria.&lt;/li&gt;
&lt;li&gt;Similarly, Notion should not be used for confidential information such as clinical data&lt;/li&gt;
&lt;li&gt;Due to the unique nature of Notion&amp;rsquo;s architecture, there is a limited ability to transfer to alternative systems - however there are substantial backup options to get your data out of Notion if you ever need to&lt;/li&gt;
&lt;li&gt;Small number of direct integrations with Google products (like calendar) has been limiting, although the fledgling API will hopefully help this to thrive in the near future.&lt;/li&gt;
&lt;li&gt;Some functionality has been slow to materialise - like the ability to natively add symbols outside equations, column-wise formatting within other blocks, and native drawing/writing/pdf annotation (I stick with the Notes app on my iPad, where the export-as-image and copy-as-text functions are my fired)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For me, none of these things were deal-breakers. But certainly, Notion is not fit for every purpose! Buyer beware, as they say.&lt;/p&gt;
&lt;h2 id="my-notion-nitty-gritty"&gt;My Notion Nitty Gritty&lt;/h2&gt;
&lt;p&gt;For my workspace, I started with the broad buckets of Science, Coding, Communication and Personal. Parallel to this are my Projects, Milestones, Tasks and Resources databases ( &lt;em&gt;think&lt;/em&gt;: P.A.R.A.), where individual items are linked to their overarching bucket. From here, filtered views of each of the Project, Milestone and Resource databases form the basis of my daily work ecosystem. I can open a Project page and see each of the Milestones on the go for that project (manuscripts, experiments, funding applications), Resources pertaining to that project (like articles, funding, and ideas), and Tasks for that project (of course sorted by priority and due date). I treat all individual research outputs as Milestones; whether that be a single experiment, a manuscript I&amp;rsquo;m writing, a presentation I&amp;rsquo;m giving, a funding application I&amp;rsquo;m preparing, or a seminar I&amp;rsquo;ve attended. As well as linked databases, you can also &amp;lsquo;mention&amp;rsquo; pages or people inline using the &amp;lsquo;@&amp;rsquo; function (almost like a hyperlink) that helps to link together pages to create your very own web of knowledge.&lt;/p&gt;
&lt;p&gt;To help with easy access and focusing, I also have a Dashboard page, with some of these @ links to my current priority projects, milestones and tasks - plus a filtered and sorted linked database with some friendly reminders to focus my day!&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2021/08/image832.png"&gt;
&lt;/figure&gt;
&lt;p&gt;Some of my other favourite Science databases include my Virtual Lab Book (a filtered version of my Milestones database, which has separate properties for Experiments as they move from conception to data gathering to analysis to writeup), my Reading List (captured as a filtered database from my Resources), and my CV database with which I can filter to produce tailored versions of my CV for individual applications. I have templates set up for different types of Milestones, making it easy to create a new Experiment versus a Manuscript. On the personal front, a sneaky favourite of mine is my recipes database - drool worthy organisation if I do say so myself!&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2021/08/g10622.png"&gt;
&lt;/figure&gt;
&lt;h2 id="tips-for-getting-started"&gt;Tips for getting started&lt;/h2&gt;
&lt;p&gt;If you made it this far, I&amp;rsquo;m sure you&amp;rsquo;re thinking &lt;em&gt;&amp;ldquo;Ok - you sold me. Now, where do I start?&amp;rdquo;&lt;/em&gt;. For many people, staring at the blank screen of a fresh Notion workspace will be quite daunting. If you’ve only ever used out-of-the-box systems, the requirement to create your own from scratch can be overwhelming! However, I truly believe this is where the magic happens. A few tips:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Start with stepping back&lt;/em&gt; - the first thing I recommend after installing Notion and creating your first workspace is to &lt;em&gt;close the computer&lt;/em&gt;. Yup, put it away and find yourself a pen and paper. First, set to thinking about the broad buckets you want to encapsulate within the workspace. For this process, I found an adaptation of the
. method of project management was a great place to start.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Remember to be flexible&lt;/em&gt; - your initial workspace should provide some guiding principles to start with, but should be fluid over time as you learn what works, what could be better and, most importantly, what you need. This is the true power of Notion - to grow with you.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Prepare for growing pains&lt;/em&gt; - changing to a new system (especially if you are planning a whole-life overhaul like I did!) will invariably present some challenges. But, it will be worth it. Stick with it, and pay attention to the pain points at what you need to adapt.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Face the future -&lt;/em&gt; with new systems, the temptation to retrofit your past outputs can be seductive. But (!) you should resist this temptation. Focus instead on ingesting only those things that you currently need into Notion, and leave the rest as the &lt;em&gt;BN&lt;/em&gt; (before Notion) archive. You will know where to find things (hopefully) by sticking to the BN and AN line!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you have decided what your Notion might look like from a top-down point of view, it&amp;rsquo;s time to set to work creating the databases and entries that will comprise your workspace. If you&amp;rsquo;re still struggling with the basics, there are many great tutorials (like
from the Notion team) and you can find plenty of inspiration, like
and
and
.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;Wow, what a marathon! In my defence, I warned you I had plenty of feelings when it comes to Notion! My hope is that this post serves as a basic run-through of how I use Notion on a daily basis to capture my research process and enhance my productivity by providing a platform designed and curated by me. Beyond the infrastructure that I provide for myself in Notion, there are a host of strategies I use to link outputs across various other platforms, such that Notion serves as my catch-all and launch point, but I can leave more specialised operations like task management and writing code to specific apps that were tailor-made for those purposes.&lt;/p&gt;
&lt;p&gt;In short, Notion may be the broadest tool in my research organisation toolbox, but it is still only a &lt;em&gt;tool&lt;/em&gt; that helps bring together other essential tools in the box. You could almost think about it as the toolbelt which keeps all my other tools handy!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;That&amp;rsquo;s all for now. As organisation is intensely personal (what works for you will be very different to what I like and need!), I don&amp;rsquo;t think it is especially useful to go through my workspace in-depth here. If you&amp;rsquo;re keen to chat details, make sure to drop me a note on &lt;strong&gt;
&lt;/strong&gt; or on the
page!&lt;/p&gt;
&lt;p&gt;Happy organising 📚&lt;/p&gt;
&lt;p&gt;Image credits:
via unplash&lt;/p&gt;</description></item><item><title>Learning to code: it's as easy and as complex as that.</title><link>https://dezeraecox.com/learning-to-code-spaghetti/</link><pubDate>Sun, 05 Jul 2020 15:12:56 +0000</pubDate><guid>https://dezeraecox.com/learning-to-code-spaghetti/</guid><description>&lt;h1 id="learning-to-code-its-as-easy-and-as-complex-as-that"&gt;Learning to code: it&amp;rsquo;s as easy and as complex as that.&lt;/h1&gt;
&lt;p&gt;Many life scientists have used their time under pandemic-induced lockdown to learn their first programming language. Yay! Coding has many many advantages (reproducibility, more complex analyses, reusability, time-saving) that I have espoused all too many times before.&lt;/p&gt;
&lt;p&gt;Many people start with a tutorial or two, then jump straight in and analyse a dataset. They get a plot, maybe a few statistics and voila! They are now scientists who can code.&lt;/p&gt;
&lt;p&gt;Kinda.&lt;/p&gt;
&lt;p&gt;See, the thing is there is more (much more) to implementing programmatic workflows in a biological context. Unfortunately, these are the skills that intro-to-programming courses often fail to teach you (or sometimes even mention) - but without them, adding scripts to your workflow can often make your work &lt;em&gt;less&lt;/em&gt; reproducible, not more. For the sake of the argument, lets pick one.&lt;/p&gt;
&lt;p&gt;Version control.&lt;/p&gt;
&lt;p&gt;Imagine a bowl of spaghetti (lots of lines of code), which you admire briefly before throwing at a canvas (your interpreter). You create a beautiful work of art (your plot), and stand back to admire your handiwork. Maybe you show it to a few friends, and they are super impressed. (Awesome!). And then they ask - how did you do it? Not just the throwing motion, or the rough distance between the bowl and the canvas. They want to know the precise location of every single strand of spaghetti in the bowl before you threw it at the canvas. They want to know the recipe you used for the sauce, down to the precise number of grams of oregano.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2020/07/spaghetti-1.png"&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2020/07/artwork-1.png"&gt;
&lt;/figure&gt;
&lt;p&gt;Now, of course, we aren&amp;rsquo;t actually talking about a bowl of spaghetti - we are talking about your code. So - &lt;em&gt;of course&lt;/em&gt; - you can simply show them the script! Huzzah! The precise instructions that enabled you to make that very specific plot. But here&amp;rsquo;s the kicker. The code is not static. In fact, chances are that you poured over it for hours (maybe days) adjusting, tweaking, changing, testing and rerunning - all to get the glorious, awe-inspiring plot at the end.&lt;/p&gt;
&lt;p&gt;By this stage, you&amp;rsquo;ve probably made over 100 spaghetti-splattered-spectacles (plots) and your house is starting to smell like an Italian Pizza joint. If I asked you to produce the exact recipe, down to the very position of each strand of spaghetti, for plot number 47 - could you do it?&lt;/p&gt;
&lt;p&gt;My guess is probably no.&lt;/p&gt;
&lt;p&gt;Conducting experiments is at the heart of science. However, without the essential extracurricular activities like maintaining backups, organising your results files and optimising project management systems, you wouldn&amp;rsquo;t last very long in academic research. The same is true of coding. Learning to write a functioning script is just the tip of the iceberg when it comes to implementing reproducible computing workflows in biology.&lt;/p&gt;
&lt;p&gt;So, with this in mind, what are those all important skills you ask? Well, luckily, far more experienced scholars than I have written on this topic and provided guides (like
and
) for those starting out in the computational space. These are highly applicable to biologists learning to code, and I encourage you to check them out before you stray too far down the spaghetti-on-the-wall path (like I did). As with any system, it is easiest to implement new routines before you have become to set in the old ones! At the very least, here are a few things to consider:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
, including Github/GitLab/BitBucket&lt;/li&gt;
&lt;li&gt;
, including efficient folder layouts&lt;/li&gt;
&lt;li&gt;
and docker containers&lt;/li&gt;
&lt;li&gt;
practices&lt;/li&gt;
&lt;li&gt;
, including repositories and citing software you use&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more, make sure you check out the resources below.&lt;/p&gt;
&lt;p&gt;Oh, and one last thing.&lt;/p&gt;
&lt;p&gt;Unfortunately, this type of organisational work is not typically measured as a key performance outcome for biologists. Your number of git repositories or test coverage for an analysis suite is unlikely to come up in an award nomination or promotion application. And yet, it is entirely crucial as we move toward bigger and more complicated data and analyses - and so I encourage you to take the time to learn anyway. Maybe one day it will be recognised as essential work by the powers that be - but until then, at the very least, it remains essential for anyone wanting to do good &lt;em&gt;reproducible&lt;/em&gt; science. And who doesn&amp;rsquo;t want that?&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="final-thoughts"&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;So you want to learn to code? Yes - do it, 100%. I honestly couldn&amp;rsquo;t recommend or encourage it more. But &lt;em&gt;please&lt;/em&gt; do so &lt;strong&gt;mindfully&lt;/strong&gt;. If you want to have the best possible chance of integrating this wonderful tool into your scientific ecosystem in the long-term, you have to lay solid foundations and develop sustainable practice/methods.&lt;/p&gt;
&lt;p&gt;Have you used any of these techniques as a budding bench-to-bytes biologist? Find me on 
 or head over to the 
 to tell me more!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="resources"&gt;Resources:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Image credits: Tomwsulcer via
&amp;amp; olamishchenko via
&lt;/p&gt;</description></item><item><title>Book Review: If I Understood You, Would I Have This Look on My Face?</title><link>https://dezeraecox.com/book-review-if-i-understood-you/</link><pubDate>Sat, 13 Jun 2020 03:57:13 +0000</pubDate><guid>https://dezeraecox.com/book-review-if-i-understood-you/</guid><description>&lt;p&gt;I know, I know, book reviews are so seventh grade. But I am making a conscious effort not only to read more, but also to actively engage with the media I consume. So, I thought writing down a few tid bits about each of the books I conquer might help me stay accountable and promote some great popular science literature that I think everyone should get around!&lt;/p&gt;
&lt;h2 id="down-with-the-details"&gt;Down with the details:&lt;/h2&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2020/06/if_I_understood.png"&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Title:&lt;/strong&gt; If I understood you, would I have this look on my face? My Adventures in the Art and Science of Relating and Communicating&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; Alan Alda&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Theme:&lt;/strong&gt; Science Communication&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Target audience:&lt;/strong&gt; Good for everyone, Great for scientists&lt;/p&gt;
&lt;h3 id="overall-thoughts"&gt;&lt;strong&gt;Overall thoughts:&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A vibrant and engaging read that was over in a flash - but not before challenging my view of what it means to tell a story and the importance of communication in everything we do (not just science!)&lt;/li&gt;
&lt;li&gt;Alda imparts many gems of wisdom of value for anyone who wants to communicate better - whether you are a scientist sharing your latest research or a partner trying to find a deeper connection with a loved one. In fact, one of the common threads Alda weaves is that in order to engage in effective communication, you must find common ground with your audience. Effective communication is a team effort.&lt;/li&gt;
&lt;li&gt;These insights were borne from years of comedic brilliance coupled with dedicated cultivation of the scientific literature investigating method, efficiency and effectiveness of communication. Far from being dry, the narrative glistens with Alda&amp;rsquo;s characteristic warmth and conversational style making for a truly pleasurable read.&lt;/li&gt;
&lt;li&gt;Some of my favourite tips and tricks were &amp;ldquo;The three rules of three&amp;rdquo;. To paraphrase:
&lt;ul&gt;
&lt;li&gt;When talking to an audience, try to make no more than three points - any more than this are unlikely to stick.&lt;/li&gt;
&lt;li&gt;Try to explain difficult ideas in three different ways - provide your audience with the means to triangulate their way to an understanding, where they can use the conceptual description that most resonates with them&lt;/li&gt;
&lt;li&gt;Find a subtle way to make your &amp;rsquo;take-home message&amp;rsquo; three times - like a callback in comedy, use this to prompt retention and tie your story together&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Overall, this was a fantastic new addition to my fledgeling extracurricular reading activities, and one I cannot recommend enough.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="some-of-the-best-bits"&gt;&lt;em&gt;Some of the best bits:&lt;/em&gt;*&lt;/h3&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;… pretty much everybody misunderstands everybody else. Maybe not all the time, and not totally, but just enough to mess everything up.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;The person who&amp;rsquo;s communicating something is responsible for how well the other person follows&lt;/p&gt;
&lt;p&gt;- pg 30&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;… real conversation can&amp;rsquo;t happen if listening is just my waiting for you to finish talking&lt;/p&gt;
&lt;p&gt;- pg 10&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Would IQ be the most important factor, or was there some other deciding factor for a team&amp;rsquo;s success? … average intelligence of a group could not significantly predict the groups performance. - pg 56&lt;/p&gt;
&lt;p&gt;- pg 58&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Women&amp;rsquo;s social skills lead in part to better decision making overall and … gender diversity in particular facilitates creatvity&lt;/p&gt;
&lt;p&gt;- pg 58&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;… assuming students are totally responsible for their own motivation … can lead researchers to blame group members for their lack of motivation.&lt;/p&gt;
&lt;p&gt;- pg 59&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Collaborators in a lab can listen to one another&amp;rsquo;s ideas, no matter how odd they are, and add constructively to them. … There is a lot of blocking that takes place in science, but Yes And frees ideas to grow&lt;/p&gt;
&lt;p&gt;- pg 62&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
\[When communicating\]&lt;p&gt; knowing what they are ready to hear is critical, and coming in too early or too late &lt;/p&gt;
\[in the story\]&lt;p&gt; can be confusing&lt;/p&gt;
&lt;p&gt;- pg 64&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;While leadership is important, just as important is how leadership is communicated&lt;/p&gt;
&lt;p&gt;- pg 68&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Good communication with the person you&amp;rsquo;re closest to may be the hardest challenge of them all&lt;/p&gt;
&lt;p&gt;- pg 77&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;I value the opinions of people I disagree with. It&amp;rsquo;s the yin and yang of understanding.&lt;/p&gt;
&lt;p&gt;- pg 111&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;The stereotypical view of empathy is that it makes you soft. On the contrary, when you have to be tough, empathy can be a useful tool.&lt;/p&gt;
&lt;p&gt;- pg 125&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;The reader expects thoughts to be laid out in a certain order, and that effects how the reader reacts.&lt;/p&gt;
&lt;p&gt;- pg 135&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;A couple of emotional words can often turn a recital of the facts into something more engaging that will stick in the mind&lt;/p&gt;
&lt;p&gt;- pg 151&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Emotion is not a broad-brush amplifier of all things … It doesn&amp;rsquo;t simply turn up the volume knob. The kind of emotion matters.&lt;/p&gt;
&lt;p&gt;- pg 157&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Our lives are filled with stories, and yet when we want to communicate something important to us we often forget there&amp;rsquo;s a story behind it&lt;/p&gt;
&lt;p&gt;- pg 163&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;The trouble with a lecture is that it answers questions that haven&amp;rsquo;t been asked&lt;/p&gt;
&lt;p&gt;- pg 169&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;In an experiment, you don&amp;rsquo;t always figure out in the end what you had hoped to figure out. In an experiment, in life, and in a good story, obstacles get in the way&lt;/p&gt;
&lt;p&gt;- pg 173&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;At first it seems nonsensical that knowledge could be a burden, even a curse. The problem, of course, is not in the knowledge itself. The problem is when you can&amp;rsquo;t imagine what it&amp;rsquo;s like not to have that knowledge.&lt;/p&gt;
&lt;p&gt;- pg 190&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Try again. Fail again. Fail better. Those words rest on my desk and remind me almost every day that the ashes of failure can be a place of despair or they can be where the pheonix comes from.&lt;/p&gt;
&lt;p&gt;- pg 194&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;* &lt;em&gt;Please note these are direct quotes from the reviewed material and do not represent independently conceived ideas.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="handy-links"&gt;&lt;strong&gt;Handy links:&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Buy the book
&lt;/li&gt;
&lt;li&gt;Follow Alan Alda on
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Have you read any of Alan Alda&amp;rsquo;s work, or have another science-adjacent book you can recommend? Find me on 
 or head over to the 
 to tell me more!&lt;/p&gt;
&lt;p&gt;Image credits: cover photo &lt;strong&gt;
&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Toolbox Talk: VSCode and Conda</title><link>https://dezeraecox.com/toolbox-talk-vscode-and-conda/</link><pubDate>Mon, 13 Apr 2020 07:51:36 +0000</pubDate><guid>https://dezeraecox.com/toolbox-talk-vscode-and-conda/</guid><description>&lt;p&gt;There have been many rapid changes to how, and where, we work as the world settles into a pandemic-induced hibernation. After coming to terms with the fact that many labs could be closed for several months, life scientists around the world are increasingly resolving to make the most of their &amp;lsquo;downtime&amp;rsquo;. For some, this means upskilling in leading data analysis tools and techniques - and of course, I whole-heartedly encourage this initiative!&lt;/p&gt;
&lt;p&gt;In my experience, this often takes two forms - those who use a course to learn and tackle generic coding projects, and the learn-by-doing camp who google as they go and tackle their own projects. I was a bit of both: using a few tutorials to understand the basic concepts and the remainder by going to work on real analysis problems. With that in mind, I thought it might be helpful to share a little about my setup and why a combination approach is useful (maybe even important) for self-taught data detectives.&lt;/p&gt;
&lt;p&gt;One of the issues I have with generic online python courses is their often-overly simplistic approach to interpreted development environments (IDE&amp;rsquo;s) and package management. In my case, I had been dabbling in coding for a year or two before I came across the concept of virtual environments, and it took me another year or two to get comfortable in making, using and deploying these environments. Ditto with version control. Don&amp;rsquo;t get me wrong - I think it is great that scientists are diving headfirst into coding, and jumping into a course with a simple editor helps you hit the ground running. Unfortunately, this only defers the learning curve - if you are serious about integrating these tools into your workflow a grounding in the most basic of programming hygiene habits is essential. Shortcuts were necessary in days past, as installing and running python could be … &lt;em&gt;cough&lt;/em&gt; … tricky for beginners. However, these processes have come along in leaps and bounds - meaning that it is now incredibly simple to get going with a basic python install in an editor that is easily expandable to incorporate, even encourage, basic code hygiene.&lt;/p&gt;
&lt;p&gt;You may have come across my previous Toolbox talk about
- these were the collection of tools I relied on to manage my coding, from writing to running to environments to version control. However, over the last 12 months, I have migrated to Visual Studio Code (VSCode) and Conda. I might be (a little!) biased, but this is a great place to start for anyone new to coding in python!&lt;/p&gt;
&lt;h2 id="conda-easy-environment-management"&gt;Conda: easy environment management&lt;/h2&gt;
&lt;p&gt;Before we dive into an editor, let&amp;rsquo;s start with creating and managing virtual environments. If you&amp;rsquo;re still not sure what virtual environments are and why you might need to use them, check out these great tutorials from
and
. In essence, virtual environments are essential for keeping your base install of python from becoming littered with packages, many of which might have dependencies that break each other.&lt;/p&gt;
&lt;p&gt;Conda solves this problem for python and non-python dependencies alike, and it comes bundled with the ability to install various python versions. In fact, Anaconda and Miniconda have become the most popular Python distributions for data science in research laboratories worldwide. For a more in-depth discussion of these features, and whether you should choose the complete (Anaconda) or lite installation (Miniconda) check out the documentation
.&lt;/p&gt;
&lt;h3 id="installating-miniconda"&gt;Installating MiniConda&lt;/h3&gt;
&lt;p&gt;For many purposes, Miniconda is ample and is easy to
and install by simply following the prompts. Real Python has an extra-detailed walk-through of the installation and starting your first environment in their fantastic
, including creating your first environment and installing packages within that environment.&lt;/p&gt;
&lt;p&gt;Once you&amp;rsquo;ve created your first environment using the &lt;code&gt;conda create --name=my_env&lt;/code&gt; command, install the ipython and jupyter packages using the &lt;code&gt;conda install ipython jupyter&lt;/code&gt; command. These packages will enable VSCode to locate and use this environment as a python kernel (more on that later!)&lt;/p&gt;
&lt;h2 id="vscode-a-full-featured-user-friendly-editor"&gt;VSCode: a full-featured, user-friendly editor&lt;/h2&gt;
&lt;p&gt;Although technically VS Code is not a dedicated IDE, an abundance of out-of-the-box features supplemented with a few extensions gives you an editor that supports debugging, embedded Git, syntax highlighting, intelligent code completion, snippets, and code refactoring, among an abundance of other features. In short, it is incredibly customisable, user-friendly, language-agnostic, and seamlessly integrates with code hygiene tools to give every budding research software scientist the best start in their programming journey. In case I haven&amp;rsquo;t convinced you yet, here is a quick run-through from zero to coding hero with VSCode.&lt;/p&gt;
&lt;h3 id="basic-installation"&gt;Basic installation&lt;/h3&gt;
&lt;p&gt;Download install VSCode for your operating system
. Once installed, VSCode will open to the Welcome Screen. This is a great place to get familiar with VSCode functionality,including a number of helpful customisation portals (helloooo colour themes and keybindings!). For first-time users, your first stop should be the interactive playground. This window walks through some of the key features of VSCode and gets you started moving around the editor.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2020/04/welcome_screen-2.png"&gt;
&lt;/figure&gt;
&lt;h3 id="getting-started"&gt;Getting started&lt;/h3&gt;
&lt;p&gt;The next stop is the &lt;strong&gt;Extensions&lt;/strong&gt; tab, which is your gateway to much of VSCode&amp;rsquo;s fabulous functionality. You can explore the offerings and pick your favourites (there are extensions for almost anything you could want to do!), but the one must-have for our purposes is the Python extension.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2020/04/python-extension-1.png"
alt="python-extension"&gt;&lt;figcaption&gt;
&lt;p&gt;python-extension&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;After installation, open the command palette using &lt;code&gt;ctrl-shift-p&lt;/code&gt; and search for settings. In the settings search box, type &amp;ldquo;python&amp;rdquo; then scroll through the settings until you find the &lt;code&gt;Python &amp;gt; Data Science: Send Selection to Interactive Window&lt;/code&gt; and make sure this setting is ticked. After this, you&amp;rsquo;re good to go!&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2020/04/python-setting-1.png"
alt="python-setting"&gt;&lt;figcaption&gt;
&lt;p&gt;python-setting&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id="piecing-it-all-together-using-your-conda-environment-in-vscode"&gt;Piecing it all together: using your conda environment in VSCode&lt;/h2&gt;
&lt;p&gt;Now let&amp;rsquo;s get to work running your first python script in VSCode with your brand new environment! If you don&amp;rsquo;t have an existing python file to test out, not to worry we can make one!&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open a new file within VSCode, and save with a .py extension.&lt;/li&gt;
&lt;li&gt;Inside the file, add the following line:&lt;br&gt;
print(&amp;ldquo;Hello World&amp;rdquo;)&lt;/li&gt;
&lt;li&gt;Save the file, then place the cursor in the &amp;lsquo;print&amp;rsquo; line.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You should see in the bottom left corner of the editor that there is a python version displayed, followed by the name of your current environment. This will likely be the &amp;lsquo;base&amp;rsquo; environment to start with. If you click on the environment name, then you should be able to select your new environment from the pop-up list. This will then be used to run the code selection.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;To run your code within the built in interactive window, highlight the line and &lt;code&gt;shift+enter&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This will send the code to the interactive interpreter, which will open in a new tab within the VSCode window. The kernel may take a little while to start in the first instance, but you should see the Jupyter server details listed in the top right corner - note that it should be the name of your environment. Once it has run, it will look something like this:&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2020/04/hello-world-1.png"
alt="hello-world"&gt;&lt;figcaption&gt;
&lt;p&gt;hello-world&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;That&amp;rsquo;s it! You are all set to run python files for exploratory data analysis in VSCode.&lt;/p&gt;
&lt;h2 id="favourite-features"&gt;Favourite features&lt;/h2&gt;
&lt;p&gt;Now we have mastered the basics, you have enough to get going with python in VSCode. A few features that make VSCode my one-stop-shop for all my coding adventures and beyond include:&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;python extension&lt;/strong&gt; itself! It is an evolving masterpiece - huge shout-out to the creators and maintainers - with a multitude of features packed within the interactive window that, frankly, could occupy a post on their own. Highlights include the variable explorer, ability to save the current state of the interactive window directly to a Jupyter notebook, and the ability to render a Jupyter notebook in a standalone tab where you can edit and run code cells without spawning a browser window.&lt;/p&gt;
&lt;p&gt;The second important, must-use feature is &lt;strong&gt;version control&lt;/strong&gt;. If you haven&amp;rsquo;t incorporated version control into your workflow yet, or aren&amp;rsquo;t familiar with it, you can read more
. In short, even if you have never written a single line of code in your life, version control is a must for anyone routinely creating and editing documents of any kind. And the best news is, VSCode makes it only too easy! You can create repositories, then stage and commit changes from right there in the version control tab. More advanced functionality is also available in the
extension.&lt;/p&gt;
&lt;p&gt;Another handy feature is the ability to &lt;strong&gt;launch a command-line terminal within VSCode&lt;/strong&gt;. This can be done via the &amp;ldquo;Terminal&amp;rdquo; menu, or keyboard shortcut &lt;code&gt;ctrl+shift+` &lt;/code&gt;. As a bonus, if you have an active conda environment, this command will launch a conda terminal with the conda environment pre-activate on the command line. This makes it easy to install new packages and create new environments right from within the editor.&lt;/p&gt;
&lt;p&gt;Last but certainly not least is the &lt;strong&gt;dynamic documentation display for functions derived from imported packages&lt;/strong&gt;. For example, when using a the pandas &lt;code&gt;melt&lt;/code&gt; function, typing pd.melt() prompts a popup which contains the function definition and variable explanation. This means no more googling docs to check that you have set all the required arguments!&lt;/p&gt;
&lt;p&gt;VSCode also features all the best bits of Atom, like being able to set the colour theme and change the layout of windows, and a built-in debugger window that allows you to investigate the state of variable and monitor breakpoints in your code. The more you use and explore, the more functions you will undoubtedly find that make your life better. However, here are a few more of my favourites for inspiration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Collaboration:&lt;/em&gt;
(think googledocs for code)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Text functionality:&lt;/em&gt;
,
,
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Coding cheats:&lt;/em&gt;
,
,
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Prettifying the editor:&lt;/em&gt;
,
,
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Preview functionality:&lt;/em&gt;
,
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="some-final-thoughts"&gt;Some final thoughts&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve gone through a number of IDE&amp;rsquo;s since my coding journey began. As a general rule, IDE&amp;rsquo;s suit my style of work better than command-line activities and the ability to run and interact with code and plots in short succession is essential for this. However, a good programmer needs at least some level of experience with the command line, so try not to avoid it! Luckily, VSCode makes transitioning between the command line and interactive windows so easy that there really is no excuse.&lt;/p&gt;
&lt;p&gt;When picking an editor, getting comfortable with a single system setup can make it difficult to leap into something new - especially with the time and effort investment required to get everything customised and functional for how you work best. However, it is worthwhile keeping in mind that where the field moves as a whole is often where the greatest level of innovation will be (extensions, support etc). It is good to keep an eye on what the &amp;rsquo;next big thing&amp;rsquo; is, but don&amp;rsquo;t be afraid to wait it out until you are happy with the level of stability and usefulness to make the tradeoff worthwhile.&lt;/p&gt;
&lt;p&gt;Last but certainly not least, don&amp;rsquo;t worry if there were parts of this post that sounded like mumbo-jumbo: everyone is at different stages in their coding journey. One idea I hope I have instilled is that VSCode caters to all skill levels, from the ease of installation and setup to the massive extensibility provided by the extension marketplace. In short, VSCode ticks all of my must-have boxes for an editor and I thoroughly recommend you try it out!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Do you have a favourite IDE for editing python code? Having trouble getting started in VSCode? Or maybe you tried VSCode and found it doesn&amp;rsquo;t quite suit? Get in touch via the
or on
- I&amp;rsquo;d love to hear about your experiences!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Image credits:
via unsplash&lt;/p&gt;</description></item><item><title>Toolbox Talk: Scientific posters</title><link>https://dezeraecox.com/toolbox-talk-scientific-posters/</link><pubDate>Tue, 30 Jul 2019 10:39:57 +0000</pubDate><guid>https://dezeraecox.com/toolbox-talk-scientific-posters/</guid><description>&lt;p&gt;Going to a large, often international, conference jam-packed with superstars in your field is one of the privileges of being a scientist. Conferences are essential for building your network, keeping up-to-date with the progress inside your niche and more broadly in your field, and establishing or maintaining collaborations. If you&amp;rsquo;d like to know more about my conference experiences, check out
. I was lucky enough to attend and present short talks at a few conferences in 2017, and it was a wonderful opportunity to show the scientific community what I have been working on.&lt;/p&gt;
&lt;p&gt;However, there are only so many oral presenter slots available at such events, and often these are used by the organising committee to highlight the very best and newest science. But what about the rest of us? It can be really difficult to get the most out of a conference, especially as a student, if you don&amp;rsquo;t have an opportunity to showcase your work. Enter: poster presentations.&lt;/p&gt;
&lt;h4 id="wait-like-in-elementary-school"&gt;Wait, like in elementary school?&lt;/h4&gt;
&lt;p&gt;If you are thinking of a giant piece of butcher&amp;rsquo;s paper, covered with scribbles in multi-coloured permanent markers, you aren&amp;rsquo;t &lt;em&gt;too&lt;/em&gt; far wrong. But things have evolved a little since the school days, and we do have slightly more developed tools for displaying our work these days. Unfortunately, making an engaging scientific poster is often not something we are formally prepared for during our scientific training. We are being moulded into the next generation of scientists, after all - what no one tells you is that artist is just one of the many additional hats that you will wear often as your career progresses.&lt;/p&gt;
&lt;p&gt;With this in mind, I thought I would share a little about my process and tools for making an engaging poster. It is by no means a one-stop-shop, as every time I make a new poster I learn a little more about the process, but hopefully, you will find something useful as you prepare for that next science-filled conference adventure.&lt;/p&gt;
&lt;h4 id="tools"&gt;Tools&lt;/h4&gt;
&lt;p&gt;There are plenty of purpose-built design software packages out there specifically for making commercial posters, and some even targetted at producing scientific visuals. I have included a few links in the additional resources, but to be honest, I have had mixed success with these - if you find any that I have missed or that you&amp;rsquo;ve found particularly helpful
to let me know!&lt;/p&gt;
&lt;p&gt;In the meantime, I have settled on a combination of a freely-available vector graphics program (Inkscape) for compiling individual panels into standalone figures and presentation software (e.g.
or
) for the overall poster design. If you haven&amp;rsquo;t heard of vector graphics programs before, or are unsure why you might want to use one, you can read more
. In essence, because of the way they are constructed, vector graphics are easy to manipulate and can be scaled indefinitely without losing their quality as they are not composed of pixels, in contrast to the raster-based file types jpeg and png.&lt;/p&gt;
&lt;p&gt;For data-laden figure panels, I will usually stick with python or
(if you are interested in this, check out some of my other toolbox posts
). For any work dealing with protein structure,
is your friend. The learning curve can be quite steep (I am only just now mastering the basics of opening a structure file, editing the colours and changing the display type from ball and stick to ribbon!) but it is relatively easy to produce a striking visual that will aid in any handwavy descriptions of a protein&amp;rsquo;s structure. Keep an eye out for my beginner&amp;rsquo;s basic guide to PyMol in a future Toolbox Talk!&lt;/p&gt;
&lt;p&gt;Last, but definitely not least, I use a
to create a link to this website. Even if the name is not familiar, I am sure that you would have come across
in the wild before - they are a type of matrix barcode that links to a website or application when scanned with a smartphone camera. There are plenty of free online platforms for creating your own QR codes, and many that give you the ability to adjust the shape and colour of the individual elements, however be careful to know the difference between static (meaning you have no flexibility to adjust where the link directs after printing) or dynamic (that contain an automatic redirect which you can adjust after printing) to make sure you get one that suits your particular needs. I have found this especially handy for posters - by encoding your contact details or link to your website, it is easy for conference attendees to get in touch without having to hastily scribble down your email on their crumbled napkin.&lt;/p&gt;
&lt;h4 id="techniques-and-tips"&gt;Techniques and tips&lt;/h4&gt;
&lt;p&gt;Even the most exciting and life-changing data can find itself on a poor poster. There are many unwritten (and written) rules for making an engaging and eye-catching scientific poster, and many more experienced people than I have written guidelines and tips, some of which you can find in the resources section below. In any case, I thought I would throw in a few of my trusty tips here:&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2019/07/design_alecuffia.jpg"&gt;
&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Layouts should be simple and easy to follow.&lt;/em&gt;&lt;/strong&gt; I find that creating boxes to guide the reader through the poster in a logical fashion can be helpful. Remember a poster is about walking someone through your science and stories that jump backwards and forwards can make it hard to stay engaged. As a general rule, try not to require your audience to do too many optical gymnastics to follow the narrative of your science. When creating a new poster from scratch, I like to sketch out the layout, brief text tidbits and figure ideas by hand in A4 format to help get a handle on what data I need to track down and figures I need to produce. I also find drafting this initial layout in A4 size helps to keep my final poster from getting too overcrowded.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Find SVG versions of logos for the institutes that contributed to the work.&lt;/em&gt;&lt;/strong&gt; It is good practice to acknowledge the financial support any project receives, and posters are no exception. In practice, I typically will have anywhere from 1 - 3 logos on my poster and any additional smaller contributions can be acknowledged in the text if you feel it is necessary. I will always find SVG versions of the logos, such that they can be edited and resized without losing any quality. Generally, you will be able to access these from your University brand team, or a quick google search with an advanced filter to find SVGs works well too.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2019/07/colourpalette_greyritualstudio_crop.jpg"&gt;
&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Never underestimate the power of a good colour scheme.&lt;/em&gt;&lt;/strong&gt; There is nothing worse than a poster that looks more like a rainbow kaleidoscope than a scientific document. Try to steer clear of elaborate colour schemes, and away from anything too light or bright. Also, keep in mind that picking a simple colour scheme to use throughout the entire poster (e.g. one type of sample is the same colour in all panels) helps to provide continuity for your reader. For those who are colour-coordinator challenged, a quick google search for colour palettes will provide all the inspiration you need.&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2019/07/blueorange_codytdavis.jpg"&gt;
&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Remember the power of size, shape and colour for drawing attention.&lt;/em&gt;&lt;/strong&gt; With the limited time and large amount of information available at poster sessions, conveying the most important points from your work is crucial. Using accent colours, bold fonts or larger sizes can help to draw your reader&amp;rsquo;s eye to the key aspects of your work, and hopefully prompt them to ask more about the details!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Consistency is key.&lt;/em&gt;&lt;/strong&gt; A poster, aside from displaying scientific results and information, is at the end of the day a piece of art. As with any beautiful artwork, the little things matter! Use the handy aligning and specific dimension setting functions in powerpoint to make sure everything is balanced and consistent. Check that the text sizes, fonts, line widths etc are identical throughout your poster, especially for things like headers and panel outlines. There will always be one or two typos that sneak past you, but it&amp;rsquo;s also a good idea do several final read-throughs to check for typos - once your masterpiece is printed, there is no turning back!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Print smaller versions for proofing.&lt;/em&gt;&lt;/strong&gt; Printing an A4 version of your poster is a great way to check for readability and those last-minute alignment or spelling errors. As a general rule, anything that is not readable in this format will not become more-so simply by being printed bigger - remember you want to be able to engage your visitors in conversation, not have them glueing their nose to your poster trying to make out the details!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;PDF is your friend.&lt;/strong&gt;&lt;/em&gt; Particularly if you include transparent artwork or special characters, it is good practice to export your poster from powerpoint to PDF before submitting for printing. There are also a few tricks with powerpoint to ensure the quality is maximal, which can be found in the &amp;lsquo;Options&amp;rsquo; menu of the dialogue box during export.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Be prepared to print early.&lt;/strong&gt;&lt;/em&gt; Some institutions have their own print services, and these can be a cost-effective way to have your poster printed. I have a lot of experience with Officeworks and have generally been thrilled with their service, although I would recommend visiting a store in person to submit and collect your poster. They will generally give you a test print which is handy to make sure your creation survived the file format change. Regardless of which route you choose, plan to have your poster finalised and printed several days before departure - this way you will have a few days up your sleeve to handle the inevitable curve-balls!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="useful-resources"&gt;Useful resources&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
from Animate Your Science has some straightforward tips for layout and content. I will admit to disobeying a few of their &amp;ldquo;rules&amp;rdquo; but generally great advice!&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;Toolbox talk on
and the
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Did I miss your favourite tool or technique? Find me on
or head over to the
to tell me more!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Image credits: codytdavis, greyritualstudio, alecuffia and arterbury via&lt;/em&gt;
&lt;/p&gt;</description></item><item><title>Toolbox Talk: Storing data using HDF5 files</title><link>https://dezeraecox.com/toolbox-talk-hdf5-files/</link><pubDate>Sun, 28 Apr 2019 05:43:45 +0000</pubDate><guid>https://dezeraecox.com/toolbox-talk-hdf5-files/</guid><description>&lt;p&gt;As an early-career researcher, I am still figuring out the best way to &lt;em&gt;get stuff done&lt;/em&gt;. Every day it seems as though my to-do list gets longer and longer, for every item I tick off two more take its place and I have no doubt it will only get worse. I am all about finding the best, most efficient and connected technologies to help alleviate some unnecessary legwork. I have decided to write more on the programs, apps and integrations that I use every day in this Toolbox series. This post focuses on how I store and organise the currency of science: big data!&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="data-the-invisible-bits-and-bytes-of-modern-life"&gt;Data: the invisible bits and bytes of modern life.&lt;/h4&gt;
&lt;p&gt;Data is an invisible and yet fundamental driver of our digital life in 2019, and the amount of data worldwide is growing every single day. In fact, the International Data Corporation (IDC) estimates the amount of data in the world will grow from an estimated 33 zettabytes (one zettabyte is equivalent to a trillion gigabytes) in 2018 to 175 zettabytes by 2025, an almost unfathomable amount of bits and bytes. Every industry is grappling with the growing mountain of data, and science is no different. Scientists use data as the fuel that powers insight, discovery, and innovation. This demands new infrastructure from the institutes in which we gather data; but it also demands new approaches to the way we as scientists collect, store and analyse data.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2019/04/annual_global_datasphere-e1556429218398.png"&gt;
&lt;/figure&gt;
&lt;p&gt;During the first five years of my university career, everything I needed for my degree fit safely on a single 16 GB USB stick. Then I went and learnt how to do single-molecule microscopy during the second year of my PhD, and suddenly I was generating 16 GB of data in a single experiment. To cope with this rapid explosion, I invested in the hardware needed to store this data as text or csv files and stumbled my way through establishing a folder-based filing system.&lt;/p&gt;
&lt;p&gt;It was during this stint early in my PhD that I first got a taste of programming to deal with this data (for more, check out some of my other programming posts
), however, this still centred on csv/text files for importing data, calculating results, and exporting the final findings. This meant that the data along the way, including input, intermediate and final files, could still be opened by easily-human-readable programs such as Microsoft Excel, and kept supervisors/collaborators without programming experience comfortable.&lt;/p&gt;
&lt;p&gt;Recently, this storage pattern was no longer adequate for the size of results I was dealing with. Enter: HDF5 format. If you&amp;rsquo;ve never heard of this format before, it&amp;rsquo;s somewhat similar to an Excel document, without the proprietary software tag. Read on for more about what it is, why it&amp;rsquo;s useful for those dealing with large datasets and how I implemented a storage workflow in HDF5 format using python.&lt;/p&gt;
&lt;h4 id="what-on-earth-is-hdf5"&gt;What on earth is HDF5?&lt;/h4&gt;
&lt;p&gt;Heirarchical Data Format (HDF) is a collection of file formats designed to store large amounts of data in an organised manner. Similar to the way &lt;code&gt;.txt&lt;/code&gt; refers to text files or &lt;code&gt;.pdf&lt;/code&gt; refers to Portable Document Format files, HDF files are adorned with &lt;code&gt;.hdf&lt;/code&gt;, &lt;code&gt;.hdf5&lt;/code&gt;, &lt;code&gt;.h5&lt;/code&gt; style extensions. The ongoing development and accessibility of the HDF file format is maintained by the non-profit organisation &amp;ldquo;The HDF Group&amp;rdquo;, meaning the tools to store and use HDF files will never rely on proprietary (and often expensive!) software.&lt;/p&gt;
&lt;p&gt;More specifically, HDF5 files consist of &lt;em&gt;Datasets&lt;/em&gt; that can store arrays of data (think individual sheets in an Excel document), &lt;em&gt;Groups&lt;/em&gt; which can store datasets or other groups (think a folder of Excel documents, or folders of folders), and &lt;em&gt;metadata&lt;/em&gt; consisting of mapped key-value pairs for attributes of the data (think a detailed description notes page for each sheet/document).&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2019/04/hdf5_structure.jpg"&gt;
&lt;/figure&gt;
&lt;h4 id="pros-and-cons-of-the-hdf5-format"&gt;Pros and Cons of the HDF5 format&lt;/h4&gt;
&lt;p&gt;As with anything, there are good bits and bad bytes about using HDF5 to store data.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Some of the Cons:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unable to easily open HDF5 with excel or notepad (although there are some
being developed that could help overcome this)&lt;/li&gt;
&lt;li&gt;No inbuilt calculation or manipulation options&lt;/li&gt;
&lt;li&gt;Not readily used by many researchers in the life sciences, including many senior researchers making it difficult to share data with collaborators unfamiliar with the format&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;A few of the Pros:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Heirarchical format allows for logically storing data in a single file with folder-like architechture&lt;/li&gt;
&lt;li&gt;Allows pre-processed data, such as date-time data, to be stored efficiently without loosing the effect of preprocessing (as would otherwise happen in &lt;code&gt;.csv&lt;/code&gt; format)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Fast&lt;/em&gt;. Compared to other file formats, reading and writing HDF5 files is speedy. For example, writing to HDF5 is 16 times faster than to simple csv file, not to mention the extra overhead that comes from Excel documents. For a comparison to other common formats, check out the
&lt;/li&gt;
&lt;li&gt;Storing metadata within the file architechture makes sure that these attributes are accessible to anyone wanting/needing to access this data at a later date, and doesn&amp;rsquo;t rely on the bundling of additional &amp;ldquo;description&amp;rdquo; files to make sense of all the parameters and conditions under which the data was collected.&lt;/li&gt;
&lt;li&gt;There are advanced options to create datasets that can be edited (rows added etc), and those that are read-only. This is provides an extra level of flexibility that allows, for example, intermediate datasets to be appended to making sure the raw data is not inadvertantly changed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="sounds-great-but-how-do-i-use-hdf5-files"&gt;Sounds great.. But how do I use HDF5 files?&lt;/h4&gt;
&lt;p&gt;If you have no experience with programming, to get started you can download
, which is freeware available from the HDF Group that will allow you to open and edit HDF5 files. In the interest of full disclosure, I have never used this software but it seems to work similarly to graphical user interfaces like Excel (without the price tag!).&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2019/04/hdfview-sample.jpg"&gt;
&lt;/figure&gt;
&lt;p&gt;If you have a programming language of choice, chances are there are
- my tool of choice is of course Python! Even within python, however, there are a few choices for how to interface with the HDF5 machinery. Given that I use Pandas most often for data wrangling, it makes sense to leverage Pandas&amp;rsquo; built in support. This includes methods that allows dataframes to be written to directly to HDF5 files using a method provided by the dataframe itself:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;df = pd.DataFrame({&amp;#39;A&amp;#39;: [1, 2, 3], &amp;#39;B&amp;#39;: [4, 5, 6]}, index=[&amp;#39;a&amp;#39;, &amp;#39;b&amp;#39;, &amp;#39;c&amp;#39;])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;df.to_hdf(&amp;#39;data_filename.h5&amp;#39;, key=&amp;#39;Key_1&amp;#39;, mode=&amp;#39;w&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This method also allows another object to be written to the same file, with a second key &amp;rsquo;s':&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;s = pd.Series([1, 2, 3, 4])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;s.to_hdf(&amp;#39;data_filename.h5&amp;#39;, key=&amp;#39;Key_2&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In this case, the heirarchy is quite simple: two datasets are stored under the single file. To get your data back, it is simple to then read back into a dataframe:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;new_df = pd.read_hdf(&amp;#39;data_filename.h5&amp;#39;, &amp;#39;Key_1&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For storing multiple files in this manner (i.e. using key-dataframe pairs), I have created a utility function using the HDFStore module (another interface provided by Pandas) that collects dataframes that have been loaded into a dictionary, then saves them to a single HDF5 file:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;def dict_to_h5(filename, dictionary, **kwargs):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; store = pd.HDFStore(filename)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for key, df in dictionary.items():
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; store.put(key, df)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; store.get_storer(key).attrs.metadata = kwargs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; store.close()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;NB: using the HDFStore in Pandas requires PyTables v3.0.0 or higher. To update your existing Tables installation run the ``pip install &amp;ndash;upgrade tables``` command in your terminal.&lt;/p&gt;
&lt;p&gt;These are both simple examples in which there is a &amp;lsquo;flat&amp;rsquo; data storage pattern. This is great for storing a few large dataframes, or sequentially processed intermediate dataframes for a single result. In most cases, however, you will find it useful to introduce an additional level of hierarchical organisation similar to the folder storage system we are familiar with from OS interfaces. To do this, the keys should have a file-path structure which lists the group hierarchy that the dataset is to be added to. For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hdf =HDFStore(&amp;#39;storage.h5&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hdf.put(&amp;#39;tables/t1&amp;#39;,DataFrame(np.random.rand(20,5)))
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hdf.put(&amp;#39;tables/t2&amp;#39;,DataFrame(np.random.rand(10,3)))
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hdf.put(&amp;#39;new_tables/t1&amp;#39;,DataFrame(np.random.rand(15,2)))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will yeild the following data structure within the single HDF5 file:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/new_tables/t1 frame (shape-&amp;gt;[15,2])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/tables/t1 frame (shape-&amp;gt;[20,5])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/tables/t2 frame (shape-&amp;gt;[10,3])
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Python also has other packages specifically for HDF5 manipulation, which have a few more specialised tools. If you&amp;rsquo;d like to know more about these packages, or how to generate more complicated heirarchies, check out the list of resources below.&lt;/p&gt;
&lt;h4 id="a-few-final-thoughts"&gt;A few final thoughts.&lt;/h4&gt;
&lt;p&gt;Data is a part of life as a scientist, and as life scientists we must strive for better, more versatile approaches to storing and handling the ever-growing datasets produced by our experiments. For me, HDF5 has provided a simple and elegant way to interface with my data. It allows me to store raw and computationally-expensive intermediate &amp;lsquo;checkpoints&amp;rsquo;, and also means that I can maintain a single HDF5 file that combines data and metadata in a single place. The barrier to entry is quite low, and there are plenty of versatile ways to access data stored in HDF format.&lt;/p&gt;
&lt;h4 id="resources"&gt;Resources&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;A
to HDF5 with Pandas&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;You can find additional utitility functions that make it simple to create and store HDF5 files for my projects in my
package on GitHub.&lt;/li&gt;
&lt;li&gt;For more complicated heirarchies, check out
&lt;/li&gt;
&lt;li&gt;Some other Python HDF utilities include
, for which there are some great
on how to generate structured heirarchies.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Do you have a favourite way to store, access and manipulate large datasets? Get in touch on
and let me know!&lt;/p&gt;
&lt;p&gt;Banner image credit: @ gabons via unsplash&lt;/p&gt;</description></item><item><title>A year in review: 2018 edition</title><link>https://dezeraecox.com/a-year-in-review-2018-edition/</link><pubDate>Tue, 15 Jan 2019 09:52:30 +0000</pubDate><guid>https://dezeraecox.com/a-year-in-review-2018-edition/</guid><description>&lt;p&gt;The last few weeks have seen a flood of people posting their 2018 achievements, promoting the academic currency of papers published, grants won, students mentored and conferences attended.&lt;/p&gt;
&lt;p&gt;Without taking away from these achievements, I wanted to focus on viewing myself as more than my work, and especially more than the &amp;lsquo;publish or perish&amp;rsquo;-driven manuscript list. And so, here lives my reflection on the year that was. Lessons remain a crucial part; after all,&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;“If a man looks at the world when he is 50 the same way he looked at it when he was 20 and it hasn’t changed, then he has wasted 30 years of his life,”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Muhamed Ali&lt;/p&gt;
&lt;p&gt;Of course, I would be remiss not to celebrate the high points - but I have tried to temper the &amp;lsquo;gloating&amp;rsquo; with a few honest low points. Finally, I take a look to the future. By defining goals which will drive my personal and professional life in 2019, I hope to kick off a fulfilling and smooth-sailing year with the course charted and the wind in my sails.&lt;/p&gt;
&lt;h2 id="wins"&gt;&lt;strong&gt;Wins&lt;/strong&gt;&lt;/h2&gt;
&lt;h6 id="a-snapshot-of-the-high-points"&gt;&lt;em&gt;A snapshot of the high points&lt;/em&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;I received my first personal scientific project funding through an Early-Career Researcher Grant&lt;/li&gt;
&lt;li&gt;I had four papers published, including the last of my PhD research, and landed travel funds for an international conference&lt;/li&gt;
&lt;li&gt;I was priviledged to give too many conference presentations to count (Lornes, ABS-ABA, Winter School..)&lt;/li&gt;
&lt;li&gt;I developed and grew this page, with 20 blog posts including tools, conference reviews, book reviews and scicomm&lt;/li&gt;
&lt;li&gt;I produced hundreds (maybe thousands?) of lines of brand new code - but more importantly, saw a significant improvement in my ability and confidence when programming which has allowed me to assist others&lt;/li&gt;
&lt;li&gt;I attended my first PyLadies meetup, where I met people like me (in science, learning python independently) and some less like me (employed full time in programming or data analysis positions)&lt;/li&gt;
&lt;li&gt;I developed closer relationships with family and friends, as I worked harder to maintain and build these ties&lt;/li&gt;
&lt;li&gt;I read two more books than last year&lt;/li&gt;
&lt;li&gt;I consistently, regularly exercised, losing 15 kilograms&lt;/li&gt;
&lt;li&gt;I hit a saving milestone and we bought a house&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="losses"&gt;Losses&lt;/h2&gt;
&lt;h6 id="a-snapier-shot-of-the-low-points"&gt;&lt;em&gt;A snapier shot of the low points&lt;/em&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;I worked for two months on experiments that were to resuscitate one of my major projects&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;m now left with no papers in the pipeline, leaving lots for the year ahead to wrap up these projects&lt;/li&gt;
&lt;li&gt;My coding projects are in somewhat of a state of disarray, in desperate need of a tidy and some documentation&lt;/li&gt;
&lt;li&gt;I only read 2 books, and put 8 kilograms back on&lt;/li&gt;
&lt;li&gt;I spent more than 50 hours writing six grants, all of which were unsuccessful&lt;/li&gt;
&lt;li&gt;I was quick to judge others and less approachable than I would like to be, letting my stress seep to the outside&lt;/li&gt;
&lt;li&gt;We unbought a hous&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="lessons"&gt;Lessons&lt;/h2&gt;
&lt;h6 id="the-bits-i-wish-i-knew-at-the-start-of-2018-but-had-to-learn-the-hard-way"&gt;&lt;em&gt;The bits I wish I knew at the start of 2018, but had to learn the hard way&lt;/em&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Have the hard conversations - with your boss, your partner, yourself&lt;/li&gt;
&lt;li&gt;Self-care is about what you need - not what everyone else&amp;rsquo;s definition of rest and relaxation tells them (and they, therefore, tell you) you should be doing&lt;/li&gt;
&lt;li&gt;&amp;ldquo;There are less qualified people than you doing what you want to do, just because they decided to believe in themselves. Period.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Make a positivity folder and actively collect the warm fuzzy moments: emails, photos, messages, compliments, congratulations&amp;hellip;&lt;/li&gt;
&lt;li&gt;If you want to do something, really want to, then make time. Do it. No one else is going to do it for you, and your schedule will not magically clear. Life is never going to get less hectic or stressful.&lt;/li&gt;
&lt;li&gt;Every day, hour, minute you spend wishing your way to the next thing (job, house, friend, partner) you will equally spend wishing you had taken the time to value what you had, to revel in it.&lt;/li&gt;
&lt;li&gt;Prioritise, prioritise, prioritise&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="goals"&gt;Goals&lt;/h2&gt;
&lt;h6 id="hopefully-to-help-me-meander-with-purpose-through-2019"&gt;&lt;em&gt;Hopefully to help me meander with purpose through 2019&lt;/em&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;It might be a little meta, but a big goal of mine this year is to learn to set &lt;strong&gt;SMART&lt;/strong&gt; goals. Not so much &amp;ldquo;new years resolutions&amp;rdquo; - but personal and professional goals that I would like to work towards every day.&lt;/li&gt;
&lt;li&gt;If you&amp;rsquo;ve never heard of the SMART goal concept, you can find a more detailed description
, but in a nutshell SMART goals are:
&lt;ul&gt;
&lt;li&gt;S - specific, significant, stretching&lt;/li&gt;
&lt;li&gt;M - measurable, meaningful, motivational&lt;/li&gt;
&lt;li&gt;A - agreed upon, attainable, achievable, acceptable, action-oriented&lt;/li&gt;
&lt;li&gt;R - realistic, relevant, reasonable, rewarding, results-oriented&lt;/li&gt;
&lt;li&gt;T - time-based, time-bound, timely, tangible, trackable&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;With this in mind, I have the following goals for 2019:
&lt;ul&gt;
&lt;li&gt;Yoga at least two days in a fortnite during 2019. A flexible body -&amp;gt; flexible mind -&amp;gt; clarity of ideas, increased alertness and engagement with the task at hand. I would like to be able to better calm my mind when distraction threatens. I will track this goal via a calendar which records each session.&lt;/li&gt;
&lt;li&gt;Land the next job - be strong enough to throw myself into the applications and let go of the guilt of not chasing (limited) Australian funds. This will be measured via my application for at least 3 more Fellowship programs.&lt;/li&gt;
&lt;li&gt;Attitude adjustment - I will track this goal via weekly mini-reflections, where I will focus on (1) Learning to take control of what is within my reach, and to more rapidly accept that which is outside my control and &lt;em&gt;move on&lt;/em&gt;, (2) Doing one self-positive task per day - learning, physical activity, kindness, and (3) Fostering self belief to replace self doubt, in personal relationships, professional settings and long-term career prospects&lt;/li&gt;
&lt;li&gt;Prioritise, prioritise, prioritise!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And with that, it&amp;rsquo;s time to say &lt;em&gt;sayonara&lt;/em&gt; 2018 - bring on 2019.&lt;/p&gt;
&lt;p&gt;May science be kind to you!&lt;/p&gt;
&lt;p&gt;Image credit: @brookelark via
&lt;/p&gt;</description></item><item><title>Toolbox talk: Atom, Jupyter and Hydrogen</title><link>https://dezeraecox.com/toolbox-talk-atom-jupyter-and-hydrogen/</link><pubDate>Sun, 23 Sep 2018 11:47:32 +0000</pubDate><guid>https://dezeraecox.com/toolbox-talk-atom-jupyter-and-hydrogen/</guid><description>&lt;p&gt;As an early-career researcher, I am still figuring out the best way to &lt;em&gt;get stuff done&lt;/em&gt;. Every day it seems like my to-do list gets longer and longer, for every item I tick off two more take its place and I have no doubt it will only get worse. I am all about finding the best, most efficient and connected technologies to help alleviate some unnecessary legwork. I have decided to write more on the programs, apps and integrations that I use every day in this Toolbox series. This post focuses on what is currently the best (in my humble opinion) hackable text editor for writing, programming and data analysis: Atom!&lt;/p&gt;
&lt;h3 id="the-basics-atom-as-a-building-block"&gt;The basics: Atom as a building block.&lt;/h3&gt;
&lt;p&gt;Billed as the &amp;ldquo;hackable text editor for the 21st Century&amp;rdquo;,
is a free, open-source, cross-platform desktop application for editing plain text and source code. While the base program was developed by GitHub, many of best functionalities are community built and maintained under free liscences. This combination of core support and extensibility has resulted in an unparalleled level of customisability, and makes Atom my editor of choice for everything from simple text documents, to data analysis to developing python packages. For coders and non-coders alike, there is something for everyone in the Atom ecosystem.&lt;/p&gt;
&lt;p&gt;From an aesthetic point of view, Atom has a nice panelled interface which can be extended at will. Below you can see a standard layout I gravitate towards while I am analysing data. The leftmost pane (the file tree) allows you to open an entire folder or folder tree to easily see all of the files associated with the project you are currently working on, complete with coloured file-type icons for easy visual grepping. In addition, I can have multiple panes open side-by-side which allows me to operate on code/data in one building and document the analysis approach in the second. Finally, to the right is the output/Git pane (more on that later).
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2018/09/Atom-Generic-layout.png"
alt="An example analysis layout in Atom."&gt;&lt;figcaption&gt;
&lt;p&gt;An example analysis layout in Atom.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
Atom also has a vast array of installable themes to customise the window colour and aesthetic. I myself am partial to a dark theme, with a subdued syntax highlighting (check out the &lt;em&gt;OneDark&lt;/em&gt; theme). If you prefer a more traditional light theme, there are plenty of those too!&lt;/p&gt;
&lt;h3 id="the-best-bits-github-integrated-development-environment-and-real-time-collaboration-functionality"&gt;The best bits: Git(Hub), Integrated Development Environment and Real-time Collaboration functionality&lt;/h3&gt;
&lt;p&gt;Being built by GitHub, it is fair to expect some level of integration with Git. If you&amp;rsquo;re not yet familiar with Git, or version control in general, you can read more about it
. In short, even if you have never written a single line of code &lt;em&gt;in your life&lt;/em&gt;, version control is a must for anyone routinely creating and editing documents of any kind. For now, suffice to say that Git has traditionally been a command-line tool and therefore mildly intimidating to those of us who found it with little experience. Recently, GitHub introduced a
which alleviates some of the hassles of interacting with Git via the command line. However, Atom takes this functionality and seamlessly integrates it within the environment where the work is being done. No longer do I need to switch windows to another app or terminal - I can immediately see the documents that have detected changes, stage and commit those changes and push to GitHub from &lt;em&gt;within Atom&lt;/em&gt;. More than this, Atom allows you to create and change branches, and push/fetch/pull from remote repositories all without ever having to change windows.&lt;/p&gt;
&lt;p&gt;One of the reasons I came to it in the first place was the flexibililty to create an Integrated Development Environment (IDE) for any programming language. An IDE typically provides comprehensive facilities to edit, build and debug source code for a given language. Atom has taken on this task to provide support for a long long list of the most popular languages. This is achieved via installation of community-driven packages - more on this in a little bit.&lt;/p&gt;
&lt;p&gt;Finally, Atom provides an interface for real-time collaborative coding. While I am yet to test this functionality, Atom&amp;rsquo;s &amp;ldquo;Teletype&amp;rdquo; promises the ability for users to share their workspace with team members and collaborate on code in real time using a shared portal. If you have used this feature, be sure to let me know how you find it!&lt;/p&gt;
&lt;h3 id="easy-extensions-size-may-not-matter-but-its-all-about-the-packages"&gt;Easy extensions: Size may not matter, but it&amp;rsquo;s all about the package(s)&lt;/h3&gt;
&lt;p&gt;They don&amp;rsquo;t call Atom the most hackable text editor for nothing! Although the Git interface is packaged as part of the raw Atom install, many of the other features I&amp;rsquo;ve already described rely on the installation of community developed and maintained packages. The variety and functionality of these packages is seemingly endless, and installing a new package is as simple as opening the settings view and searching for the package. No matter what language you intend to use Atom for (or even just for general editing of plain text or markdown documents), there are bound to be a few packages that will make life easier.&lt;/p&gt;
&lt;p&gt;Given Atom is agnotistic to language, there are plenty of packages for common languages like R, Java, C #…. If any of these is your language of choice, I encourage you to poke around online and see what packages people recommend. For the remainder of this post, I will focus on how I set up Atom as a home for my Python development and data analysis.&lt;/p&gt;
&lt;h3 id="accessorising-atom-a-python-perspective"&gt;Accessorising Atom: a Python perspective&lt;/h3&gt;
&lt;p&gt;When first learning python, I used Spyder as my development environment. After a while, I got itchy feet and investigated Sublime (another text editor) and was intrigued by it&amp;rsquo;s customisability. After a brief stint, it wasn&amp;rsquo;t long before I discovered Atom and, as they say, the rest is history! There are plenty of generic &amp;ldquo;how-to-set-up-Atom-for-Python&amp;rdquo; articles (you can find examples
and
), so I won&amp;rsquo;t spend too much time rehashing these here. Suffice to say, there are a few basic packages you will want to install to get the most out of Atom for your python projects. A few examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Perhaps my favourite aspect of Atom (and in fact the reason I know recommend it to everyone I help get started with python) is the easy integration with Jupyter. If you haven&amp;rsquo;t come across Jupyter yet, Jupyter Notebooks provide an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text in a whole host of languages. Notebooks support over 40 programming languages at the time of writing, including Python, R, Julia….This is managed through the installation of different
, and if you are keen to run additional languages then check out how to access different kernels
. In the case of python, IPython is the central dependency of Jupyter and thus is preinstalled. Jupyter Notebooks are in and of themselves a great environment for data cleaning and transformation, numerical simulation, statistical modelling, data visualization and much more. However, they require the analysis, version control and file management to be completed in different locations (other windows, apps, etc).
Enter
. This neat package brings all the functionality of Jupyter notebooks (documentation, in-line plotting and results etc) to your atom environment using the installed kernels. In my opinion, this is a must have for someone getting started with Python in Atom. To get started, follow the installation guide
. As a bonus,
is an extension package providing variable exploration in beta. If this is an IDE feature you cannot live without, check it out!&lt;/p&gt;
&lt;h3 id="better-than-basics-integrating-python-virtual-environments"&gt;Better than basics: integrating python virtual environments&lt;/h3&gt;
&lt;p&gt;Similar to Git, using virtual environments with Python (despite being important best practice!) can be extremely intimidating for a newbie. Again, having to make and activate virtual environments via the terminal, and keep track of potential leftmost to use, set the bar above what I could digest and integrate into my workflow initially. Without this essential tool, my base install of python became littered with packages, many of which had dependencies that broke other packages. And don&amp;rsquo;t even get me started on the nightmare that was needing a safe install of both Python 2 and Python 3 for different projects!&lt;/p&gt;
&lt;p&gt;Eventually, I got my act together and installed both
and
. If you need a little more advice, check out these great tutorials from
and
. For a little while, I was content that I could activate different environments if I desperately needed to - but was not overly inclined to use them on a regular basis! That was until I found the Atom package specifically designed to integrate this functionality:
. This package lets you activate different virtual environments from within Atom, and combined with Hydrogen&amp;rsquo;s kernel manageraesthetic can have complete control of the python environment within which you are trying to run code!&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2018/09/Atom-virtualenv1020x530.gif"&gt;
&lt;/figure&gt;
&lt;h3 id="further-reading-example-atomjupyterhydrogenvirtualenv-setup"&gt;Further Reading: Example Atom/Jupyter/Hydrogen/VirtualEnv Setup&lt;/h3&gt;
&lt;p&gt;As it happens, the inspiration for this post came from helping multiple new coders setup their Atom environment over the course of a few weeks. Using the resources I have shared above, I cobbled together a general use-case for installing these elements from scratch. If you already know the theory behind these components, then this guide should serve as a checklist to make sure each of the important elements are installed and have you up and running in no time!&lt;/p&gt;
&lt;h4 id="step-1-checking-your-default-python-install"&gt;Step 1: Checking your default Python install&lt;/h4&gt;
&lt;p&gt;Open a new terminal and check which version of python you are natively running using &lt;code&gt;which python&lt;/code&gt;. Most commonly, this will be Python 2, and thus every virtual environment you create will have this as a default. Alternatively, to set the default to Python 3, use &lt;code&gt;which python3&lt;/code&gt;, and note the directory address.&lt;/p&gt;
&lt;h4 id="step-2-install-virtualenv-virtualenvwrapper"&gt;Step 2: Install virtualenv, virtualenvwrapper&lt;/h4&gt;
&lt;p&gt;In this terminal window, execute the following commands to install virtualenv and virtualenvwrapper using pip. &lt;strong&gt;NB&lt;/strong&gt;: in my experience, MacOS has a weird way of installing things for the user, therefore include sudo with all pip commands to ensure they are installed to the generic directory.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo pip install virtualenv
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo pip install virtualenvwrapper
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="step-3-configure-virtualenvwrapper"&gt;Step 3: Configure virtualenvwrapper&lt;/h4&gt;
&lt;p&gt;Locate the .bash_profile file, and open in nano via &lt;code&gt;nano .bash_profile&lt;/code&gt;. To the bottom of this file, append the following lines:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="n"&gt;WORKON_HOME&lt;/span&gt;&lt;span class="o"&gt;=$&lt;/span&gt;&lt;span class="n"&gt;HOME&lt;/span&gt;&lt;span class="o"&gt;/.&lt;/span&gt;&lt;span class="n"&gt;virtualenvs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="n"&gt;PROJECT_HOME&lt;/span&gt;&lt;span class="o"&gt;=$&lt;/span&gt;&lt;span class="n"&gt;HOME&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;Devel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;source&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;virtualenvwrapper&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="n"&gt;VIRTUALENVWRAPPER_PYTHON&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;your&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;prefered&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;python&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Close nano using &lt;code&gt;esc, :x&lt;/code&gt;, then reload the bash file using &lt;code&gt;source .bash_profile&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To test virtualenvwrapper has been installed and configured correctly, run &lt;code&gt;workon&lt;/code&gt;&lt;/p&gt;
&lt;h4 id="step-4-create-virtual-environment"&gt;Step 4: Create virtual environment&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkvirtualenv SOME_ENV
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If desired, you can also direct virtualenv to a specific python exe to use (using the -p flag and full path to the relevant python exe)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkvirtualenv -p /usr/local/bin/python3 SOME_ENV
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="step-5-list-activate-and-deactive-virtual-environments"&gt;Step 5: List, activate and deactive virtual environments&lt;/h4&gt;
&lt;p&gt;You should now be ready to create and use virtual environments from the command line. To test this, run &lt;code&gt;workon&lt;/code&gt; and ensure the SOME_ENV is listed. To activate and deactivate this environment:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;workon SOME_ENV
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python #run python to check the version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;exit() #exit python to return to command prompt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;deactivate
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="step-6-install-relevant-packages-for-your-new-environment"&gt;Step 6: Install relevant packages for your new environment&lt;/h4&gt;
&lt;p&gt;Activate the environment of interest, then install any relevant packages using pip&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install SOME_PACKAGES
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Some useful PyPI examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pandas&lt;/li&gt;
&lt;li&gt;seaborn&lt;/li&gt;
&lt;li&gt;matplotlib&lt;/li&gt;
&lt;li&gt;xlrd&lt;/li&gt;
&lt;li&gt;xlsx-writer&lt;/li&gt;
&lt;li&gt;ipykernel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can also install packages from directly from a git repository using the -e flag for editable (great for packages under development!).&lt;/p&gt;
&lt;p&gt;Fork then clone a version of the repo to a known location on your desktop ( &lt;code&gt;git clone &amp;lt;URL-TO-REPO&amp;gt;&lt;/code&gt;), then install using pip:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python -m pip install -e &amp;lt;FULL_PATH_TO_REPO&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="step-7-install-new-ipython-and-configure-a-kernel-from-within-the-environment"&gt;Step 7: Install new ipython, and configure a kernel from within the environment&lt;/h4&gt;
&lt;p&gt;Install a fresh version of jupyter and ipython to your environment, then create a new kernel from within the environment for atom to use. Here, I generally title the kernel the same as my virtualenv, making it obvious that they should be run concurrently for consistency.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install jupyter, ipykernel
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ipython kernel install --user --name=SOME_ENV
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can then check the list of currently installed kernels, and should see your newly created kernel:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;jupyter kernelspec list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="step-8-install-atom-packages"&gt;Step 8: Install Atom packages&lt;/h4&gt;
&lt;p&gt;Open Atom and enter the Settings view to install atom-python-virtualenv and hydrogen.
After installing hydrogen, restart Atom to detect the installed kernels.&lt;/p&gt;
&lt;h4 id="step-9-using-the-virtualenvwrapper-package-in-atom"&gt;Step 9: Using the virtualenvwrapper package in Atom&lt;/h4&gt;
&lt;p&gt;Create a test.py file. In the bottom status bar, click the &amp;ldquo;no virtualenv&amp;rdquo; section, and select SOME_ENV. In the test file, attempt to import a newly-installed package and run the line using hydrogen (position the cursor within the import line, then &lt;code&gt;ctrl-enter&lt;/code&gt;). Atom should then prompt you to select the appropriate kernel via a pop-up menu, then process the code. If everything is configured correctly, the line should run without error!&lt;/p&gt;
&lt;h3 id="conclusions"&gt;Conclusions&lt;/h3&gt;
&lt;p&gt;Atom is a great multipurpose ecosystem with huge extensibility to tackle common tasks, both for general text documents and coding projects. There is support in the form of community developed packages, and complete customisability. By combining a few of these packages, it is possible to build a friendly development/analysis environment for those new to coding, or seasoned veterans alike, which encourages best practices at every turn.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s all from me for now - happy coding!&lt;/p&gt;</description></item><item><title>Toolbox talk: Trello</title><link>https://dezeraecox.com/toolbox-talk-trello/</link><pubDate>Thu, 30 Aug 2018 12:34:06 +0000</pubDate><guid>https://dezeraecox.com/toolbox-talk-trello/</guid><description>&lt;p&gt;As an early-career researcher, I am still figuring out the best way to &lt;em&gt;get stuff done&lt;/em&gt;. Every day it seems like my to-do list gets longer and longer, for every item I tick off two more take its place and I have no doubt it will only get worse. I am all about finding the best, most efficient and connected technologies to help alleviate some unnecessary legwork. After my first
, I have decided to write more on the programs, apps and integrations that I use every day starting with one of the newest additions: Trello!&lt;/p&gt;
&lt;h5 id="the-basics-what-the-tr-hell-o-is-all-the-fuss-about"&gt;The basics: What the Tr-hell-o is all the fuss about??&lt;/h5&gt;
&lt;p&gt;Trello is fundamentally a project management application with a simple but sophisticated hierarchical interface consisting of boards, lists and cards. Trello thrives in settings suited to
organisation. In the context of Trello, kanban is most often laid out as three stages (lists) - to-do, doing, done - and each element (or card) of a project (board) is represented within a list according to its state of completion. Elements progress through each list, giving a simple, visual overview of the project&amp;rsquo;s overall state.&lt;/p&gt;
&lt;p&gt;This style works well when you work alone on individual projects - but it is also something you could easily accomplish with a chalkboard and some post-it notes. Where Trello really comes into its own is the ability to share and collaborate, such that individual tasks can be assigned to different people, comments can be added to cards specific for that task, and everyone can know at a glance the current big picture.&lt;/p&gt;
&lt;p&gt;Trello is free (for the basic version, which is all I have needed thus far!), and accessible via the web interface, PC and iOS apps. It also integrates with all manner of other productivity apps, including GoogleDrive, GitHub, Dropbox, Slack, Evernote, OneDrive&amp;hellip; Together, these features enrich the functionality of boards, providing a kind of dashboard from which to tackle projects and giving unparalleled flexibility for teams with diverse computing and file storage preferences.&lt;/p&gt;
&lt;h5 id="trello-in-action-managing-your-research-projects"&gt;Trello in action: managing your research projects&lt;/h5&gt;
&lt;p&gt;First things first: keeping track of experiments. There are many many electronic lab notebooks currently on the market, and I have tried more than my fair share. If you are not stuck in your ways (like I am) I highly recommend shopping around and picking one that you can integrate into your work as soon as possible. Unfortunately, I am a control freak and I am yet to find one that fits seamlessly with my workflow, and so I have resorted to building my own system using Trello!&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2018/08/Trello-virtual-lab-book.png"&gt;
&lt;/figure&gt;
&lt;p&gt;The basic elements include lists for Ideas, Planned experiments, Lab work in progress, Analysis in progress, Ready to writeup, and Complete. Each new experiment or idea gets a card, for which I quickly note the purpose, reagents to be used, techniques and instrument details, and any pertinent references in the description. I then link this card (using the GoogleDrive powerup) to the folder containing the full experimental plan, results, analysis and write-up. The card then gets moved across the columns (lists) as each stage of the experiment is completed. For similar types of experiments, I have a checklist that allows me to easily track specific small elements of the experiment (e.g. plating cells, collecting results etc). If I complete a particular action for the experiment, I will also note in the comments any details specifically about that action. These comments are date and time stamped, helping to keep track of my activity on a day-to-day basis.&lt;/p&gt;
&lt;p&gt;Another awesome Trello feature is the ability to label cards with a customisable category, which appears as a coloured bar on the front of the card. I use this feature here to label experiments with which one of my (many) projects it is specifically associated with.&lt;/p&gt;
&lt;p&gt;This brings me to my second board - my project board. This is a board with which I track all of the ongoing projects I am involved in. There are lists for my individual projects (think: first author work), students projects I am involved with, collaborators projects, and ideas to keep in mind. The cards on each of these lists refer to a specific project, which can then also &lt;em&gt;link to another Trello board or card&lt;/em&gt; which contains information, ideas and important references specifically for that project. That&amp;rsquo;s right baby, it&amp;rsquo;s Trello-ception!&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2018/08/Trello-ProjectManuscript-outline1020x572.gif"&gt;
&lt;/figure&gt;
&lt;p&gt;Along similar lines, I have a board for manuscripts which tracks each manuscript I am involved in (cards) as they progress from the first draft to submission to revision to (if I&amp;rsquo;m lucky!) acceptance. In this case, labels are assigned to indicate my author position, and whether my contribution is required to move the article to the next stage. Individual cards link to additional Trello boards for each manuscript (normally only those for which I am the first author) where I can store more detailed information and ideas, tasks etc in a kanban layout.&lt;/p&gt;
&lt;p&gt;By starring the top-level boards for Projects, Manuscripts and my Virtual Lab Book (starring is an inbuilt Trello function that allows you to favourite boards to be displayed at the top of your home page) I can easily get an overview of current progress, then by clicking a specific project or manuscript card I am automatically linked to all the more specific information I might need when working on that project, article or experiment.&lt;/p&gt;
&lt;h5 id="the-bigger-picture-managing-your-science"&gt;The bigger picture: managing your science&lt;/h5&gt;
&lt;p&gt;When I first started with Trello, the ability to modularly (and very visually) manage and monitor my projects was a great tool. Since then, I have expanded my use of Trello boards to include the peripherals necessary for managing life as an ECR. Things like how to prioritise your workload, manage your short-term and long-term goals and keep on top of your reading list all become easier using Trello. My most recent addition was a prioritisation board, based on the priorities list shared by Corey J. A. Bradshaw in his amazing book &amp;ldquo;The Effective Scientist&amp;rdquo; (stay tuned for a book review - I really cannot recommend this book highly enough!). In short, Bradshaw runs through an exemplary list of how to prioritise the many competing interests vying for the time of an academic to get the maximum bang-for-your-buck in terms of career returns. These include things like writing articles, doing experiments (duh), helping students and colleagues, social media and writing grants.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2018/08/Trello-Prioritisation.png"&gt;
&lt;/figure&gt;
&lt;p&gt;When I first filled in all of the elements of the board, I realised just how unbalanced I have been in allocating time to each of these aspects. It was a great way to put into perspective where I should be spending the majority of my time and revisiting this structured big-picture priority list once a fortnight has helped refocus my research output.&lt;/p&gt;
&lt;h5 id="resources"&gt;Resources&lt;/h5&gt;
&lt;p&gt;That&amp;rsquo;s enough from me for now - if I have convinced you to give Trello a go, there are a couple of handy links below. I have included template examples for each of the board types that I mentioned above: feel free to use, abuse, copy and manipulate them to fit your own workflow, I honestly believe one of the best assets of Trello is it&amp;rsquo;s customisability - so don&amp;rsquo;t be afraid to make it your own. Just be sure to let me know if you find it helpful!&lt;/p&gt;
&lt;p&gt;Template boards:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;
&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;
&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional info (from those who&amp;rsquo;ve said it better than me!):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Happy organising!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Image credit: @sidneyperryphotography via @unsplash&lt;/p&gt;</description></item><item><title>a weekend walk around the Bokeh library</title><link>https://dezeraecox.com/a-weekend-walk-around-the-bokeh-library/</link><pubDate>Sun, 13 May 2018 11:13:53 +0000</pubDate><guid>https://dezeraecox.com/a-weekend-walk-around-the-bokeh-library/</guid><description>&lt;p&gt;If you&amp;rsquo;ve read my &lt;strong&gt;
&lt;/strong&gt;, you will know that I (somewhat arrogantly) consider myself &amp;ldquo;a passionate advocate for the use of programming by life scientists&amp;rdquo;. This came about following my Cambridge trip during my doctoral degree, in which I began to code analysis programs to derive meaning from the large (tens of gigabyte) datasets that we were collecting on a daily basis. At the time, I first learnt IgorPro - a proprietary language used by the other members of my host lab. While it was a steep learning curve, I was hooked. The power of being able to analyse huge reams of data without a single copy-paste-formula manouver normally completed in spreadsheets? Sign me up! Take out the human error of transferring data from program to program (Excel, GraphPad&amp;hellip;) to achieve a result? Tell me more!&lt;/p&gt;
&lt;p&gt;After my initial introduction, I quickly went in search of a more versatile language to learn. I disliked the feeling of being locked into the facilities provided within the commercial platform, and was tired of not being able to easily find support for this program online. And so, I met &lt;strong&gt;Python&lt;/strong&gt;. And boy, did we hit it off! Python is easily the most friendly programming language I have come across, it is versatile and open source, the community is amazingly friendly, and I am yet to come across a problem I can&amp;rsquo;t solve via a quick trip to StackOverflow (seriously, where would I be without you guys?).&lt;/p&gt;
&lt;p&gt;Little by little, I have worked on building my skills and I learn a little more each day. For a while now I have been comfortable writing small scripts that assist in my data analysis and plotting needs. However, I was yet to venture into the world of interactive plotting. I have always been intrigued by all of the different ways we can visualise data, and believe interactive plotting is a great way to allow both myself and someone else to &lt;em&gt;explore&lt;/em&gt; a dataset. With this in mind, I set out this weekend to explore an interactive plotting library in python - &lt;strong&gt;Bokeh&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&amp;ldquo;Bokeh is an interactive visualization library that targets modern web browsers for presentation&amp;hellip; Bokeh can help anyone who would like to quickly and easily create interactive plots, dashboards, and data applications.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sounds pretty good right? So, I gave it a go. As a test dataset, I decided to recreate the scatter plot from a &lt;strong&gt;
&lt;/strong&gt; published by our group for which the supplementary data is readily available. This plot displays the proteins whose cysteine residues significantly changed their reactivity following treatment with the drug Tunicamycin (an inducer of endoplasmic reticulum stress). Below you can find my version of Figure 6b, constructed as it is displayed in the article using Excel and GraphPad.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://dezeraecox.com/uploads/2018/05/manuscript-figure-tunicamycin.png"&gt;
&lt;/figure&gt;
&lt;p&gt;To recreate this plot in python, I took the raw data and constructed the scatter plot, colouring each datapoint according to the level of significance (as determined by the p-value). I also mapped the gene names associated with each datapoint via the &lt;strong&gt;UniProt API&lt;/strong&gt; (a second learning exercise for this weekend!). This provides a second layer of data which I used to create the interactive feature of the graph - instead of displaying static names for only a few of the genes (which is limited by the need to not overcrowd the plotting area), gene names and ontology information is displayed by hovering over the point of interest. My final product is below - go ahead, give it a try! I found it super simple to embed the output here, plus there is also some handy toolbars provided by Bokeh out of the box that allow the plot to be saved to png or svg from the current view.&lt;/p&gt;
&lt;p&gt;Bokeh Plot&lt;/p&gt;
&lt;p&gt;I must say, I have been thoroughly impressed so far. Bokeh makes it extremely easy to build simple plots from existing pandas dataframes (think: spreadsheets) and to overlay interactivity without too much extra hassle. It offers the ability to completely customise the plots and layouts with widgets and extra functionality, although I think even the standard plotting elements I used here look pretty stunning in comparison to the original version!&lt;/p&gt;
&lt;p&gt;So, here it is - my first passionate post about the benefits of programming for life scientists. Even if you take away the amazing benefits of reproducibilty, shareability, scalability and efficiency - the sheer ability to easily produce stunning visualisations that can be shared is a great asset. If you haven&amp;rsquo;t jumped on the programming bandwagon yet, what are you waiting for??&lt;/p&gt;</description></item><item><title>what to do when you can't get a word in edge ways</title><link>https://dezeraecox.com/what-to-do-when-you-cant-get-a-word-in-edge-ways/</link><pubDate>Sat, 28 Apr 2018 03:45:17 +0000</pubDate><guid>https://dezeraecox.com/what-to-do-when-you-cant-get-a-word-in-edge-ways/</guid><description>&lt;p&gt;I don&amp;rsquo;t believe in resolutions, mostly because I have finally learnt (after 20-something years) that I will never stick to them. However, January 1st this year saw me looking to make a few key changes in my lifestyle. A few of these resulted from lessons I learnt throughout 2017 (you can read more about those
), and some were personal decisions that I felt would contribute to my mental, professional and physical health. One of those decisions was a commitment to reading and writing more. What you see here is my attempt at writing - but what about reading? I consume a steady stream of media everyday, and I decided it was high time that I put the constant onslaught of information to better use - to make it work for me, instead of feeling like I was drowning under it&amp;rsquo;s weight. My answer to this challenge came in a few forms:&lt;/p&gt;
&lt;p&gt;1.   &lt;strong&gt;A new system for prioritising and tracking purely scientific reading.&lt;/strong&gt; This includes journal articles and media pieces with direct relevance to my current project, or project ideas that I hope to pursue one day. For more on my new system, and how I automate some of the process, keep an eye out for a future post coming soon.&lt;/p&gt;
&lt;p&gt;2.    &lt;strong&gt;A more balanced and positive social media environment.&lt;/strong&gt; For me, this meant migrating to Instagram and Twitter (in favour of Facebook). Given I was a relative late comer to Twitter, I was able to curate my social network to generate an environment filled with positive stories, useful information, scicomm and professional opportunities etc. Not only does my time spent on these social channels no longer feel cumbersome and negative, but I have also found a brand new way to stay up to date with new science and funding opportunities, as well as a group of positive uplifting scientists working to effect real change in the systems they see failing scientists (and particular female scientists) worldwide.&lt;/p&gt;
&lt;p&gt;3.    &lt;strong&gt;A conscious effort to read something for leisure.&lt;/strong&gt; While I allowed myself to choose books loosely based in science, it had to be in an expanded real-life paperback-in-hand book (no online journal articles) that I would sit with and focus solely on for at least half an hour at a time. I have only managed a single book this year (more on that
), but these &amp;lsquo;unplugged&amp;rsquo; moments have helped anchor my self-care for the past few months. I find it refreshing to have a single focus for a defined time period (no electronic attention-grabbing distractions), and it was great to stretch my mind and take in broad science outside my niche that was designed for a popular audience.&lt;/p&gt;
&lt;p&gt;After almost four months, my media-rich life is finally beginning to feel manageable. Tackling the barrage of text and images head on, I have found a balance between reading I have to do (articles), reading I am inevitably going to do (socials) and reading I would like to do (books). And if nothing else, this really reinforces for me the biggest lesson of 2017 - call it yin and yang, call it &amp;hellip;  call it whatever you like - it&amp;rsquo;s all about the balance!&lt;/p&gt;</description></item><item><title>My toolbox: 2018 Edition</title><link>https://dezeraecox.com/my-toolbox-2018-edition/</link><pubDate>Tue, 28 Nov 2017 10:27:50 +0000</pubDate><guid>https://dezeraecox.com/my-toolbox-2018-edition/</guid><description>&lt;p&gt;After coming back from a wonderful conference, I feel refreshed. I heard a lot about the state of my field of research, the cutting edge ideas and the direction our research is taking. You can read more about it
.&lt;/p&gt;
&lt;p&gt;Of course this aspect of science is important - the research outcomes, equipment and techniques we use are all critical pieces of information that make up the substance of oral and poster presentations. However, this year&amp;rsquo;s conference brought with it a stark realisation. I feel there is a large part of the conversation that is missing that is equally as important.&lt;/p&gt;
&lt;p&gt;In fact, I think it is the true essence of how it is that we do what we do.&lt;/p&gt;
&lt;p&gt;How do we, on a daily basis, manage a varied and conflicting schedule with experimental, administration and personal demands? What are the tools and techniques the help us balance these elements with efficiency and efficacy, ensuring nothing falls through the cracks?&lt;/p&gt;
&lt;p&gt;I guess in a sense what I am talking about is a best practice discussion for the practicalities of doing research. Not a one size fits all approach, but at least a discussion of how the tools I use are beneficial and what I think I could use or need more of. While this may not fit a conference panel, here is my current toolbox.&lt;/p&gt;
&lt;p&gt;
 This one is definitely top of the list, one of the more recent additions but easily the most life changing. This is essentially my digital brain, the place where I collect, sort and store information. Everything from web clippings (using my handy integrated chrome extension), papers of interest, post ideas, project ideas, meeting notes to shopping lists - it all lives here. Completely synced across all my devices, and easily searchable. All of the major &amp;rsquo;life&amp;rsquo; aspects have a notebook folder (e.g. manuscripts I&amp;rsquo;m coauthoring) with notebooks for each element (e.g. &amp;ldquo;Paper Name #327&amp;rdquo;), and individual notes for each idea or aspect of that element (e.g. introduction ideas, responding to reviewers comments etc). I think of this as a virtual brain dump - so that as long as I remember a particular piece of information is in evernote, I know it will always be there when I need it.&lt;/p&gt;
&lt;p&gt;
 My digital assistant. I use Calendar to manage meetings, equipment bookings and deadlines. In addition, the daily tasks feature keeps track of experiment steps or analysis projects. For me, this is one of the most crucial features, for a couple of reasons. First, tasks can be assigned to a specific day and live above that day in the calendar. This makes it easy to see what I need to do for the day, as well as what times I will have to play with. Second, I get to tick off completed tasks! I have found the most effective way to keep momentum is to break everything into small, manageable elements, so 8-10 specific tasks that give me a sense of accomplishment each time I tick off something. Finally (and most importantly) tasks are easily reassigned to other days using drag and drop. This means that it is so easy to be flexible, and doesn&amp;rsquo;t require tasks to be rewritten as with typical hand written to-do lists.&lt;/p&gt;
&lt;p&gt;Drive at the moment is simply my backup storage place that provides some functionality when my hard drive is not plugged in. In some situtations it is really helpful to share documents and easily manage sharing permissions, although I dislike having to download and resync non-google files. I am still figuring out how best to incorporate this into my workflow.&lt;/p&gt;
&lt;p&gt;
 Basically a freeware version of adobe Illustrator, I use Inkscape for all figure preparation. This includes figures destined for manuscripts, posters, or presentations. But also just as a neat way to collate image data from experiments. I am yet to come across something that I have wanted to do with a figure that Inkscape can&amp;rsquo;t handle. There is a relatively steep learning curve, but for a piece of free software it is remarkably versatile. One thing I will note is that it does not play well with iOS (admittedly this is not from personal experience, but from colleagues who have had a tough time getting started), however windows works well.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;
&amp;amp;
:&lt;/em&gt;&lt;/strong&gt; As a self-taught python enthusiast, I am always looking for the best way to write, edit and run code to analyse my ever-growing data sets. This is my current configuration (although I have been through many others - Spyder, Jupyter, Sublime to name a few) and I am happy with the ease with which I can run scripts within atom, as well as manage my git commits with a few keyboard shortcuts. As someone relatively new to git version control, being able to see the folder layout and files which require an updated commit is incredibly helpful. Also, the ability to test, then tweak my code using attached iPython kernels within the editor is a great time saver.&lt;/p&gt;
&lt;p&gt;
 Until very recently, I was an EndNote purist. I was first given access during my Undergraduate degree, and it did a wonderful job at managing my bibliography compared to the manual method. So I amassed a reference library, despite many issues leaving me disgruntled, and established a pipleline that included downloading the referencing file, downloading and saving the pdf separately, and then linking the two together using EndNote. To find articles, I would search in EndNote then locate the pdf and open it to view my notes and highlighted sections. If I lost you there - apologies - but it goes to illustrate my point: long and tedious. I have recently rediscovered Mendeley, and in terms of accessibility to my articles and notes, and ease of import, Mendeley beats EndNote hands down: click the Mendeley extension in my browser (or drag and drop to import a pdf), add notes/highlight and that&amp;rsquo;s it. All managed and searchable within a single program, again synced across all my devices. There are still a few kinks to work out (sometimes the imported reference information is a little clunky) but overall much more functional.&lt;/p&gt;
&lt;p&gt;
 I have recently come across the idea of &amp;lsquo;story-boarding&amp;rsquo; an article during the initial planning and write-up phases. Coming into a new lab, my writing style was at odds with my new boss and needed a little TLC - I am great at the technical reporting language but struggle to tell a narrative. The basic idea behind story-boarding is to layout the elements of a manuscript as discrete chunks and move them around like puzzle pieces to get the flow right. This also helps to identify holes - more experiments or more detailed analysis etc. I am using Trello as a way to trial this concept - each manuscript gets a &amp;lsquo;board&amp;rsquo;, the lists correspond to &amp;lsquo;Intro&amp;rsquo;, &amp;lsquo;Methods&amp;rsquo;, etc. and cards are tiny chunks - text prompts for the intro, individual figures or panels for the results. While this is the newest addition to my workflow, and firmly still in the trial phases, I am pleased with the outcomes so far. It has encouraged me to think about what papers I am working towards (helping to focus my research), as well as getting me thinking about the story to go with it.&lt;/p&gt;
&lt;p&gt;So there you have it - my toolbox. It&amp;rsquo;s worthwhile noting that many of these I adopted from watching/hearing how someone else achieves a particular goal and making it work for me. I hope you find something new and useful, or maybe you have some ideas for something better? Feel free to let me know in the comments - I&amp;rsquo;d love to learn from you!&lt;/p&gt;</description></item><item><title>ideas on what helps and hinders symposium speakers</title><link>https://dezeraecox.com/ideas-on-what-helps-and-hinders-symposium-speakers/</link><pubDate>Mon, 27 Nov 2017 20:28:25 +0000</pubDate><guid>https://dezeraecox.com/ideas-on-what-helps-and-hinders-symposium-speakers/</guid><description>&lt;p&gt;During the recent
, a friend was scheduled to give a talk about her work. Sitting in the audience watching a parade of marvellous speakers is a special kind of torture, when you are convinced you could not possibly achieve a similar performance. I should know - until the very last year of my PhD, I was not a very talented communicator either. However, after a venture overseas and a stint in a different lab, I found my voice. I wouldn&amp;rsquo;t say I&amp;rsquo;m brilliant (far from it), but I have realised the importance of this aspect of science communication and worked hard at being able to at least stomach the idea.&lt;/p&gt;
&lt;p&gt;My friend asked how I&amp;rsquo;d done it. How do you overcome the paralysing fear most people associate with public speaking? I didn&amp;rsquo;t really have an answer for her at the time - I encouraged her to be confident, which is of course the main ingredient. However, I have thought about it since then, and while watching the remaining conference talks I came across a few things that as an audience member I think can make or break a presentation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Don&amp;rsquo;t repeat your talk name and title&lt;/strong&gt; - people can read the program and your first slide (we are mostly smart cookies after all), and it is the job of a good session to chair (also presumably a smart cookie) to give those details when they introduce you. Instead, open by thanking the organisers for the opportunity to present some exciting new work, and a one line teaser to grab the audience - tell them why they should pay attention RIGHT NOW, and not wait until five minutes into your talk. If you don&amp;rsquo;t have them at the beginning, there will be no getting them back.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Oh, you&amp;rsquo;re skipping your introduction? Because EVERYONE ELSE has given this intro? At a conference specifically about your topic? NO WAY?! &lt;strong&gt;Think about your audience early on in the talk&amp;rsquo;s preparation stage and don&amp;rsquo;t be afraid to adjust&lt;/strong&gt; on Day 1 of a three day event. If available, check out the program/other abstracts early, highlight talks with relevance to yours and gauge the level of any remaining introduction that you will need to give. Being able to refer to someone else&amp;rsquo;s intro not only shows you have engaged with the symposium but also gives you more time to go through the exciting bits (your results!)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Keep it simple, stupid.&lt;/strong&gt; Most of the time you will have a very short window in which to convey your story, which will inevitably be the result of months and months of your blood, sweat and tears. Trying to cram too much into this time window makes your story confusing and hard to follow (10 tiny bar graphs on one slide, anyone?) and people will loose interest. Focus on a simple message, tell people what they need to understand that message, tell them what the message is, then reiterate why your message is important. Simple. As a bonus, people will chase down details with questions, avoiding the dreaded crickets-and-tumbleweeds at the end of a particularly confusing or dense talk.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; Following on from this, constantly telling people you don&amp;rsquo;t have time to present this, that or the other (in an effort to keep the slides simple), sounds arrogant and selfish - &lt;strong&gt;figure out a story that you CAN tell in the allocated time&lt;/strong&gt; and reiterate that you are happy to talk details during the breaks.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Fake it till you make it.&lt;/strong&gt; This one has stood the test of time, and for good reason. So much of our perception of a good presenter is taken from their physical cues - and that stems entirely from confidence. If you are nervous beyond belief and terrified of doing something wrong, that will inevitably come through in your body language. If you own your talk and your work, that will come across instead. I think of this like you are the pilot of a plane - if you sound scared and uncertain, your passengers are going to be unsettled and anxious, leading to this cycle of negative reinforcement. If instead you get on the PA system, calmly detail the weather or flight plan (how would they really know how high you&amp;rsquo;re going to fly??) and make them believe you are in control of the situation, your passengers (the audience) will be calm and the atmosphere relaxed. Everyone will make it out alive and live happily ever after. Or so we hope.&lt;/p&gt;
&lt;p&gt;Got any good tips that I&amp;rsquo;ve missed? Let me know your secret ingredient!&lt;/p&gt;</description></item></channel></rss>