def generate_all_article_info(csv_dir="1. excel files"): ''' 1. Parse all .csv files in the directory specified by csv_dir, and, 2. Generate corresponding article information files that include PMIDs and titles (citation info) for articles annotated in csv files. ''' failures = [] for csv_f in [f for f in os.listdir(csv_dir) if f.endswith(".xls")]: cur_title = get_article_title(os.path.join(csv_dir, csv_f)) #get pubmid from title pmid = pubmedpy.get_pmid_from_title(cur_title) if pmid: print "matched %s for %s." % (pmid, csv_f) citation_info = list(pubmedpy.fetch_articles([pmid]))[0] title, mesh, authors, abstract, affiliation, journal, volume, article = get_fields_from_article( citation_info) with open( os.path.join(csv_dir, csv_f).replace(".xls", ".article_info.txt"), 'wb') as out_f: csv_writer = csv.writer(out_f) csv_writer.writerow([ pmid, title, mesh, authors, abstract, affiliation, journal, volume ]) else: #print "!!! failure !!! could not find PubMed entry for %s" % cur_title failures.append(cur_title) print "ok! %s failures (see below, if any). \n %s" % (len(failures), "\n".join(failures))
def generate_all_article_info(csv_dir="1. excel files"): ''' 1. Parse all .csv files in the directory specified by csv_dir, and, 2. Generate corresponding article information files that include PMIDs and titles (citation info) for articles annotated in csv files. ''' failures = [] for csv_f in [f for f in os.listdir(csv_dir) if f.endswith(".xls")]: cur_title = get_article_title(os.path.join(csv_dir, csv_f)) #get pubmid from title pmid = pubmedpy.get_pmid_from_title(cur_title) if pmid: print "matched %s for %s." % (pmid, csv_f) citation_info = list(pubmedpy.fetch_articles([pmid]))[0] title, mesh, authors, abstract, affiliation, journal, volume, article = get_fields_from_article(citation_info) with open(os.path.join(csv_dir,csv_f).replace(".xls", ".article_info.txt"), 'wb') as out_f: csv_writer = csv.writer(out_f) csv_writer.writerow([pmid, title, mesh, authors, abstract, affiliation, journal, volume]) else: #print "!!! failure !!! could not find PubMed entry for %s" % cur_title failures.append(cur_title) print "ok! %s failures (see below, if any). \n %s" % (len(failures), "\n".join(failures))
def get_article_from_pmid(pmid): return list(pubmedpy.fetch_articles([str(pmid)]))[0]