2 How to ask for help

In our area of work, we will frequently run into code error messages as well as work with concepts that span multiple research fields including neuroscience, genomics, and bioinformatics. Thus, it is completely natural that we’ll need to ask others for help. We do this so frequently, that we end up developing skills for searching for the information that we need. Most of the times, we can spend a bit of time ourselves searching for a solution as described in more detail in “you must try, and then must ask”. Though at some point, we will ask others for their direct input.

Many of the communication tools we use for asking for help are text-based. It can be hard to convey jokes, so sometimes it’s best to refrain from making jokes in order to prioritize a clear exchange of ideas. You should also be respectful of everyone’s time and with the words you choose. For example, see what Jim Hester has to say about issue titles:

Actually, Jim Hester keeps providing excellent advice, so you might want to check this table he made and shared on Twitter.

Ultimately, some coding issues are complex. Here are some tips on some strategies for resolving complex coding problems.

2.1 Learning from our search history

We have occasionally used a team activity called “learning from our search history” described in this blog post. One of the goals of this activity was to learn some search skills each of us has that are typically not taught. Another goal was to show that we all search for more information all the time because no one, not matter how experienced, knows all the answers.

2.2 Bioconductor Support website

We use Bioconductor R packages for most of our work because they contain a lot of useful functions for the type of work we do. Bioconductor packages can be under active development and changing frequently. Plus, some are challenging to understand how to use. For these and other reasons, Bioconductor has a BioC Support Website.

You will need to make an account before you can ask (or answer) a question. Once you do, you will need to use tags for labeling your question: typically with the tag that matches the Bioconductor package you are using. When you start to ask a new question, you will see a link to the new posts guide and the tutorial for asking questions.

You should try your best to follow those guidelines in order to make it easier for others to help you. Remember that you should follow the Bioconductor code of conduct.

2.3 RStudio Community website

Since we use R so much, we also use R packages developed by RStudio developers. One great and friendly website for asking for help with all things that are related to R (but maybe not so much related to Bioconductor) is the RStudio Community website. This website is particularly useful if you have questions about RStudio itself or the tidyverse R packages.

If you want to get a summary of new posts that might be relevant to you, you can sign up for weekly email updates. On this website, there’s a strong preference for using the reprex package for making small reproducible examples. Check our LIBD rstats club session on reprex to learn more about it.

2.4 GitHub issues

Frequently, we work with software that is cutting edge and under active development. Many people share their code through websites like Bitbucket, GitLab, and most frequently, through GitHub. Most open source projects on GitHub have an issues page where you can interact directly with the developers of the software you are using. Note that most open source software developers are not payed to provide support, and their time might be very limited. As such, you should try very hard to provide all the information the developers need in order to help you. This is a time consuming process, but it can help you learn more too, and sometimes even resolve the problem yourself.

Some GitHub repositories have issue templates such as lcolladotor/biocthis that will tell you a bit more of what information you should provide to make it easier for others to help you out. Others like rstudio/blogdown will ask you to fill a few checkmarks before submitting your question.

Again, Jim Hester has some useful advice.

2.5 Mailing lists

Eventually, you might need to ask for help through specific e-mail mailing lists. This is more common the closer you get to source code. Some of the mailing lists we use frequently are listed below.

2.5.1 bithelp

This is the main mailing list for asking for help with all things related to JHPCE. The JHPCE admins plus some JHPCE users such as myself and Kasper Daniel Hansen receive these emails and might reply back. You can sign up to receive these emails too if you want. Or if you want to check the previous emails, check the bithelp website. Before you ask for help, check the JHPCE website since there are several guides there already that might answer the question you have in mind.

2.5.2 bitsupport

This is the main mailing list for all things related to JHPCE admin requests. For example, if you need help with getting your password reset or changing your default JHPCE user group.

2.5.3 Bioc-devel

This is the mailing list where all Bioconductor package authors are subscribed to. It’s sole purpose is to help current and new Bioconductor package authors. If you have questions about how to use a Bioconductor R package, use the Bioconductor Support website only. However, if you do have questions about R package development, then check out bioc-devel and its archives.

2.5.4 R-Sig-Mac

Some mailing lists are very specific to what they serve. There are several of these mailing lists related to the R source itself, for sample R-SIG-Mac which is useful if you are compiling R in macOS, and only for questions related to that. This is a rare situation for us, but for some situations, this is where you can find the latest information and reach the experts on this topic.

2.6 Slack

Within our team and collaborators, we use Slack extensively. If you are new to Slack, you might want to read this blog post that I co-authored with Stephanie C Hicks. In that blog post, we talk about some important Slack settings that will make it easier to keep your work-life balance in check.

