def get_full_hierarchy_from_tsn(tsn, as_dataframe=True, include_children=True, **kwargs): """ Returns a list of items from the ITIS getFullHierarchyFromTSN function. The resulting pandas dataframe or list of dictionaries contains the tsn, as well as common name Parameters ---------- tsn : int The ITIS taxonomic serial number to query as_dataframe : bool if True return pandas dataframe, if False return list of dictionaries include_children : bool flag to optionally return the child taxonomies of the given taxon Returns ------- pandas dataframe or list of dictionaries with common names and tsns """ results = _get_xml(ITIS_BASE_URL + 'getFullHierarchyFromTSN', payload={'tsn': tsn}) hierarchy = results.xpath('//ax21:hierarchyList', namespaces=NS21) if as_dataframe and pd: df = xml_utils.element_to_df(hierarchy) if not include_children: df = df[df.parentTsn!=str(tsn)] return df else: d = xml_utils.element_to_list(hierarchy) if not include_children: d = [r for r in d if r['parentTsn'] != str(tsn)] return d
def search_by_scientific_name(scientific_name, as_dataframe=True, **kwargs): """ Returns a list of items from the ITIS searchByCommonName function. The resulting pandas dataframe or list of dictionaries contains the tsn, as well as common name Parameters ---------- scientific_name : str The string to match on as_dataframe : bool if True return pandas dataframe, if False return list of dictionaries Returns ------- pandas dataframe or list of dictionaries with scientific_names and tsns """ results = _get_xml(ITIS_BASE_URL + 'searchByScientificName', payload={'srchKey': scientific_name}) scientific_names = results.xpath('//ax21:scientificNames', namespaces=NS21) if as_dataframe and pd: return xml_utils.element_to_df(scientific_names) else: return xml_utils.element_to_list(scientific_names)
def get_full_record_from_tsn(tsn, as_dataframe=False, **kwargs): """ Returns a list of items from the ITIS getFullHierarchyFromTSN function. The resulting pandas dataframe or list of dictionaries contains the tsn, as well as common name Parameters ---------- tsn : int The ITIS taxonomic serial number to query as_dataframe : bool if True return pandas dataframe, if False return list of dictionaries Returns ------- pandas dataframe or list of dictionaries with common names and tsns """ results = _get_xml(ITIS_BASE_URL + 'getFullRecordFromTSN', payload={'tsn': tsn}).getchildren()[0] if as_dataframe: dfs = collections.OrderedDict() for child in results.getchildren(): df = xml_utils.element_to_df([child]).dropna() dfs[xml_utils._parse_tag(child.tag)] = df return dfs else: return xml_utils.node_to_dict(results, add_fgdc=False)
def get_common_names_tsn(tsn, as_dataframe=True, **kwargs): """ Returns a list of items from the ITIS getFullHierarchyFromTSN function. The resulting pandas dataframe or list of dictionaries contains the tsn, as well as common name Parameters ---------- tsn : int The ITIS taxonomic serial number to query as_dataframe : bool if True return pandas dataframe, if False return list of dictionaries Returns ------- pandas dataframe or list of dictionaries with common names and tsns """ results = _get_xml(ITIS_BASE_URL + 'getCommonNamesFromTSN', payload={'tsn': tsn}) commmon_names = results.xpath('//ax21:commonNames', namespaces=NS21) if as_dataframe and pd: return xml_utils.element_to_df(commmon_names) else: return xml_utils.element_to_list(commmon_names)
def get_rank_names(as_dataframe=True, **kwargs): """ Provides a list of all the unique rank names contained in the database and their kingdom and rank ID values. Parameters ---------- as_dataframe : bool if True return pandas dataframe, if False return list of dictionaries kwargs Returns ------- """ results = _get_xml(ITIS_BASE_URL + "getRankNames", payload={}) rank_names = results.xpath("//ax23:rankNames", namespaces=NS23) if as_dataframe and pd: return xml_utils.element_to_df(rank_names) else: return xml_utils.element_to_list(rank_names)
def get_currency_from_tsn(tsn, as_dataframe=True, **kwargs): """ Returns a list of items from the ITIS getFullHierarchyFromTSN function. The resulting pandas dataframe or list of dictionaries contains the tsn, as well as common name Parameters ---------- tsn : int The ITIS taxonomic serial number to query as_dataframe : bool if True return pandas dataframe, if False return list of dictionaries Returns ------- pandas dataframe or list of dictionaries with common names and tsns """ results = _get_xml(ITIS_BASE_URL + "getCurrencyFromTSN", payload={"tsn": tsn}) if as_dataframe and pd: return xml_utils.element_to_df(results) else: return xml_utils.element_to_list(results)