This is the first of two posts on setting up a research project — find part 2 here!
Like any student starting a new research project, at the beginning of my PhD I faced a steep learning curve with lots of papers to read and new data to wade through. Setting up my computer for this new project didn’t seem like a priority, and so it fell by the wayside. Two years later, I’ve received a lot of useful advice that I wish I had known at the beginning. Putting the effort into setting up a research project well can save you time, energy and a lot of frustration in the long run. Here are a few tips from myself and other grad students in my department!
Note: Previous astrobites have covered lots of software and tools in more detail — this software guide, and tools for reading papers 1, 2 and 3 are all full of really useful advice. Here I will focus on strategies rather than specific software, though I have thrown in a few recommendations. I use Linux operating systems and code in Python, so a lot of my suggestions are tinged with this experience, though there are almost always Mac and Windows alternatives out there.
Establish an organised directory structure
When beginning a project there are a few things to anticipate that can help keep track of your work as it progresses, like disk space, structure and naming conventions. If you are collecting data, do you have a sense of how much disk space you will need to keep it all in one place? (hint: probably more than you think). Where can you keep the output of your simulations? Ashamedly I admit, I have moved my data directory three times as it kept growing and I kept running out of space. Planning ahead, if possible, can save trouble later on in your project.
Once you’ve found somewhere for your data, just keep your data there — create a structure where your data, code, and files for writing up are kept in three separate directories. This helps keep things tidy and manageable. Back it all up as often as you need to. If you’re working at a university, many have a system of backing up particular servers periodically, so find out where you can keep your work that is safest. If on your own computer, consider using cloud storage. Services like Dropbox, pCloud and Onedrive offer online file hosting which can synchronise with directories on your computer, which takes backing-up off your to-do list and means you can access your work from any computer.
Using sensible naming conventions can also save a whole lot of confusion later on — for example, use the date format YY_MM_DD, so your notes from April don’t end up ahead of those from March (yep, been there). If you know that your code will output 100 similar files, start naming them file_001 rather than file_1 — the leading zeros will keep everything in order. Make file names descriptive, and anticipate the changes that will be made in future, to prevent situations like this:
While it is certainly possible to get through a PhD by printing articles out and stacking them in a pile on your desk, it’s probably not the most efficient strategy. Chances are you’re going to have to read — and then later reference — a lot of papers, so using some kind of citation management system will help you out with that. Personally, I use Zotero — a piece of software which allows you to save, sort and add notes to articles from arXiv or elsewhere. You can then export a bibliography, as an automatically generated BibTeX file — a widely-used and incredibly useful bibliographic structure, which if you write up your work using LaTeX will save hours formatting references. There are lots of similar alternatives, such as Endnote, Mendeley and Jabref. ADS, the Astrophysics Data System that most people use to search the literature, has a built-in system allowing you to store references in personal libraries and export bibliographies later. Figure out a system that works best for you and integrates well with your choice of operating system and browser.
Keep a log file
Keeping comprehensive notes on how your project progresses can be invaluable, and in the best case makes writing a paper — or even your thesis — straightforward, as you have already documented your progress. This is a great use of Jupyter notebooks if you code in Python, as they allow you to see the output of code, such as plots, alongside written notes. Another way to keep a log is in a LaTeX file. LaTeX is a tool used by most astronomers for writing up their work, and keeps everything neatly formatted. There’s a great astrobite guide to LaTeX here. Both LaTeX and Jupyter allow you to easily integrate both written notes and plots. I also keep an old-fashioned paper notebook for jotting down thoughts quickly, but always try to write these up as soon as possible in a log file: Ctrl+F is certainly much quicker than rifling through pages of my incoherent scribbles.
These are just a few things that, having learned the hard way, I have now implemented as I embark on a new research project with high hopes of keeping my work more organised than ever before! It seemed like a lot to get to grips with at first — I asked a more experienced student to help me set everything up, and learned a lot from their experience, so don’t be afraid to ask for help. Now that I have these systems in place, my workflow is much smoother and better organised. More in part 2 to come, focusing on ways to keep code tidy!
Thanks to all the advice from PhD students at the University of Hertfordshire in putting together this article!