Slack is organized in Workspaces. Each of them is either free or payed, depending on the group. We mostly use the JHU Genomics Collective Slack workspace, which is a payed workspace. Meaning that we have access to all Slack-related goodies, like integrations with GitHub, Google Calendar, Google Docs, email, etc. Below you can find more information about the differnet Slack workspaces we use.

2.6.1 JHU/LIBD

2.6.1.1 JHU Genomics Collective

This is our main Slack workspace. Just like git commit messages, channels are cheap. The idea is to make one channel per project. Currently, we are adding all team members to each channel even if they are not working on the specific project. Team members not involved in the project should feel free to mute the channel. However, by being a part of the channel, they can then see images and code that we are working on, which in some situations can be useful. For example, maybe we figured out how to make a new plotly interactive graph in one channel, then others who are curious can get access to that knowledge and incorporate it into their projects.

If you need help use:

  • libd_helpdesk: for asking general questions to all team members and LIBD collaborators

For team logistics, our channel is:

  • libd_team_lcollado: meeting reminders, papers we’ll discuss and other team logistics

The remaining main Slack channels are:

  • libd_alumni: for all LIBD past and current members
  • libd_dsgs: for the DSgs-guides
  • libd_general: for all current LIBD members that are on the JHU Genomics Slack workspace
  • libd_genomics_martinowich: a shared channel with the Martinowich lab Slack workspace
  • libd_lunchtrain: for random topics as well as organizing lunch outings 5 using the /lunchtrain Slack command 6
  • libd_pkgs: for software (mostly R packages) we are making that is not specific to a particular project
  • libd_rstats_club: for the LIBD rstats club
  • libd_wfg: for the LIBD Writing Fellowship Group (WFG) which is a type of writing accountability group or writing agraphia group (WAG)

There are also a set of public channels that we use frequently:

  • conferences
  • containers: docker, singularity, etc
  • diversity
  • funding
  • general
  • genomics_journal_club: a student-run journal club
  • genomics_seminar: Genomics at JHU seminars
  • jhpce: JHPCE users, though also check the bithelp and bitsupport mailing lists
  • jhu_papers: where we announce papers with JHU authors
  • joint_group_meeting: a JHU bi-weekly meeting led by Steven Salzberg and JHU colleagues. This is a great meeting to learn about methods work being done across Hopkins for genomics data analysis.
  • langmead_rss: a channel where Ben Langmead shares papers he’s interested in
  • papers: general papers of interest
  • r-ladies
  • random
  • rstats: major R announcements and other goodies

2.6.1.2 Martinowich

This is the LIBD Slack workspace used by Keri Martinowich’s team. Several of us work closely with her, Kristen Maynard, Stephanie Page and other Martinowich team projects.

Some Slack channels of interest here are:

  • comm_labmeeting: for any communications related to the Martinowich lab meeting
  • helpdesk_general_drybench: a channel that was inspired by libd_helpdesk on the JHU Genomics Slack
  • helpdesk_figuregeneration_and_manuscriptwriting: it says it all in the name ;)

2.6.1.3 LIBD Neuropathology

This is the LIBD Slack workspace used by the Neuropathology team. We use it to interact with Amy Deep-Soboslay, Ran Tao, and their teams.

2.6.2 Bioconductor

One very useful public Slack workspace is the Bioconductor one. You can join for free through bioc-community.herokuapp.com/. If you join this Slack workspace, please introduce yourself on the introductions channel. You mgith also be interested in channels such as:

  • biocYYYY where YYYY is the given year, which is the main channel for that year’s Bioconductor conference. For example, bioc2020.
  • containers to learn more about the Bioconductor Docker images
  • developers_forum for learning about the Bioconductor Developer’s forum (typically held once per month)
  • jobs for job announcements
  • spatial for spatial transcriptomics and related technologies

2.6.3 R-Ladies Baltimore

Another public Slack workspace is the one run by R-Ladies Baltimore, a local chapter from R-Ladies Global. This Slack workspace is mostly active during the meetup sessions. Check out their Meetup page for more information.

2.6.4 Miscellaneous

I’m a part of a few more Slack workspaces, though not all of them are public.


  1. Or remote lunch Zoom sessions.↩︎

  2. Start typing the command on Slack and you’ll see the help menu pop up for this command which specifies the syntax for using /lunchtrain.↩︎

© 2011-2021. All thoughts and opinions here are my own. The icon was designed by Mauricio Guzmán and is inspired by Huichol culture; it represents my community building interests.

Published with Bookdown