Workflow ideas and uses for research and academia

Hey all,

Asked this in the doom emacs subreddit but wanted to see what and how everyone uses for academia/research

Just installed doom-emacs and using org-roam to take notes but looking to take use of bibliography functions.

Came across this video which seems like a neat workflow: EmacsConf 2021: Managing a research workflow (bibliographies, note-taking, and arXiv) - Ahmed Khaled - YouTube


This is not something that I have used, but something I came up with for a user on reddit.

Tracking research progression using org TODO state changes:

The background/concept goes like this:

  • A biology researcher places flies from batches A,B,C, etc. onto petri dishes.
  • The first dish is #1, the next is #2, etc.
  • The researcher moves each batch of flies from one dish to the next based on some criteria until the experiment is done.
  • This creates a progression through dishes as A1, A2, A3, etc.
  • The timestamp when the flies are transferred between dishes needs tracked. The difference between these creates duration on each dish. This data needs tracked in a clean and automated way.

To illustrate why my solution is useful, I will first describe a simple implementation.

A Simple solution:

Just write the data into a table. And put the table under a heading.


  • Setup in minutes.
  • Easily export data in various ways from tables.


  • Manual insertion of: batch name, dish number, time in, time out, notes, etc.

Possible automation using this method:

  • Custom capture into the table could mitigate the issue, but is not fully automatic, requiring you to still enter all of this information, just from a capture buffer. And, I would prefer to use built in org-mode functions/features to actually automate this.

My solution:

Use todo state changes and logging into drawers to customize and automate all aspects of this cleanly. This allows you to use one keybind (org-todo function) to progress your research data and capture notes.

This creates something like the following:

3 Batch A
- State β€œ3” from β€œ2” [2022-07-27 Wed 11:38]
  Note from state change.
- State β€œ2” from β€œ1” [2022-07-26 Tue 10:00]
  Note from state change.

This information is automatically tracked and put into the logbook. This allows the information to be folded away, yet still be accessible. The Batch A heading is not cluttered with data. Other research or notes on this batch can still be cleanly stored under this batch heading.

Additionally, this automates the capturing of time, duration, and notes related to the progression of research and automatically advances the batch heading to reflect the current state it is in. (3 in this example)

This for multiple batches would look like this:

3 Batch A
2 Batch B      
4 Batch C

or unfolded one level:

3 Batch A
  more information

2 Batch B
  other headings   

4 Batch C
  more stuff


  • Create an org heading for each batch of flies you want to track. (* Batch A, * Batch B, etc.)

  • Create custom org-todo-keywords, one for each dish. (1-9? /max_dishes)

    (setq org-todo-keywords '((sequence β€œTODO(t)” β€œ1(1@/!)” β€œ2(2@/!)” β€œ|” β€œDONE(d!)”)))

    NOTE: @/! in the keywords. @ prompts for a note and ! inserts the time.

  • Enable logging into drawer. (setq org-log-into-drawer t)


  • One keybind for tracking research progression.


  • Dirties up your todo-keywords with the states for the research.