As the title states, what are things that you wish you knew when you first started doing bioinformatics work? This can range from pitfalls that you later learned to avoid, tips and tricks that make life as a bioinformaticist easier, resources that have proved especially helpful, particular philosophies/modes of thinking that have been beneficial, etc. This can range from analysis to software development work.
A few things I can remember off the top of my head:
- Resources like Biostars and StackExchange sites that many people don't know exist.
- The benefits and proper use of version control (git/Github).
- Environment management (conda, docker, etc).
- Attempting to reinvent the wheel rather than modifying/utilizing existing tools & ecosystems (Biopython, Bioconductor, etc).
- The entire concept of scope management, and by association, feature creep.
- Analysis paralysis and the recognition that no analysis is perfect.
- The value of exploratory analyses and proper QC.
- "Wading" through the data is not a waste of time.
- Recognizing that no analysis can supplant proper experimental design.
- Analysis documentation is as critical as experimental documentation.
- Allot at least twice the amount of time for a given analysis as you expect you'll need.
- Setting realistic time tables in general.
- Some analyses just will not work out, just as some experiments do not. These are often not personal failures, just the nature of science.
- GIGO. Garbage in, garbage out.
- An analysis on garbage data will result in garbage results/conclusions. "Do what you can" is what you hear before sound science dies.
- If you can't interpret the output of an analysis, you likely aren't prepared to perform it properly.
A few other things after a bit more thought:
- Data munging is critically important, time-consuming, and ultimately boring. Sticking to pre-defined formats wherever possible make this much less annoying and improve interoperability.
- For the love of the science gods, please do not create your own custom file format - there is almost certainly something out there that fits your purpose.
- Don't use a complicated 3000-watt Heavy-Duty Demolition Concrete Jackhammer when a simple hammer will suffice.
- Where possible, keep things simple. Performance takes a backseat to usability and clarity, particularly for scripting purposes.
- Learn to use tests if doing any development.
- Patience. You will not become a master over night, just as you weren't performing complex experiments before you learned to even pipette.
I welcome any and all other thoughts and contributions.