Positive interactions between plants and animals create habitat infrastructure on which many species rely, especially when the promotion of foundation species is involved. Mutualistic interactions between plants and birds (like pollination or seed dispersal) are dependent on both plant and bird phenology or cyclic/seasonal changes. However, phenology is plastic as photoperiod and temperature largely determine flowering & fruiting for plants and migration & breeding for birds. As our climate changes and habitats degrade, we must understand what interactions are at risk. That’s why, in this study, we examined the relationships between birds, their community, their behavior, and their microhabitat associations.
Follow this link to view my progress report presentation for March 2020, or follow this link to view the slide deck of the presentation.
3D printing may seem like a hyper-modern, futuristic tool from Star Trek or Doctor Who. But the first comprehensive outline for the technique was described in 1974 (by David E. Jones), and was in practice at some manufacturing companies all throughout the 80’s. Most popularly, it’s a great way to design prototypes of complex machine parts that have unusual shapes. But now it’s a common technique for most inventors, as well as hobbyists who have small, affordable 3D printers at home. And in many cases, it’s available for a small, small cost at your local library with the help of tech experts.
The Printing Process
The printer’s function is important for all aspects of the project, from design, to printer settings, to finish. The project doesn’t just magically appear, but (most commonly) is created using “fused deposition modeling” (FDM). Essentially, this means that the printer melts the material, and squirts it out on a the printer bed. But it doesn’t just squirt out a whole product. It lays out a thin layer of plastic on the printer bed’s plane. After that layer is done, the printer prints another layer on top of it, repeating the process until the project has taken shape.
There are lots of parts to a printer, but I’ll lay out a few that will make further explanations easier to understand.
Print bed: the flat board that the material will land on. Think of as you bottom, or even x-axis and z-axis plane.
Hot end: the nozzle that the printing material will squirt out of once melted
Extruder: the chamber where the material is melted for printing
Filament: the plastic tube string that is the material for printing
Designing a Project
Designing your project is the most creative part of the process, and there are lots of platforms (free and not) to design on. I like to use TinkerCad, since it’s open source, online, and relatively user friendly. It’s great for hobbyists, or non professional designers, and it’s outputs are compatible with most printers we’ll run into. For a quick and comprehensive tutorial, check out this Tinkercad video.
Since the printing process is essentially layering plastic on itself, you can see why you can’t just print any sort of shape imaginable. The printing process relies on gravity, and each layer must print on something else. Sturdy, solid objects are generally easier to print than thin, flimsy ones. Sometimes this can be as easy as laying the object in a different way on your bed. For example, if I wanted to print something shaped like a pencil, it would be easier to lay the pencil on its side in the design than on it’s eraser. But that doesn’t mean we can’t get creative with our designs! I’ll explain how to get around the little problem of gravity later in the print prep section.
Here are some tips to keep in mind while designing that I came across.
Use the copy+paste option whenever there’s a repeating element. It saves so much time, and keeps things consistent.
When you use copy+paste, try and use the arrows on your computer to re-position the new element, especially if you want it to remain even to the original in at least 1 of the 3 planes (x, y, or z).
Group elements as you go, especially for repeated elements that might need a bit of adjusting as you go.
Keep gravity in mind! Floating objects will just fall to the ground in a clump when you actually try to print them.
Make sure different elements are securely connected. If elements are only barely touching, they’ll probably fall apart in real life.
You can only use one color when printing, but you can always paint your object afterwards if you like/have the time.
Think about material availability if you’re printing lots of copies. There won’t be endless filament, especially if you need them all to be the same color.
Export your project as .obj, and save onto a flash drive if you are going to print at the library.
Once you’ve designed your project in TinkerCad, you’ll take that file to the printer. For our group, we like to use the Toronto Public Library’s Fort York Branch. They have some great techs there that help with design, prep, and machine work, and the price is one 10 cents per gram (that is a steal). They have several brands of printers, and certain printers require certain software programs for you to prep your design in. All you need is a library card!
Prepping is the step when we make decisions about settings for the printing project. This includes things like layer size, supports, rafts, and other things specific to the printer in question. After you’ve personalized each setting, you’ll save that new file to an SD card, and insert that SD card into the machine itself. (At the library, the techs will help you with this part).
Basic settings will work for most projects, but as you get more advanced, it’s nice to have some options to optimize your printing. When changing settings, always take into account the print time (it can get very long if you’re not careful) and filament use (you don’t want to be wasting filament on extras you don’t really need).
When part of your design “overhangs” the previous layer, you can employs a printing strategy called supports. These are essentially buttresses that the program will insert for you once you are prepping your final print. These supports print underneath the project itself, and are removable (but be gentle when you snap them off!).
Rafts are another type of support, that are helpful when you have a project that needs a strong base. It prints a thin sheet of plastic that you’re design will be printed on. This makes your project a lot longer to print, but is necessary when the bottom of a project isn’t simple.
Layer size will determine the thickness of each printed layer. The thicker the layer, the coarser the design will be, so if you have a very detailed design, I would recommend making it a smaller layer size. However, smaller sizes take a lot longer to print, so if your design is a simple shape, keep if coarse.
3D Printing is Versatility
It’s not only printing objects themselves that 3D printing can be useful for. A common practice is printing molds of objects that you’d like to make copies of. This is a great option if you think you might need to make more in the field (when you don’t have access to a printer). Resin, plaster, rubber, and cement are all common mediums for mold making, and can be bought at most hardware stores.
3D printed objects are also great replacements for machine parts that have gone missing, or need customization. Need a new handle for your net? A back for your GPS unit? A special box for strangely shaped equipment? You can absolutely 3D print that! And on top of that, superglue works great with 3D printed materials, so you can print parts and combine later.
I got into 3D printing for creating mimics of cactus fruits, which are a strange shape that I can’t find in any shop (scientific or otherwise). So for experiments when you need a control for shapes (this is great for facilitation experiments), 3D printing your objects is an excellent option.
It may seem intimidating, but 3D printing is an accessible tool that can be learned in an afternoon. And you might even find yourself making some projects just for fun!
All field scientists know that getting out into nature to do your work means problem solving. Usually, you have to do this on the fly and with limited time, internet, communication… limited everything basically. But that’s where the creativity and decision making skills come in handy. Sometimes it’s a simple obstacle like breaking your tape measure or cactus spines lodged in your shoes. But then other times, it’s a seemingly catastrophic event—like flash floods destroying your study species, or political unrest in your study area—that disrupts your plan. Or, if you’re me, cold weather delaying cactus blooming in a cactus flower experiment.
This winter in the Mojave was unusually cold and rainy. The average high in January 2019 was 10.5°F—normally it’s a high of 57°F. Rain is great for flowers, it means there will be much more of them when they bloom. But cold means delayed blooms. And this Spring, it was delayed by about a month. Four weeks was how long I had planned to be in the desert, so after about two weeks of no flowers and a chilly forecast, I knew we needed to come up with some solutions.
The most obvious: stay longer. Duh. But this wouldn’t help if the cacti never bloomed, and I had to be back in Toronto to TA eventually. So I planned to hang out in the desert (no complaints here, it’s beautiful out there), but I knew we needed more options. Hire help? Working with birds means access to a large pool of citizen scientists who would give their time to look at birds in a place they otherwise couldn’t go. And I could hire a paid assistant from the area. These two options seemed great, but getting anything done with the public takes several months advanced notice, and there simply wasn’t any interest in my for-hire ad. So help was out. I kept thinking, and waiting, and hoping the flowers would just bloom and I could work extra long days and get it done. But that didn’t happen.
I had one last idea. Perhaps it was my most hair-brained scheme: use fake flowers (more appropriately called mimic flowers). After all, the problem was there were no flowers, and the end goal was to have flowers. A few papers had studied bird (hummingbird, specifically) visits to mimic flowers, and had success. This idea, which we didn’t know would even work, required a lot of experimental design rewiring. Two semester’s worth of planning and design scrapped and reinvented in a hour was terrifying. Whoever I told about my woes all echoed the same reaction, “That’s field ecology for you!” For a worrier and a planner like me, it’s a nerve-wracking line of work.
But I had to do something. I’d finished walking transects to look at birds and needed to start an experiment, any experiment. So I bought a bunch of fake flowers at Michael’s (Michael’s, would you like to sponsor an up-and-coming ecologist??) that looked like the Buckhorn Cholla’s flowers I’d seen on google, and pinned them onto the un-opened buds of my focal cacti. I had four levels of manipulations, set out camera traps, and watched for an hour. I was on the edge of my camping-chair-seat for the first session. There were thirty flowers pinned on this plant, my highest volume of flowers. Would they come? I needed proof of concept, proof that the birds would visit these cacti in some capacity, or else my findings are nothing but “birds don’t visit cacti”. Nothing wrong with this from a scientific perspective, but there’s not much to explore after the fact. A huge part of my Master’s relied on this next hour.
I was lucky. Within seven minutes, a Costa’s Hummingbird visited the cactus and attempted to pollinate the fake flowers. And then 6 more did the same over that hour. Funnily enough, this would be my busiest session for the rest of the field season. But it was peace of mind—the birds came, and no matter what else happened for the rest of the Spring, I had something to compare all my results to. After the 10 day experiment observing these mimic flowers, they finally began to bloom. The flowers really did look similar to the mimics, and I figured next we could see how different concentrations of real flowers on a cactus influenced bird behavior.
The experimental design for the real flowers was exactly the same as the mimic flowers, but this time, there were real flowers on the plants instead of fake ones. So I watched and waited, this time with less anxiety. But the first day passed, and no birds visited the cacti. Strange, but it was a particularly hot day, perhaps they just weren’t out and about. The next day came and went, and still, no birds at the cacti. This stayed true for the rest of the experiment. Birds were still coming to the procedural control (a poll with 30 mimic flowers glued to the top), but not to the real flowers. Not even once in the 10 day experiment. And just like that, the experiment ended. Science waits for no one.
Now, I’m back in Toronto. Data analysis is next up on the docket, but one thing is clear even without the statistics: birds will pollinate flowers on a cactus, just not the flowers that a cactus actually produces. It’s not the entire structure of the cactus that deters birds, but something about the flower itself that tells them not to come.
We know that most cacti are primarily pollinated by bees, and now we can say, at least for Buckhorn Cholla, they are absolutely not pollinated by birds. Could the flower have ultraviolet patterns advertising to the birds that this flower is not for them? Or perhaps a chemical signal from the flower deters them? Essentially, what is the mechanism associated with the flower that keeps birds away?
But perhaps even more interesting is this: what is the cactus flower actually saying to different pollinators? Two signal options exists, exclusionary or inclusionary. The flowers may signal that birds should not come here. Or perhaps, the flowers signal that the nectar is explicitly for bees. Imagine a sign outside a young boys treehouse saying, “No girls allowed.” This is an exclusionary signal, telling girls that they cannot come in (but I mean, smash the patriarchy). Now consider a “Man Cave” sign outside a basement. This is an inclusionary signal, suggesting that this space is for men. In the end, these signs have the same outcome: no women are in the space. An observer who cannot read English could observe that no women entered either of these spaces, but would need to be able to interpret the signs to know whether the signal is exclusionary or inclusionary.
This is fascinating, because in our human signage example, the interaction individuals of men, women, and sign-maker all are the same species speaking the same language. But in our bird-bee-cactus scenerio, we have three extremely different taxa (a plant, an insect, and a vertebrate) all possibly “reading” the same language. And they do all this interspecific signalling avoid niche overlap and wasted energy.
Now, we just got to test it. Easier said than done.
All these questions were… not what I was expecting to come home with at the start of my field season. Had the flowers bloomed when I arrived, I would have performed our original experiment manipulating the number of flowers on different sized cacti. And I would’ve gotten a whole lot of nothing. I’m a scientist, so I don’t like to say fate had a hand in this, but it was some good luck that I was so unlucky.
April 5th is the Graduate Symposium on Science Communication, with a poster presentation! I’m going to present a poster on the Baseline Cactus Survey completed in January, but I could use some advice. Let me know if you have any thoughts!
In January 2019, Google updated their terms of service and has essentially removed the free access to Google Maps in R. This means that you’ll need to purchase the relevant APIs (compu-speak for Application Programming Interface) from Google in your google account to access these features in R.
So do you need it?
If you’re interested in mapping in R, you basically need it. There are some mapping packages that you can use to get around using any Google products (Leaflet is a great example). But for all the glorious customization and overwhelming ubiquity of the ggmap, this API key is essential for reproducible science in ecology related fields. When I first encountered the problem, troubleshooting was a nightmare–everyone used ggmap, and even those who didn’t still used Google Maps as a source for their base maps. Not. Fun.
Luckily, it’s relatively cheap at $2/month for the first 100,000 static maps in each month (dynamic maps, street maps, embed advance, and dynamic street maps cost more, but we aren’t likely using these tools in our work). Even luckier, there’s a $200 credit/month for the first year of use!
It’s a bit confusing to navigate the Google Cloud Console if you’re trying to figure it out solo (and scary considering you’re paying for something), but the actual steps are easy and quick. There are two main steps to the process: 1)Get an API key and 2) Show R your API key. There’s just a few ministeps in between.
Select a Project. If you don’t have one, create one. It won’t matter later.
Enter your billing information.
Copy your API key. Consider pasting it into a .txt file on your machine for safe keeping.
Show R your API key:
In your R console, enter this code:
register_google(key = “YOUR_API_KEY”)
Run this code for every new session you need to map in, and you’re ready to go!
a daRk tuRn
R is popular among scientists (especially ecology/conservation scientists) because of its power. But it’s basically essential for scientists because it’s free. In a field where funding is scarce and costs are high, R has been a blessing for open science and has seriously moved the discipline forward. But the same reason R is powerful is because it’s not entirely autonomous; it (in large part) relies on monolithic companies like Google to up the ante. It may not be a very expensive fee, but it is yet another barrier for researchers and open science. Hopefully someday we can return to a free, open access Google Maps. After all, open science benefits scientists, the general public, and corporations–even Google.
For the bird-cactus double mutualism project, we had planned on observing two study species: Cylindropuntia anthrocarpa (Buckhorn Cholla) and Opuntia basilaris var. basilaris (Beavertail Cactus). We also needed 3 class sizes (small, medium, and large) in which to bin the cacti. This would impact our sample size and equipment list. That being said, the best laid plans of mice and men (and grad students) often go awry. I’d only briefly visited our study site the summer before I’d officially started at York, so we knew we would need to revisit Sunset Cove to do some preliminary exploration before getting into the trenches and collecting end-game data. Getting to the site, it was immediately apparent that we would need to examine our plants more closely; there was nearly no beavertail in sight. So we altered the protocol, then added Cylindropuntia enchinocarpa (Silver Cholla) into the mix. The goal? Determine the location, size, size-variability, and health. We want a tall-ish species (so pollinators and frugivores would be interested) with plenty of variability in size, enough of them to manipulate conditions, and healthy enough so we can expect some flowers and fruit later on. And, for fun, we took a quick look at shrubs to see if they’re associated with cacti in any respect (I don’t go into that here, but the data is available on Github).
Where are the cacti?
Let’s make a quick map and take a look at the cacti individuals sampled. For C. anthrocarpa, we were easily able to sample at every 5 meters along 5 transects that were spaced 5 meters a part (n=105). C. enchinocarpa, however, was more sparsely distributed. So, after doing our first two transects 5 meters apart, we realized we needed to increase the distance between transects to 10 meters. We also weren’t able to get a cactus sample at every 5 meters, so we sampled 9 transects in total (n=98). The least common species, however, was Opuntia basilaris, which was so rare that transects were ineffective, so we instead unsystematically searched the entire site only to find a paltry number of individuals (n=26).
Based on the proposed protocol, we need 150 individuals of each study species to replicate each combination of variables 10 times. Ideally, the individuals manipulated between flowering and fruiting season will not be resampled in the the fruiting season, as our manipulation of the flowers in April may impact the number of fruits in August. This means that C. anthrocarpa is a solid study species option. C. enchinocarpa is certainly possible, but not as dominant as its cousin, and O. basilaris is out of the question.
How big are the cacti?
We’ve seen the distribution of cacti, but size of the cacti is what’s really important for this study. We need to know if the sizes are variable enough to split into 3 class sizes (small, medium, and large). We also need a general idea of their height to consider if pollinating and frugivorous birds will engage with the flower and fruits of the cacti at all. The three species did indeed have significantly different mean heights (Kruskall Wallis Test, p > 0.0001, df = 52, x^2 = 151.52), with means of 1.04, 0.55, and 0.17 for Cylindropuntia anthrocarpa, Cylindropuntia echinocarpa, and Opuntia basilaris, respectively.
How should we bin the cacti?
One important variable of our project is size classes within a species: small, medium, and large. Because height is what may influence pollination and frugivory, we will use the “z-axis” that we measured as the factor for size. Each size class must contain enough individuals for replication. We need to decide how to bin the size classes; either we can use natural breaks present in the data, or we can create equally-sized bins for the study species. Let’s examine each species’ size distribution, and make decisions about size class breaks on that.
None of the species have distributions with natural breaks (see density plots), and, especially for our two Cylindropuntia species, we can see that there are even distances between quartiles (see boxplots). For these reasons, I propose an equal-size binning method to determine size class.
Size-classes of cacti
But what exactly are the equal size classes for each species?
86cm – 152cm
46cm – 72cm
16cm – 22cm
We can see that Buckhorn Cholla (C. anthrocarpa) has the largest class sizes, followed by Silver Cholla, and then Beavertail. Having large classes may translate more clearly to birds, and therefore be a suitable metric to see if bird visitation is influenced by cactus size.
Health of cacti
Another important factor to consider when exploring potential study species is their overall health. After all, are these individuals even capable of flowering and fruiting? To measure health, we created a health index based on the Wind Wolves Bakersfield Cactus Report, which classifies each individual’s health on a discrete scale of 1-5 (1 being the least healthy, and 5 being the healthiest). We considered overall paddle/branch death, as well as scarification and rot.
We can see that the Cylindropuntia species are healthier than their Opuntia counterparts. The question is, will an unhealthy population still flower/fruit as much as a healthy population? Perhaps, but this is not the question of my project.
Who is America’s Next Cactus Superstar?
Considering its abundance, size, and health, Opuntia basilaris is not a realistic contender as a study species. It is likely to be overlooked by birds, not bloom/fruit due to poor health, and is in small supply. Therefore I must remove it from the running. Both of Cylindropuntias are healthy. Silver Cholla, however, is still less dominant than Buckhorn Cholla, is smaller overall, and doesn’t have the width of size classes that Buckhorn Cholla does. While these traits do not mean the Silver Cholla could not be a viable study species, I propose that focusing more on Buckhorn Cholla by deepening the methods of observation (i.e., joy sampling: stationary versus mobile count data, and increased hours of focal observation) will be more beneficial to answering my study questions than a comparative study between cacti species would.
How I felt when first trying to work in R Markdown.
Writing can be scary. Writing can be scary for everyone, not just us scientists. But whether or not we enjoy it, or think we’re good at it, it’s probably the best tool for communicating our findings. So removing as much pain from the process is key.
That’s why I’ve started using R Markdown for writing.
If you’re like me, the worst part about writing scientific papers is formatting. I hate it. I hate getting bogged down in font size, citation style, line numbers–all that stuff. Not only does it take me forever to get just right, but it gives me so much room to mess up stuff that isn’t based in content. If I’m spending time fighting with format, that’s time away from thinking about stuff that really matters. And the idea of switching between different journals’ format style makes me want to cry. R Markdown made worrying about that a thing of the past.
But perhaps even better than the formatting convenience R Markdown provides, it makes collaboration so much easier. This is especially true when you pair R Studio with your Github account. All changes and additional files referenced are all neatly connected, and any code printout included in your paper is already sitting in your paper.
So, I’ve switched to writing in R Markdown. I’ve always worked in either Word or Google Docs, and I still will if I’m writing something that isn’t going to require a lot of coordinating; but for big projects, I’m moving on up. I’m ready to get productive.
When I first tried this new step in my workflow, I felt less than skilled. I have experience in R Studio and Markdown, but when learning anything new I feel like a cat trying to type. So here’s some important tips I’ve collected from my first time through the process to hopefully make it easier.
Define and fill the space R will reference when filling in format details. Three dashes (—) start and end the referential space, so write any parameters you want to fill followed by a colon and the content you want associated with it (title: Scientific Writing in R Markdown). When you create a new .rmd file, this is already started for you. Some parameters require a little extra characters, like abstracts or authors. You’ll also need to include which output you want (a specific journal, word doc, html, pdf, etc.). If you want to format in a specific journal style, you can look up different csl (citation style and language) codes to reference journals here. You’ll also need to install and run rticles package. The rticles package allows you to reference different journal format styles so your .rmd can knit to that format style. After you finish the referential section, begin writing your paper outside the ending three dashes.
Know and use your syntax. Writing in R Markdown means you’re writing in plain text as opposed to rich text. Rich text is when you’re writing but you have all these different formatting options–italics, font, colors–all the formatting options you can see in the the GUI interface. This is what you’re working with when you’re in Word. Plain text, which is just the text characters, is what you’ll use whenever you’re working in R. In order to get things like italics, or numbered lists, or bold, you need to use certain syntax. The rich text formatting will appear after you knit. Once you get used to this, it’s snap (here’s a handy guide to syntax). Plus, it’s one less thing to distract you when you’re trying to focus on content and ideas.
Understand citations. Probably my single favorite thing about R Markdown is the ease with which I can include citations. It took me a minute to figure out the steps, but once I did, I never want to type out a citation or use a Word plugin again. All you have to do is export whichever papers you could possibly want to cite from your reference manager (I use Mendeley) into a .bib file. Notice what your citation key is. For Mendeley, it automatically formats your key to be author and year (@Lemon2018). After you create this, make sure your bibliography reference in your .rmd is your new .bib file. If you know your citation key, all you need to add a parenthetical citation is include [@author]. For example, you might type: “A cat like to be scratched behind its ears [@Lemon2018]”. This will automatically populate the entire citation at the end of the document. If you want to include multiple citations in one parenthetical, simply separate the keys with a semi-colon [@Lemon2017;@Lemon2014].
Code! Don’t forget you’re writing in R Studio, so being able to directly code is a huge advantage of working in R Markdown. You can include any figures or tables you would in R Studio, just insert a new chunk. For tables, I recommend the kable function in the knitr package which creates an attractive table from a dataframe you already have. Just be sure to include “include=FALSE” at the beginning of your chunk so you only see the outputs of your code. Here’s a video that shows side-by-side screens of coding/writing in Markdown and how the code will look after knitting.
For me, it was a steep learning curve to make the transition from rich text programs to R markdown. In this post, I included some introductory tips for switching to R Markdown. There are lots of more advanced options with R Markdown, but for this post I wanted to focus on the challenges that I struggled with while writing my first paper in an .rmd file. This doesn’t include steps that I found intuitive, or questions that are associated with learning to code in R, or tricks that are so advanced that I didn’t run into them. But I found the answers to most of my questions by scouring the web, so even if I didn’t answer something here, the answer is probably out there. Hopefully, the tips I devised can help an intermediate R coder get the most out of their work with R Markdown.