Open Source Programs & Coding in a New Environment
Recently, I visited the Joint POW/MIA Accounting Command Central Identification Laboratory (JPAC/CIL) at Hickam Joint Base in Honolulu, Hawaii. (For another post chronicling my personal experiences, click here.) Although the big name is complex, you might guess from the “POW/MIA” part of it that their mission is to identify and bring home all unaccounted-for American military servicemembers. What I did there relates to the “Until they all come home” mission, but mostly I worked on a methodological research project. This means I was in the lab daily, playing with some really expensive toys and using open source software in ways I hadn’t before.
In addition to a NextEngine scanner (3D-imager), I used Meshlab and R Project for Statistical Computing. Meshlab simply processed our 3D triangular meshes (manipulating those images reminded me of the behind-the-scenes videos of Pixar!). On the other hand, R is a flexible environment in which the user can generate code to do all sorts of statistical manipulations (things that SAS and SPSS are often used for in data analysis). The con here is that is it so flexible that all you get is a blank box – no buttons or menu options to run a two-way ANOVA, no Pearson’s T-tests, no nothin’. Wandering around in this environment can be disorienting, if you have no information yet and no points of reference.
Therefore, here is some advice on how to get started from square one.
- Read the introduction. Basic, yes, but making sure to actually, read the instructions (or at least skim them!) makes a big difference when you’re starting out.
- Use the literature. R contains within it a lot of documentation. It allows you to ask for help within the text box – just put a question mark before the unknown term. In the help menu, there are also Manuals in PDF that outline how to accomplish most basic things.
- Ask for help. Of course, writing statistical code from scratch is fun, but when you are a novice like me, it’s pretty mind-crushing. Two strategies are useful here. One, use the online archive (CRAN) to find packages that already exist as plug-ins. And two, get into the backdoor of some code and find the tools you need within it. That is, open up a “.r” file in a text editor like Notepad++ and cut and paste their techniques like summing the squares of all cells in a table.
These strategies are pretty widely applicable and similar to how I learned to negotiate JQueryMobile files (their documentation). I downloaded the html generated by Codiqa to see different things like collapsible text-boxes in action, and then was able to cut-paste and manipulate them to do new things for me. After going through this process a few times over the course of this year, perhaps these tips will save other noobs some hair-pulling.
Additional information on the tools described above is available in: Stephan CN, Emanovsky PD, and Tyrrell AJ. 2011. The use of clavicle boundary outlines to identify skeletal remains of US personnel recovered from past conflicts: results of initial tests. In: Lestrell PE, editor. Proceedings of the First International Symposium of Biological Shape Analysis. 2009 Jun 3–5. Tsukuba, Ibaraki, Japan. Singapore: World Scientific Publishing.