Monday, August 28, 2017

Adler lab research featured on UMass/AAAS blog

UMass science writer Jan Lathrop recently did a write-up on recent work in the Adler lab on how the floral chemicals anabasine and nicotine affect infection and colony productivity in bumble bees.
See the post here
Read the publication here

Daniel Petersen to defend thesis tomorrow

Former Fernald Club treasurer Daniel Petersen will defend thesis tomorrow morning. The public portion of the defense is free to all!
11 AM in 209 French Hall

Wednesday, June 14, 2017

Mentoring Workshop

I recently had the opportunity to participate in a National Research Mentoring Network workshop hosted by the UMass Amherst Graduate School. Having mentored 8 honors students during my PhD, and looking forward to mentoring more in my post-doc and later career, I thought this workshop was worth the 9-hour commitment.

The session was highly engaging, based on discussion of case studies of mentors and mentees. I felt that these prompts were useful starting points that provided tangible examples of mentor-mentee mis- and non-communication. For example, what do you do when your mentee doesn't like their project, wants to do somebody else's project, constantly wants your attention, is upset because you made a mistake... Almost everybody in the room could relate to being on at least one side-- mentor or mentee-- of a similar experience.

I felt that I learned the most from this workshop not by discussing the cases, but listening to others' ideas. There was no "right answer" to most of the cases, but over the course of the workshop, we built up quite a list of diverse options to manage difficult situations. Probably more than any of us could have come up with alone. If mentoring is about finding ways to relate to and communicate with people who aren't exactly the same as yourself, it was helpful to have a range of interpretation of the problem and perspectives on optimal solutions.

Personally, I'm looking to improve my listening skills, patience, and flexibility in future interactions. I found myself looking to define an a priori strategy for each situation, and found myself thinking, "What a good idea" when it was suggested that a strategy could be flexible across personalities and time. Several participants made comparisons between parenting and mentoring. Although I'm sure that parenting is way more responsibility than mentoring, those comparisons emphasize the importance of communication and understanding in becoming a good mentor, the unique characteristics of each student, and the mutual learning process that needs to define these relationships.

If you get the chance to reflect on or improve your mentoring, consider it! Learn more about the National Research Mentor Network at their website. Big thanks to Beth Jakob for facilitation of the event, and to my wonderful students who have been so patient with an imperfect mentor.

Thursday, May 18, 2017

Tuesday, May 16, 2017

Research spotlight: "The Column" chemistry blog

My recent publication in Scientific Reports prompted an interview from chemistry blog The Column. Surf on over to read the Q & A with co-author and chemist extraordinaire Phil Stevenson.

Sunday, April 23, 2017

ggtree function in R

As a student in the Organismic and Evolutionary Biology program, I finally have the occasion to compare trait data with phylogenetic data. Over the past couple of weeks, I have been searching for a way to put these things together graphically.

To make the tree of plant species, I have used the "phylomatic" function in R package "brranching" by Scott Chamberlain.

To associate data with the tree, I used Guangchuang Yu's ggtree package. This makes faceted plots where one facet is the tree and another facet (or more) show the data.

First I will offer my thanks to these gurus who make things possible for us R mortals.

Here was the script I came up with:


#Make the tree:<- c("Aesculus carnea", "Antirrhinum majus",
              "Brassica napus", "Catalpa speciosa", "Citrus sinensis",
              "Cucurbita pepo", "Dicentra eximia", "Digitalis purpurea",
              "Echium vulgare","Eupatorium perfoliatum", "Fragaria ananassa",
              "Geranium maculatum", "Helianthus annuus",
              "Impatiens capensis", "Kalmia latifolia",
              "Linaria vulgaris", "Lobelia siphilitica",
              "Lythrum salicaria", "Malus domestica",
              "Penstemon digitalis", "Persea americana",
              "Prunus dulcis", "Rhododendron_prinophyllum",
              "Silene vulgaris",
              "Solanum carolinense", "Solidago canadensis",
              "Tilia_cordata", "Thymus vulgaris",
              "Trifolium pratense", "Vaccinium corymbosum",
              "Verbascum thapsis")
treeget<-phylomatic(taxa =, get="GET")

#Generate data for the graph:
                Height=runif(n=length(treeget$tip.label), min=10, max=100),
                Chem=rnorm(n=length(treeget$tip.label), mean=5, sd=3))

#Plot in ggtree
Tree<-ggtree(as.phylo(treeget)) + geom_tiplab()
#change axis limits to view tip labels
ggtree(as.phylo(treeget)) + geom_tiplab() +

#Adjust limits on tree
Tree.l<-Tree + geom_tiplab() + xlim(0,22)

#Creat facet plot:
fp<-facet_plot(Tree, panel = "Chem", data = df1,
           geom = geom_point, aes(x=Chem),
           stat= 'identity') + ggtree::xlim_expand(xlim=c(-2,2), panel="Chem")

#adjust axis limits:<-fp + xlim_tree(40) + xlim_expand(xlim=c(-5, 25), panel = "Chem") +

#Add geom_pointrange:
df1$error<-rnorm(n=length(treeget$tip.label), mean=2, sd=0.4)
fp.error<-facet_plot (, geom=geom_pointrangeh, data=df1,
                      aes(x=Chem, xmax = Chem + error, xmin = Chem - error),
                      panel = "Chem")

#Try with geom_errobar instead<-facet_plot (, geom=geom_errorbarh, data=df1,
                      aes(x=Chem, xmax = Chem + error, xmin = Chem - error),
                      panel = "Chem")
#Warning: Ignoring unknown aesthetics: x

#However, you get error without specification of "x"
fp.error.bar2<-facet_plot (, geom=geom_errorbarh, data=df1,
                              xmax = Chem + error, xmin = Chem - error),
                          panel = "Chem")
#Error in FUN(X[[i]], ...) : object 'x' not found

Of course I haven't used any real data, but you could!
Good luck plotting!