def _get_doc_summary_from_gds_ids(gds_ids): eutils = get_eutils_client() gds_dbids = EUtils.DBIds("gds", gds_ids) raw_html = eutils.efetch_using_dbids(gds_dbids, rettype="docsum", retmode="html").read() return (raw_html)
def query_pubmed_for_summary_xml(unique_pmids): history_client = EUtils.HistoryClient.HistoryClient() pmids_dbids = EUtils.DBIds("pubmed", unique_pmids) the_post = history_client.from_dbids(pmids_dbids) the_esummary = the_post.esummary() summary_xml = the_esummary.read() return (summary_xml)
def pmcids_to_pmids(pmcids): if not pmcids: return [] entrez = HistoryClient.HistoryClient(eutils=get_eutils_client()) pmcids_dbids = EUtils.DBIds("pmc", pmcids) pmcids_records = entrez.post(pmcids_dbids) pmc_link_query = pmcids_records.elink(db="pubmed") raw_xml = pmc_link_query.read() pmids = _extract_pmid_links_from_xml(raw_xml) return (pmids)
def get_a_FakeHistoryClient_miss(): import EUtils FakeHistoryClient_miss = fudge.Fake('FakeHistoryClient_miss') FakeHistoryClient_miss = FakeHistoryClient_miss.provides("__init__") FakeHistoryClient_miss = FakeHistoryClient_miss.expects("post").returns( fudge.Fake("post_return", allows_any_call=True)) fake_search_return = fudge.Fake("search_return").has_attr( dbids=EUtils.DBIds("pubmed", test_data_geo_filtered_pmids)) FakeHistoryClient_miss = FakeHistoryClient_miss.expects("search").returns( fake_search_return) return (FakeHistoryClient_miss)
def fetch_articles(article_ids): print "fetching abstracts..." print article_ids #handle = Entrez.efetch(db="pubmed",id=article_ids,rettype="medline",retmode="text") dbids = EUtils.DBIds("pubmed", [str(xid) for xid in article_ids]) client = ThinClient.ThinClient() # fix for new NCBI API handle = client.efetch_using_dbids(dbids=dbids, rettype='medline', retmode='text') #handle = EUtils.efetch(db="pubmed",id=article_ids,rettype="medline",retmode="text") records = Medline.parse(handle) print "Done." return records
def filter_pmcids(query_pmcids, filter_string): if VERBOSE: print "filter %s" % filter_string if not query_pmcids: return ([]) try: time.sleep(1 / 3) entrez = HistoryClient.HistoryClient(eutils=get_eutils_client()) pmcids_dbids = EUtils.DBIds("pmc", query_pmcids) pmcids_records = entrez.post(pmcids_dbids) filtered_pmcid_records = entrez.search( '#%s AND %s' % (pmcids_records.query_key, filter_string), db="pmc") filtered_pmcids = filtered_pmcid_records.dbids.ids except AttributeError: filtered_pmcids = [] except EUtils.EUtilsError, e: if e.args[0].strip() == "Empty result - nothing todo": filtered_pmcids = [] else: raise datasourcesError(e)
def _get_gds_links_from_pmid(pmid): eutils = get_eutils_client() pmids_dbids = EUtils.DBIds("pubmed", pmid) xml = eutils.elink_using_dbids(pmids_dbids, db="gds").read() return (xml)
def get_history_client_post(pmids): history_client = get_eutils_history_client() pmids_dbids = EUtils.DBIds("pubmed", pmids) the_post = history_client.post(pmids_dbids) return (history_client, the_post)