NSF Collaborators and Other Affiliations Information

For several years NSF ran a trial where they would ask for a conflicts form in excel-type format. Recently, that has been codified into the Collaborators and Other Affiliations Information form. You can find more information about that form at the NSF Website and the NSF GPG.

We developed a simple script to help complete this form for you. It does not do all the work, but it gets you a long way there, and you can do the rest a lot easier. After all, you have a lot of other things to worry about when you are writing that grant. Read more to see how to use it.

First, note that a previous version of this post appears here. We have updated this (Spring 2019) with the current information, but please check the NSF Grant Proposal Guide, as this is not an officially endorsed NSF product and we’re providing this to you to help, nothing more. If it doesn’t help, you don’t get your money back, but you don’t owe us anything. If it does help, buy our lab a beer sometime.

Before we can start, there are two pieces of software we need. First, you need to install pybtex. If you have a mac or linux machine you should be able to type this command to install it.

sudo pip3 install pybtex

You will also need to get the latest version of our code, NSF_conflicts.py. Note that you only need this code, and do not need to clone the repository or anything else (though you are welcome if you particularly care to).

Now we have the prerequisites, we can get going:

The new version of the form has five different tables that you have to fill in! We hope that you can handle the first few, that include your name, your family members, and your PhD advisor and advisees.

However, Table C asks for the following data that we are trying to help you out with!

Table C: List names as Last Name, First Name, Middle Initial, and provide organizational affiliations, if known, for the following.

A:Co-authors on any book, article, report, abstract or paper with collaboration in the last 48
months (publication date may be later); and
C:Collaborators on projects, such as funded grants, graduate research or others in the last 48

First, we need to get all your citations. We can parse out the date of publication, and so we might as well just get them all.

Assuming you have a Google Scholar page, here is the simplest way to generate that information:

  1. Go to your Google Scholar citations page.
  2. At the top of the page, click the checkbox next to Title which will select your citations (it doesn’t matter if it doesn’t select all as we’ll do that on the next step).
  3. Click the Export button, and choose BibTeX
  4. Choose Export all my articles and save that to a file somewhere on your computer. If that page opens in your web browser, just right click on the page and choose “Save As…”. Save as a file called, for example, citations.txt. We will use that in the next steps.

If you have a previous NSF collaborations worksheet, we can extract some of the information from that to help you out. Make a copy of that file, as we are going to edit it, and you want to ensure you still have the previous original. If you don’t have a previous version, you can skip this step!

Delete everything except Table C. Delete all the intro text, delete Tables A and B, and delete the header for Table C. Delete Table D. Make a file that only has Table C, and nothing else in it. Make the first line of the table the line that contains the column headers (e.g. Name, Organizational Affiliation, Optional (email, Department), and Last Active). Include the first column that indications A or C, and we’ll use that later. Make the last line in the file the last collaborator you have. This just makes it easier for us to figure out what is going on in your file!

Once you are done, save that file as tab-separated values (tsv) format. You can save from any common editor (excel, Google sheets, open office, etc etc) to tsv format.

Finally, use that file you just saved as the -c argument below.

The basic command to build the table is shown below. citations.txt is the file that you downloaded from Google Scholar.

python3  NSF_conflicts.py -f citations.txt

This will create a list of all your conflicts over the last four years (* see below). However, you can change the first year from which everything is kept. For example, to list all your conflicts since 2012, you can use:

python3  NSF_conflicts.py -f citations.txt -y 2012

If you have a previous conflicts file, you can also use information from that file. Presuming that is called 2018_conflicts.txt your command would look like this:

python3  NSF_conflicts.py -f citations.txt -y 2012 -c 2018_conflicts.txt

Finally,you want to put that file to a spreadsheet so you can edit it. Redirect the output or add an output filename

python3  NSF_conflicts.py -f citations.txt -y 2012 -c 2018_conflicts.txt -o 2019_conflicts.tsv
python3  NSF_conflicts.py -f citations.txt -y 2012 -c 2018_conflicts.txt > 2019_conflicts.tsv

If you give the filename a .tsv ending, you should be able to double click on it to open it into your favorite editor. From there, you can edit the appropriate fields, move things around, and copy and paste into the NSF form.

Good luck with your grant!

Merging people with the same name

Often you will have people with different versions of the same name, such as “Edwards, R”, “Edwards, RA”, “Edwards, Robert”, and “Edwards, Robert A”. We have a dumb, but generally quite effective algorithm for merging people with the same name. We generally take the last name and first initial and test if we see them elsewhere.

If you choose to aggressively remove the duplicates like this (using the -a option), the duplicate entries will be printed to standard error, and we keep the longest name as the option.

Duplicate Entries Warning

Most likely, the first time you run NSF_conflicts.py, you will get an error message that says something like:

Duplicate entry adriaenssens2018taxonomy
Duplicate entry ecale2019multiphate

FATAL: The bibtex file has duplicate entries in it. Please remove them before trying to continue

(It is an issue with Google Scholar, but pybtex breaks with duplicate entries. Sorry)

This is an issue with how Google Scholar exports bibtex files. It does not ensure that each entry is unique (although it should). In my experience, this occurs when you have two different versions of the same paper in Google Scholar, and the best thing to do is to go back to Google Scholar, find the offending articles, and merge them. Once you have done that you can redownload the citations and everything should just work.

Alternatively, you can also just edit the bibtex file (citations.txt, or whatever you called it), and add a 1 or a 2 to one of the offending names. Once the name for an entry is unique, it won’t matter if we read that entry twice anyway.