Chris Iyer Updated 3/23/2023
This code uses pubget and Entrez from BioPython to search PubMed Central (PMC) for articles pertaining to a given keyword/task. In order to use this code, you'll have to pip install pubget and pip install Bio.
What this code does: These articles are downloaded locally and correspondence emails are extracted. Then, Entrez searches for the number of other PMC papers that cite a given paper, and we select the top <n> (100?) papers. The correspondence emails of these papers are then written to a txt file and returned.
Files:
author_finder_functions.pycontains all the functions performing the steps above. Critically, it also contains a dictionarytask_keywordsthat decides what to query PMC with based on which task we are searching for. Edit this dictionary to refine results.author_finder.ipynbis where you will put in aROOT_PATHto write outputs to, and atask_to_runto search. You may either call each function fromauthor_finder_functionsin sequence or userun_author_finder()to get the emails in one step. Doing so for each task takes somewhere around 5 minutes.
Current problems:
- The keywords are imperfect. Including "task" will exclude a lot of good papers, but leaving it out means we get articles like this article that are about the 'stop codon acting as a stop signal' and not about the stop signal task at all.
- A few emails are lost (somewhere in the ballpark of 2%). I'm not worried.
- We are sorting by # of citations only of other papers in PMC (not necessarily all citations of the paper, but just the ones in PMC).
- The search results are not lining up to what I get when I manually search using the same query in PMC Advanced Search. I'm looking into this.