diff --git a/src/notebooks/Python Examples/maps_using_samples_genomes_and_studies_datasets.ipynb b/src/notebooks/Python Examples/maps_using_samples_genomes_and_studies_datasets.ipynb new file mode 100644 index 0000000..c5f5a21 --- /dev/null +++ b/src/notebooks/Python Examples/maps_using_samples_genomes_and_studies_datasets.ipynb @@ -0,0 +1,2298 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "04e67a84-d34d-45a8-b7d5-9747b383541e", + "metadata": {}, + "source": [ + "
" + ] + }, + { + "cell_type": "markdown", + "id": "69b6aa7a-421c-4d79-9404-3f7ba7cb5140", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "id": "4c42744c-cda5-4427-9123-55da7787bd5e", + "metadata": {}, + "source": [ + "# Locate samples on a map" + ] + }, + { + "cell_type": "markdown", + "id": "fc82aa0a-e462-4ad6-855c-b29360af601f", + "metadata": {}, + "source": [ + "**This notebook aimed to give a few examples of maps that can be drawn from MGnify MAGs samples, studies and genomes data.**\n", + "\n", + "This notebook is divided in 6 sections:\n", + "- 1: Libraries needed to run the full notebook and Spark Session\n", + "- 2: Load previously queried and saved datasets (Here we use the `studies`, `genomes` and `samples` as an example).\n", + "- 3: Join the three datasets together \n", + "- 4: First map example: `Interactive Map` representing the `Number of Genomes according to their geographic origin` (in this case per continents).\n", + "- 5: Second map example: `Number of Samples per country vs. Number of Genomes per country` on two different interactive maps displayed side-by-side.\n", + "- 6: Third map example: Use of the `samples' latitude and longitude` to bring samples, genomes and studies together on an `interactive map`.\n", + "\n", + "This is an interactive code notebook (a Jupyter Notebook).\n", + "To run this code, click into each cell and press the ▶ button in the top toolbar, or press `shift+enter`." + ] + }, + { + "cell_type": "markdown", + "id": "a96cee29-4b47-4203-bce1-580ef465b5a9", + "metadata": {}, + "source": [ + "## Libraries and Spark Session" + ] + }, + { + "cell_type": "markdown", + "id": "7f44cb39-3f57-4d1e-8ae0-6db250a32a95", + "metadata": {}, + "source": [ + "### Import python libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "117ec8b1-2fb7-4d01-a013-314cf6b95504", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Dataframes and display\n", + "import pandas as pd\n", + "\n", + "from pyspark.sql import SparkSession\n", + "import pyspark.sql.functions as F\n", + "from pyspark.sql import Window as W\n", + "\n", + "# Transformation data\n", + "from functools import reduce\n", + "\n", + "# Map plots\n", + "import geopandas as gpd\n", + "from lets_plot import *\n", + "from lets_plot import tilesets\n", + "\n", + "LetsPlot.setup_html()\n", + "\n", + "# Warning verbosity\n", + "import warnings \n", + "warnings.filterwarnings(action=\"ignore\")" + ] + }, + { + "cell_type": "markdown", + "id": "885bad4a-b51c-4efd-be0a-83a4e24b5341", + "metadata": {}, + "source": [ + "### Create Spark Session" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "4b10b63b-cd40-4db4-9785-c06048bb8447", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Setting default log level to \"WARN\".\n", + "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "22/12/01 15:04:20 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable\n" + ] + } + ], + "source": [ + "spark = SparkSession.builder.getOrCreate()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a3c8e024-afcb-48a0-ba2c-70bbf60a1191", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "

SparkSession - in-memory

\n", + " \n", + "
\n", + "

SparkContext

\n", + "\n", + "

Spark UI

\n", + "\n", + "
\n", + "
Version
\n", + "
v3.3.1
\n", + "
Master
\n", + "
local[*]
\n", + "
AppName
\n", + "
pyspark-shell
\n", + "
\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "spark" + ] + }, + { + "cell_type": "markdown", + "id": "232184c8-c511-4286-b7de-d08546dadf62", + "metadata": {}, + "source": [ + "## Load the datafiles" + ] + }, + { + "cell_type": "markdown", + "id": "33668052-4698-4ba2-8d1b-de1fae7abdb9", + "metadata": {}, + "source": [ + "### Load the `studies` dataset" + ] + }, + { + "cell_type": "markdown", + "id": "9b55a3aa-535f-46be-b72e-91299706565a", + "metadata": {}, + "source": [ + "A sample of the studies dataset has been queried and saved as parquet file beforehand. To query from MGnify API, please refer to the following python notebook:`genome_search_example.ipynb`. \n", + "\n", + "For the studies dataset, use `studies` endpoint. \n", + "A complete list of endpoints can be found at https://www.ebi.ac.uk/metagenomics/api/v1/." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "e4331fa5-0ee6-403b-82ee-6b1b2f498b0d", + "metadata": {}, + "outputs": [], + "source": [ + "studies_df = spark.read.parquet('outputs/parquets/studies')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5f5ca70a-aff3-4c00-b7d2-1859950c9b91", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4475" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "studies_df.count()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "965160e8-259d-47ff-83e9-45cc5ee4037b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "14" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(studies_df.columns)" + ] + }, + { + "cell_type": "markdown", + "id": "f3441e58-3d35-47db-982c-3f2e62ee9886", + "metadata": {}, + "source": [ + "**Output:** The studies dataset has 4475 rows and 14 columns." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "7b0b74a7-7149-4b23-bd6c-6f019ae49bbf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+--------------------+------------------------------+\n", + "|attributes.accession|attributes.secondary-accession|\n", + "+--------------------+------------------------------+\n", + "| MGYS00006074| ERP135767|\n", + "| MGYS00006073| ERP140676|\n", + "| MGYS00006072| ERP139784|\n", + "| MGYS00006034| ERP134737|\n", + "| MGYS00000596| ERP012803|\n", + "| MGYS00006069| ERP133351|\n", + "| MGYS00005968| ERP133894|\n", + "| MGYS00006067| ERP137915|\n", + "| MGYS00001935| ERP090011|\n", + "| MGYS00006063| ERP140432|\n", + "| MGYS00006041| ERP125469|\n", + "| MGYS00005766| ERP122587|\n", + "| MGYS00005757| ERP129176|\n", + "| MGYS00006060| ERP137998|\n", + "| MGYS00006061| ERP137544|\n", + "| MGYS00006059| ERP130476|\n", + "| MGYS00006058| ERP136659|\n", + "| MGYS00006057| ERP138845|\n", + "| MGYS00003941| ERP111525|\n", + "| MGYS00006056| ERP137364|\n", + "+--------------------+------------------------------+\n", + "only showing top 20 rows\n", + "\n" + ] + } + ], + "source": [ + "studies_df.select('`attributes.accession`', '`attributes.secondary-accession`').show()" + ] + }, + { + "cell_type": "markdown", + "id": "65b8ed86-3b35-4020-b201-eb02728e3be0", + "metadata": {}, + "source": [ + "**Output:** The column `attributes.secondary-accession` allows to link the `studies` dataset to the `genome` dataset." + ] + }, + { + "cell_type": "markdown", + "id": "eedbc84a-5221-4d6e-adec-44343194e6f1", + "metadata": {}, + "source": [ + "### Load the `genomes` dataset" + ] + }, + { + "cell_type": "markdown", + "id": "0479873b-f338-4c46-8091-345db1d35108", + "metadata": {}, + "source": [ + "A sample of the studies dataset has been queried and saved as parquet file beforehand. To query from MGnify API, please refer to the following python notebook:`genome_search_example.ipynb`. \n", + "\n", + "For the studies dataset, use `genomes` endpoint. \n", + "A complete list of endpoints can be found at https://www.ebi.ac.uk/metagenomics/api/v1/." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e1af0c91-da3b-478a-8bb5-fd8388afa305", + "metadata": {}, + "outputs": [], + "source": [ + "genomes_df = spark.read.parquet('outputs/parquets/genomes')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "d523126d-8b4a-4c3f-be3d-325caf4d8a18", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "9421" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "genomes_df.count()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "b3a1a8a3-1449-422b-9282-c6638ba5a539", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "37" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(genomes_df.columns)" + ] + }, + { + "cell_type": "markdown", + "id": "6e145f60-9f01-48b8-871c-d88bb63a7489", + "metadata": {}, + "source": [ + "**Outputs:** The genomes dataset has 9421 rows and 37 columns." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "af6e4fce-dc51-4378-96e2-27cc931976db", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+--------------------+------------------------------+-------------------------------+\n", + "|attributes.accession|attributes.ena-study-accession|attributes.ena-sample-accession|\n", + "+--------------------+------------------------------+-------------------------------+\n", + "| MGYG000299273| ERP108069| ERS7599803|\n", + "| MGYG000299272| ERP127228| ERS6080759|\n", + "| MGYG000299270| ERP127229| ERS7365004|\n", + "| MGYG000299265| SRP311368| null|\n", + "| MGYG000299259| ERP127228| ERS6080683|\n", + "| MGYG000299258| DRP005925| ERS7766739|\n", + "| MGYG000299256| ERP127228| ERS6080782|\n", + "| MGYG000299253| SRP311368| null|\n", + "| MGYG000299252| ERP127228| ERS6080700|\n", + "| MGYG000299251| SRP311368| null|\n", + "| MGYG000299249| DRP005925| ERS7766741|\n", + "| MGYG000299246| SRP256368| null|\n", + "| MGYG000299240| ERP125117| ERS7621739|\n", + "| MGYG000299237| ERP126158| ERS6076923|\n", + "| MGYG000299236| ERP108069| ERS7599781|\n", + "| MGYG000299235| SRP256368| null|\n", + "| MGYG000299231| ERP108069| ERS7599792|\n", + "| MGYG000299227| SRP311368| null|\n", + "| MGYG000299223| SRP311368| null|\n", + "| MGYG000299216| ERP125117| ERS7621677|\n", + "+--------------------+------------------------------+-------------------------------+\n", + "only showing top 20 rows\n", + "\n" + ] + } + ], + "source": [ + "genomes_df.select('`attributes.accession`', '`attributes.ena-study-accession`', '`attributes.ena-sample-accession`').show()" + ] + }, + { + "cell_type": "markdown", + "id": "f82b5430-b573-45b5-8166-f6273a9af404", + "metadata": {}, + "source": [ + "**Output:** The column `attributes.ena-study-accession` allows to link the `studies` dataset to the `genomes` dataset and the column `attributes.ena-sample-accession` allows to link the `samples` dataset to the `genomes` dataset." + ] + }, + { + "cell_type": "markdown", + "id": "30ca689f-f759-4f0c-a9f5-a954db19270f", + "metadata": {}, + "source": [ + "### Load the `samples` datase`" + ] + }, + { + "cell_type": "markdown", + "id": "547a5534-8e64-4e43-98e7-cc49d6d15fc2", + "metadata": {}, + "source": [ + "A sample of the studies dataset has been queried and saved as parquet file beforehand. To query from MGnify API, please refer to the following python notebook:`genome_search_example.ipynb`. \n", + "\n", + "For the studies dataset, use `samples` endpoint. \n", + "A complete list of endpoints can be found at https://www.ebi.ac.uk/metagenomics/api/v1/." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "5df5e1d0-646c-45aa-bd6e-65a7b053c4e5", + "metadata": {}, + "outputs": [], + "source": [ + "samples_df = spark.read.parquet('outputs/parquets/samples.parquet')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "3585975b-87c2-4302-b4dc-95d36563e92e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "root\n", + " |-- data: array (nullable = true)\n", + " | |-- element: struct (containsNull = true)\n", + " | | |-- attributes: struct (nullable = true)\n", + " | | | |-- accession: string (nullable = true)\n", + " | | | |-- analysis-completed: string (nullable = true)\n", + " | | | |-- biosample: string (nullable = true)\n", + " | | | |-- collection-date: string (nullable = true)\n", + " | | | |-- environment-biome: string (nullable = true)\n", + " | | | |-- environment-feature: string (nullable = true)\n", + " | | | |-- environment-material: string (nullable = true)\n", + " | | | |-- geo-loc-name: string (nullable = true)\n", + " | | | |-- host-tax-id: long (nullable = true)\n", + " | | | |-- last-update: string (nullable = true)\n", + " | | | |-- latitude: double (nullable = true)\n", + " | | | |-- longitude: double (nullable = true)\n", + " | | | |-- sample-alias: string (nullable = true)\n", + " | | | |-- sample-desc: string (nullable = true)\n", + " | | | |-- sample-metadata: array (nullable = true)\n", + " | | | | |-- element: struct (containsNull = true)\n", + " | | | | | |-- key: string (nullable = true)\n", + " | | | | | |-- unit: string (nullable = true)\n", + " | | | | | |-- value: string (nullable = true)\n", + " | | | |-- sample-name: string (nullable = true)\n", + " | | | |-- species: string (nullable = true)\n", + " | | |-- id: string (nullable = true)\n", + " | | |-- links: struct (nullable = true)\n", + " | | | |-- self: string (nullable = true)\n", + " | | |-- relationships: struct (nullable = true)\n", + " | | | |-- biome: struct (nullable = true)\n", + " | | | | |-- data: struct (nullable = true)\n", + " | | | | | |-- id: string (nullable = true)\n", + " | | | | | |-- type: string (nullable = true)\n", + " | | | | |-- links: struct (nullable = true)\n", + " | | | | | |-- related: string (nullable = true)\n", + " | | | |-- runs: struct (nullable = true)\n", + " | | | | |-- links: struct (nullable = true)\n", + " | | | | | |-- related: string (nullable = true)\n", + " | | | |-- studies: struct (nullable = true)\n", + " | | | | |-- data: array (nullable = true)\n", + " | | | | | |-- element: struct (containsNull = true)\n", + " | | | | | | |-- id: string (nullable = true)\n", + " | | | | | | |-- links: struct (nullable = true)\n", + " | | | | | | | |-- self: string (nullable = true)\n", + " | | | | | | |-- type: string (nullable = true)\n", + " | | | | |-- links: struct (nullable = true)\n", + " | | | | | |-- related: string (nullable = true)\n", + " | | |-- type: string (nullable = true)\n", + " |-- links: struct (nullable = true)\n", + " | |-- first: string (nullable = true)\n", + " | |-- last: string (nullable = true)\n", + " | |-- next: string (nullable = true)\n", + " | |-- prev: string (nullable = true)\n", + " |-- meta: struct (nullable = true)\n", + " | |-- pagination: struct (nullable = true)\n", + " | | |-- count: long (nullable = true)\n", + " | | |-- page: long (nullable = true)\n", + " | | |-- pages: long (nullable = true)\n", + "\n" + ] + } + ], + "source": [ + "samples_df.printSchema()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "b6f822e6-469e-4920-ba28-f0f75fb0b5cf", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(samples_df.columns)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "7c72a7e1-894b-4f0f-bdf7-373b0e0d9411", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "997" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "samples_df.count()" + ] + }, + { + "cell_type": "markdown", + "id": "79d350bc-dcd5-4297-9d01-380b99cc860b", + "metadata": {}, + "source": [ + "**Output:** In our example here, the 'samples' dataset parquet has been queried with links and metadata. We need to `explode` the dataset in order to acces the attributes as single column as it is the case for the two other datasets." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "c6b17f85-4800-465f-8302-b604e8743495", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from IPython.core.display import HTML\n", + "display(HTML(\"\"))" + ] + }, + { + "cell_type": "markdown", + "id": "c406f89f-eca3-40c2-964a-070692b84858", + "metadata": {}, + "source": [ + "**Output:** The lines above will allow to visualise the data in a 'human-readable manner'." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "187331c4-9248-442b-afc6-da966e931a6d", + "metadata": {}, + "outputs": [], + "source": [ + "samples = samples_df.select(F.explode('data')).select('col.id', 'col.attributes.*', 'col.links', 'col.relationships.*', 'col.type')" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "bd1c6366-f8f7-4859-851f-234ab19b7d23", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+----------+----------+------------------+------------+---------------+---------------------+-------------------+--------------------+------------+-----------+-------------------+--------+---------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------+--------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+\n", + "|id |accession |analysis-completed|biosample |collection-date|environment-biome |environment-feature|environment-material|geo-loc-name|host-tax-id|last-update |latitude|longitude|sample-alias |sample-desc |sample-metadata |sample-name |species|links |biome |runs |studies |type |\n", + "+----------+----------+------------------+------------+---------------+---------------------+-------------------+--------------------+------------+-----------+-------------------+--------+---------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------+--------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+\n", + "|ERS1237320|ERS1237320|null |SAMEA4066210|2011-05-26 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:29:38|54.3384 |10.12 |125_3_fecal |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-05-26}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, fecal}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, fecal}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2-/-}, {host sex, null, male}] |125_3_fecal |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237320}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237320/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237320/studies}}|samples|\n", + "|ERS1237321|ERS1237321|null |SAMEA4066211|2011-07-21 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:29:13|54.3384 |10.12 |125_4_jejunum|The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-07-21}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, jejunum}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, jejunum}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2-/-}, {host sex, null, male}] |125_4_jejunum|null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237321}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237321/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237321/studies}}|samples|\n", + "|ERS1237322|ERS1237322|null |SAMEA4066212|2011-06-09 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:28:53|54.3384 |10.12 |125_5_fecal |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-06-09}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, fecal}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, fecal}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2-/-}, {host sex, null, male}] |125_5_fecal |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237322}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237322/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237322/studies}}|samples|\n", + "|ERS1237323|ERS1237323|null |SAMEA4066213|2011-07-21 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:28:30|54.3384 |10.12 |125_6_ileum |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-07-21}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, ileum}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, ileum}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2-/-}, {host sex, null, male}] |125_6_ileum |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237323}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237323/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237323/studies}}|samples|\n", + "|ERS1237325|ERS1237325|null |SAMEA4066215|2011-05-22 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:28:07|54.3384 |10.12 |131_1_fecal |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-05-22}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, fecal}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, fecal}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2+/-}, {host sex, null, female}] |131_1_fecal |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237325}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237325/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237325/studies}}|samples|\n", + "|ERS1237326|ERS1237326|null |SAMEA4066216|2011-07-31 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:27:46|54.3384 |10.12 |131_11_colon |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-07-31}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, colon}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, colon}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2+/-}, {host sex, null, female}] |131_11_colon |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237326}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237326/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237326/studies}}|samples|\n", + "|ERS1237327|ERS1237327|null |SAMEA4066217|2011-07-31 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:27:19|54.3384 |10.12 |131_11_fecal |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-07-31}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, fecal}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, fecal}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2+/-}, {host sex, null, female}] |131_11_fecal |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237327}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237327/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237327/studies}}|samples|\n", + "|ERS1237333|ERS1237333|null |SAMEA4066223|2011-05-22 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:26:57|54.3384 |10.12 |132_1_fecal |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-05-22}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, fecal}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, fecal}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2-/-}, {host sex, null, female}] |132_1_fecal |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237333}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237333/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237333/studies}}|samples|\n", + "|ERS1237334|ERS1237334|null |SAMEA4066224|2011-07-31 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:26:35|54.3384 |10.12 |132_11_colon |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-07-31}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, colon}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, colon}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2-/-}, {host sex, null, female}] |132_11_colon |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237334}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237334/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237334/studies}}|samples|\n", + "|ERS1237335|ERS1237335|null |SAMEA4066225|2011-07-31 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:26:14|54.3384 |10.12 |132_11_fecal |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-07-31}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, fecal}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, fecal}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2-/-}, {host sex, null, female}] |132_11_fecal |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237335}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237335/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237335/studies}}|samples|\n", + "|ERS1237336|ERS1237336|null |SAMEA4066226|2011-06-05 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:25:54|54.3384 |10.12 |132_3_fecal |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-06-05}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, fecal}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, fecal}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2-/-}, {host sex, null, female}] |132_3_fecal |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237336}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237336/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237336/studies}}|samples|\n", + "|ERS1237337|ERS1237337|null |SAMEA4066227|2011-07-31 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:25:32|54.3384 |10.12 |132_4_jejunum|The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-07-31}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, jejunum}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, jejunum}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2-/-}, {host sex, null, female}]|132_4_jejunum|null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237337}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237337/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237337/studies}}|samples|\n", + "|ERS1237338|ERS1237338|null |SAMEA4066228|2011-06-19 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:25:10|54.3384 |10.12 |132_5_fecal |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-06-19}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, fecal}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, fecal}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2-/-}, {host sex, null, female}] |132_5_fecal |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237338}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237338/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237338/studies}}|samples|\n", + "|ERS1237339|ERS1237339|null |SAMEA4066229|2011-07-31 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:24:49|54.3384 |10.12 |132_6_ileum |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-07-31}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, ileum}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, ileum}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2-/-}, {host sex, null, female}] |132_6_ileum |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237339}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237339/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237339/studies}}|samples|\n", + "|ERS1237340|ERS1237340|null |SAMEA4066230|2011-07-31 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:24:26|54.3384 |10.12 |132_8_cecum |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-07-31}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, cecum}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, cecum}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2-/-}, {host sex, null, female}] |132_8_cecum |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237340}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237340/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237340/studies}}|samples|\n", + "|ERS1237341|ERS1237341|null |SAMEA4066231|2011-05-22 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:24:05|54.3384 |10.12 |133_1_fecal |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-05-22}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, fecal}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, fecal}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2+/-}, {host sex, null, female}] |133_1_fecal |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237341}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237341/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237341/studies}}|samples|\n", + "|ERS1237342|ERS1237342|null |SAMEA4066232|2011-07-31 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:23:42|54.3384 |10.12 |133_11_colon |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-07-31}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, colon}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, colon}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2+/-}, {host sex, null, female}] |133_11_colon |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237342}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237342/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237342/studies}}|samples|\n", + "|ERS1237343|ERS1237343|null |SAMEA4066233|2011-07-31 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:23:20|54.3384 |10.12 |133_11_fecal |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-07-31}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, fecal}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, fecal}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2+/-}, {host sex, null, female}] |133_11_fecal |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237343}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237343/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237343/studies}}|samples|\n", + "|ERS1237344|ERS1237344|null |SAMEA4066234|2011-06-05 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:22:57|54.3384 |10.12 |133_3_fecal |The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-06-05}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, fecal}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, fecal}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2+/-}, {host sex, null, female}] |133_3_fecal |null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237344}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237344/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237344/studies}}|samples|\n", + "|ERS1237345|ERS1237345|null |SAMEA4066235|2011-07-31 |intestine environment|microbial feature |organic material |null |10090 |2022-08-22T09:22:34|54.3384 |10.12 |133_4_jejunum|The FUT2 gene encodes an α-1,2-fucosyltransferase responsible for the expression of ABO histo-blood-group antigens on mucosal surfaces and bodily secretions. Individuals who carry at least one functional allele are known as “secretors”, whereas those homozygous for loss-of- function mutations are known as “nonsecretors”. Nonsecretor individuals are more susceptible to chronic inflammatory disorders such as Crohn Disease, which may be mediated by alterations in the microbiome. Here, we investigated the dynamics of microbial community assembly with respect to genotype using a Fut2-deficient mouse model, taking the genotype of the maternal lineage over two generations into account. We found strong differences in community assembly of microbial communities over time, depending on the Fut2 genotype of the host and that of their progenitors. By applying interaction network analyses, we further identified patterns of specialization and stabilization over time, which are influenced by the host and parental genotype during the process of community development. We also show genotype- and breeding-dependent patterns of community susceptibility to disturbance in a novel in silico approach integrating ecological- and network analysis. Our results indicate that it may be important to investigate the influence of Fut2 genotype in a familial context in order to fully understand its role in the etiology of chronic inflammatory disorders.|[{investigation type, null, metagenome}, {project name, null, Fut2 metagenome}, {geographic location (longitude), null, 10.120036}, {geographic location (country and/or sea,region), null, Germany}, {collection date, null, 2011-07-31}, {environment (biome), null, intestine environment}, {environment (feature), null, microbial feature}, {environment (material), null, organic material}, {environmental package, null, host-associated}, {target gene, null, 16S rRNA}, {sequencing method, null, Illumina}, {body site, null, jejunum}, {host taxid, null, 10090}, {geographic location (latitude), null, 54.33841}, {gravidity, null, jejunum}, {ENA checklist, null, ERC000013}, {host genotype, null, Fut2+/-}, {host sex, null, female}]|133_4_jejunum|null |{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237345}|{{root:Host-associated:Mammals:Gastrointestinal tract, biomes}, {https://www.ebi.ac.uk/metagenomics/api/v1/biomes/root:Host-associated:Mammals:Gastrointestinal%20tract}}|{{https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237345/runs}}|{[{MGYS00006054, {https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00006054}, studies}], {https://www.ebi.ac.uk/metagenomics/api/v1/samples/ERS1237345/studies}}|samples|\n", + "+----------+----------+------------------+------------+---------------+---------------------+-------------------+--------------------+------------+-----------+-------------------+--------+---------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------+--------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+\n", + "only showing top 20 rows\n", + "\n" + ] + } + ], + "source": [ + "samples.show(truncate=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "cdc3d854-250e-46c8-8a95-1babe58573e5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "24925" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "samples.count()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "af4582a7-b0f7-47a0-88c3-752c04803508", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "23" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(samples.columns)" + ] + }, + { + "cell_type": "markdown", + "id": "74eca63c-8a5e-4fda-9866-e314c5e45a3c", + "metadata": {}, + "source": [ + "**Output:** The samples dataset has 24925 rows and 23 columns." + ] + }, + { + "cell_type": "markdown", + "id": "1f4fa42b-e213-4a16-9ad8-390e3504a4ac", + "metadata": {}, + "source": [ + "## Join the 3 datasets into one datasets based on their unique IDs." + ] + }, + { + "cell_type": "markdown", + "id": "c39e7833-20d2-4476-a9e4-4c04fab1af53", + "metadata": {}, + "source": [ + "### Join the `studies` dataset on the `genomes` dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "174b9188-0f5f-4926-9cbe-a2118ebcf23d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "8558" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "genomes_df.filter(F.col('`attributes.ena-study-accession`').isNotNull()).count()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "23a7d761-9d44-499d-ac86-365d18114286", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "99" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "genomes_df.filter(F.col('`attributes.ena-study-accession`').isNotNull()).select('`attributes.ena-study-accession`').distinct().count()" + ] + }, + { + "cell_type": "markdown", + "id": "12d38874-7167-443c-b942-85519e217999", + "metadata": {}, + "source": [ + "**Outputs:** Among the 9421 rows of the genomes dataset, 8558 have a reference to a study. \n", + "This example dataset has only references to 99 different studies.\n", + "\n", + "*Note: Those datasets are only a sample of the data available on the MGnify API.*" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "08d226ab-b27a-47ad-8b1d-321b46b13631", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4475" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "studies_df.filter(F.col('`attributes.secondary-accession`').isNotNull()).count()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "d252a467-f558-4937-8f8e-0172170d90c5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4475" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "studies_df.filter(F.col('`attributes.secondary-accession`').isNotNull()).select('`attributes.secondary-accession`').distinct().count()" + ] + }, + { + "cell_type": "markdown", + "id": "b60318e9-b2d2-436b-8302-dfe3657ed86a", + "metadata": {}, + "source": [ + "**Outputs:** Each entry of the `studies` dataset have a `unique reference ID`." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "dede6981-a418-4aaa-8d6b-2879427a45aa", + "metadata": {}, + "outputs": [], + "source": [ + "new_df = genomes_df.join(\n", + " reduce(lambda df, x: df.withColumnRenamed(x, f'studies_{x}'),\n", + " studies_df.columns,\n", + " studies_df,\n", + " ), \n", + " F.col('`attributes.ena-study-accession`')==F.col('`studies_attributes.secondary-accession`'), \n", + " 'left',\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "8ca588c4-b561-4ddc-8688-cc2b73dbb022", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "9421" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_df.count()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "71e6d8e3-2328-401d-94d2-7892450715e9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+--------------------+------------------------------+-------------------------------+--------------------------------------+\n", + "|attributes.accession|attributes.ena-study-accession|attributes.ena-sample-accession|studies_attributes.secondary-accession|\n", + "+--------------------+------------------------------+-------------------------------+--------------------------------------+\n", + "| MGYG000299273| ERP108069| ERS7599803| ERP108069|\n", + "| MGYG000299272| ERP127228| ERS6080759| null|\n", + "| MGYG000299270| ERP127229| ERS7365004| null|\n", + "| MGYG000299265| SRP311368| null| null|\n", + "| MGYG000299259| ERP127228| ERS6080683| null|\n", + "| MGYG000299258| DRP005925| ERS7766739| null|\n", + "| MGYG000299256| ERP127228| ERS6080782| null|\n", + "| MGYG000299253| SRP311368| null| null|\n", + "| MGYG000299252| ERP127228| ERS6080700| null|\n", + "| MGYG000299251| SRP311368| null| null|\n", + "| MGYG000299249| DRP005925| ERS7766741| null|\n", + "| MGYG000299246| SRP256368| null| SRP256368|\n", + "| MGYG000299240| ERP125117| ERS7621739| ERP125117|\n", + "| MGYG000299237| ERP126158| ERS6076923| ERP126158|\n", + "| MGYG000299236| ERP108069| ERS7599781| ERP108069|\n", + "| MGYG000299235| SRP256368| null| SRP256368|\n", + "| MGYG000299231| ERP108069| ERS7599792| ERP108069|\n", + "| MGYG000299227| SRP311368| null| null|\n", + "| MGYG000299223| SRP311368| null| null|\n", + "| MGYG000299216| ERP125117| ERS7621677| ERP125117|\n", + "+--------------------+------------------------------+-------------------------------+--------------------------------------+\n", + "only showing top 20 rows\n", + "\n" + ] + } + ], + "source": [ + "new_df.select('`attributes.accession`', '`attributes.ena-study-accession`', '`attributes.ena-sample-accession`', '`studies_attributes.secondary-accession`').show()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "66c4eb5d-2969-44a2-a586-f7baa86ebf05", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "43" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_df.filter(F.col('`studies_attributes.secondary-accession`').isNotNull()).select('`attributes.ena-study-accession`').distinct().count()" + ] + }, + { + "cell_type": "markdown", + "id": "f79c13b1-a8cb-4b95-af8f-5bde65ac74b7", + "metadata": {}, + "source": [ + "**Output:** Only 43 of the `attributes.ena-study-accession` references have a corresponding entry in the studies dataset." + ] + }, + { + "cell_type": "markdown", + "id": "cc00e951-8c04-427b-9272-6dfc88a23ad4", + "metadata": {}, + "source": [ + "### Join the `samples` dataset on the genomes-studies dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "7820c7bc-3c42-4be1-a426-3d5d685bebb0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "24925" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "samples.filter(F.col('id').isNotNull()).count()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "36365756-ce33-4c06-adca-2431acdfbdfe", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "24925" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "samples.filter(F.col('id').isNotNull()).select('id').distinct().count()" + ] + }, + { + "cell_type": "markdown", + "id": "0c494b9a-b0fd-4acd-8e2f-4a4a63f71be9", + "metadata": {}, + "source": [ + "**Output:** The 24925 samples entries have a unique identifier." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "cb9f848e-2b8d-4ab0-9977-89d98862006b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "8440" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_df.filter(F.col('`attributes.ena-sample-accession`').isNotNull()).count()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "ae37e96e-e573-46a3-9915-b813a1bcc78f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7183" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_df.filter(F.col('`attributes.ena-sample-accession`').isNotNull()).select('`attributes.ena-sample-accession`').distinct().count()" + ] + }, + { + "cell_type": "markdown", + "id": "c7c128e7-b2ef-44c4-8539-a2e4a24e9382", + "metadata": {}, + "source": [ + "**Output:** Among the 9421 genome entry, 8440 have a reference to a sample id and several genomes can be related to the same sample." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "fb1fd7b4-cedf-4fa2-aa82-b31b004df9f0", + "metadata": {}, + "outputs": [], + "source": [ + "final_df = samples.join(\n", + " reduce(lambda df, x: df.withColumnRenamed(x, f'g_{x}'),\n", + " new_df.columns,\n", + " new_df,\n", + " ), \n", + " F.col('`g_attributes.ena-sample-accession`')==F.col('id'), \n", + " 'full',\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "bdc5e36a-4c32-4e06-90ec-c2257296e779", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "34249" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_df.count()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "47074303-cccd-40aa-a0a8-8fe5119630b8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "74" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(final_df.columns)" + ] + }, + { + "cell_type": "markdown", + "id": "d9eab71c-b66c-4f39-b976-75d04969a31c", + "metadata": {}, + "source": [ + "**Output:** The final dataframe has 34249 rows and 74 columns." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "58fc7c61-bcb4-4242-949b-77b0c982bcd6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "156" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_df.filter((F.col('`g_attributes.ena-sample-accession`').isNotNull()) & (F.col('id').isNotNull())).count()" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "b5e49650-aff9-43e8-9c0b-7182b354b420", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "97" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_df.filter((F.col('`g_attributes.ena-sample-accession`').isNotNull()) & (F.col('id').isNotNull())).select('id').distinct().count()" + ] + }, + { + "cell_type": "markdown", + "id": "43a2e74f-ee5f-45ec-83e6-e67386433aa4", + "metadata": {}, + "source": [ + "**Output:** 97 samples have correspondences in the genomes dataset." + ] + }, + { + "cell_type": "markdown", + "id": "ab9ad8c7-4103-4e04-950d-c5505f386797", + "metadata": {}, + "source": [ + "## First map example: Interactive Map representing the Number of Genomes according to their geographic origin" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "4dd5d663-d4ee-4447-8dde-e048c2eb9533", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "9421" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_df.filter(F.col('`g_attributes.geographic-origin`').isNotNull()).count()" + ] + }, + { + "cell_type": "markdown", + "id": "55e7ddb2-002a-4f14-b2e1-f487a03a17fc", + "metadata": {}, + "source": [ + "**Outputs:** All the genomes (9421 entries) present in the dataset (see Section: **Load the `genomes` dataset**) have a non-null geographic origin." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "40dc7485-9fcd-4939-b2fc-c0e2161eda95", + "metadata": {}, + "outputs": [], + "source": [ + "continents = [continent[0] for continent in final_df.filter(F.col('`g_attributes.geographic-origin`').isNotNull()).groupBy('`g_attributes.geographic-origin`').count().toLocalIterator()]" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "63c8b32e-f234-43bd-8376-92b3f6a8eaf4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Europe',\n", + " 'Africa',\n", + " 'North America',\n", + " 'South America',\n", + " 'not provided',\n", + " 'Oceania',\n", + " 'Asia']" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "continents" + ] + }, + { + "cell_type": "markdown", + "id": "3e503ac0-1b0c-4418-a593-3257787f273f", + "metadata": {}, + "source": [ + "**Outputs:** Get the list of the continents represented. As we can see, despite all the entries have a value, the value can be `not provided`." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "fda97a6c-4248-46db-b62a-0e3794bc7394", + "metadata": {}, + "outputs": [], + "source": [ + "genomes_count = [genomes[1] for genomes in final_df.filter(F.col('`g_attributes.geographic-origin`').isNotNull()).groupBy('`g_attributes.geographic-origin`').count().toLocalIterator()]" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "c4680f1c-8497-4827-8123-169af042d70e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[3748, 829, 1361, 93, 1708, 342, 1340]" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "genomes_count" + ] + }, + { + "cell_type": "markdown", + "id": "ed1aa35d-e741-48aa-9abf-e4852a327fb1", + "metadata": {}, + "source": [ + "**Outputs:** Get the list of the count per continents. The `not provided` count is 1708 and represent `app. 18%` of the genome data.\n", + "\n", + "Those genomes will be excluded from the map." + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "ca3938ef-1384-413a-a228-636355252661", + "metadata": {}, + "outputs": [], + "source": [ + "world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "31a92316-0512-414c-a873-893c64d10fe0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['Oceania', 'Africa', 'North America', 'Asia', 'South America',\n", + " 'Europe', 'Seven seas (open ocean)', 'Antarctica'], dtype=object)" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "world.continent.unique()" + ] + }, + { + "cell_type": "markdown", + "id": "91aaa560-8a8f-483b-a2b4-b464b34e72b2", + "metadata": {}, + "source": [ + "**Outputs:** `world` represents our base map that will be filled with the data. " + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "b425634b-2cef-41f3-abfa-bafae4e3dc1e", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a dictionary of the data that will be used for the map\n", + "continents_data = dict(\n", + " geographical_origin = continents,\n", + " count = genomes_count\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "82e93038-6b72-4fb5-b027-fce52eebd1be", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'geographical_origin': ['Europe',\n", + " 'Africa',\n", + " 'North America',\n", + " 'South America',\n", + " 'not provided',\n", + " 'Oceania',\n", + " 'Asia'],\n", + " 'count': [3748, 829, 1361, 93, 1708, 342, 1340]}" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "continents_data" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "a5a22918-5954-48eb-86ec-1f353aacb5ec", + "metadata": {}, + "outputs": [], + "source": [ + "# Parameters for the map display (will be reused in the next section)\n", + "world_limits = coord_map(ylim=[-80, 85])\n", + "map_theme = theme(axis_line='blank', axis_text='blank', axis_ticks='blank', axis_title='blank')" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "ed24c69c-59d1-4c6d-a8b9-00718935c911", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Join `data` dictionary and `map` world using the `map_join` parameter.\n", + "(ggplot()\n", + " + geom_map(aes(fill='count'), \n", + " data=continents_data, \n", + " map=world,\n", + " map_join=['geographical_origin', 'continent'], \n", + " color=\"white\",\n", + " tooltips=layer_tooltips().line(\"^fill count\"))\n", + " + ggtitle('Number of genomes according to their geographical origin')\n", + " + scale_fill_gradient(low='#79f8f8', high=\"#cf0a1d\", name=\"Number of genomes\")\n", + " + ggsize(800, 400)\n", + " + world_limits\n", + " + map_theme\n", + ") " + ] + }, + { + "cell_type": "markdown", + "id": "30565374-81a2-4d10-a683-97c8d53d4347", + "metadata": {}, + "source": [ + "**Output:** Interactive map representing the count of genome according to their geographic origin. \n", + "\n", + "Hovering the map with the mouse curser allow the user to see the exact genome count per continent." + ] + }, + { + "cell_type": "markdown", + "id": "efd52e1e-6741-4cb8-96bf-6b274dca0fe3", + "metadata": {}, + "source": [ + "## Second map example: Number of Samples per country vs. Number of Genomes per country." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "7557e129-b3c6-4e04-8442-dc386bccb4e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3846" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_df.filter(F.col('geo-loc-name').isNotNull()).count()" + ] + }, + { + "cell_type": "markdown", + "id": "5cca5871-8b76-4260-b5e3-630bc5b72de0", + "metadata": {}, + "source": [ + "**Output:** Out of our 24925 sample entries, 3846 have a country name for geolocalisation." + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "9155f9db-4f5c-4aa3-a233-2dfca91923dc", + "metadata": {}, + "outputs": [], + "source": [ + "samples_country_generator = (final_df\n", + " .filter(F.col('geo-loc-name').isNotNull())\n", + " .select(F.regexp_extract(F.col('geo-loc-name'), r'^((\\w+)|[\\w\\s]+)+(''|;|:)', 0).alias('country'))\n", + " .select(F.when(F.col('country').isin('GAZ', 'USA'), 'United States of America').otherwise(F.col('country')).alias('country'))\n", + " .groupby('country')\n", + " .count()\n", + " .toLocalIterator())\n", + "\n", + "samples_country_count = [data for data in samples_country_generator]" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "063a7f72-c9c1-4af1-bf04-8a04f33fd5ab", + "metadata": {}, + "outputs": [], + "source": [ + "# Samples count per country\n", + "samples_country_data = dict(\n", + " countries = [country[0] for country in samples_country_count],\n", + " sample_count = [count[1] for count in samples_country_count]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "a7924040-d28c-4a26-9506-3e489637575a", + "metadata": {}, + "outputs": [], + "source": [ + "genomes_country_generator = (final_df\n", + " .filter(F.col('g_id').isNotNull())\n", + " .filter(F.col('geo-loc-name').isNotNull())\n", + " .select(F.regexp_extract(F.col('geo-loc-name'), r'^((\\w+)|[\\w\\s]+)+(''|;|:)', 0).alias('country'))\n", + " .select(F.when(F.col('country').isin('GAZ', 'USA'), 'United States of America').otherwise(F.col('country')).alias('country'))\n", + " .groupby('country')\n", + " .count()\n", + " .toLocalIterator())\n", + "\n", + "genomes_country_count = [data for data in genomes_country_generator]" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "86874a63-dc33-4b47-8699-1bc65944abc0", + "metadata": {}, + "outputs": [], + "source": [ + "# Genomes count per country\n", + "genomes_country_data = dict(\n", + " countries = [country[0] for country in genomes_country_count],\n", + " genome_count = [count[1] for count in genomes_country_count]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "6b9b62a4-a46a-4fb1-8daa-2a568945b6c0", + "metadata": {}, + "source": [ + "**Output:** We generate 2 dictionaries containing the data for each of the maps. \n", + "The generation of the data in this case is more complex than previously and requires to transform the original data:\n", + "1. To select only the `country` name (in order to match the map data)\n", + "2. All the names are not in the same `format`. (In our case, either the full country name or the ISO 3166 alpha-3)" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "eebcde55-e954-4ab6-bff8-0457176ce715", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Arctic Ocean',\n", + " 'Atlantic Ocean',\n", + " 'Indian Ocean',\n", + " 'Pacific Ocean',\n", + " 'Western Tropical North Atlantic Ocean',\n", + " 'missing'}" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(samples_country_data['countries']+genomes_country_data['countries']).difference(world.name)" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "f2a7fef2-7747-4189-ab8e-10e1e0979ca9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "152" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_df.filter((F.col('geo-loc-name').isNotNull()) & (F.col('geo-loc-name').endswith('Ocean'))).count()" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "1297f50e-0980-4541-8ee7-ad8f26c1d9eb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_df.filter((F.col('geo-loc-name').isNotNull()) & (F.col('geo-loc-name').contains('missing'))).count()" + ] + }, + { + "cell_type": "markdown", + "id": "84c296eb-62c6-4014-9d7f-1edbd0b0412b", + "metadata": { + "tags": [] + }, + "source": [ + "**Output:** One of the `drawback` of the map used in this example is that the Samples and Genomes retrived from an Ocean are ignored.\n", + "\n", + "In our example, 152 samples are located in the Ocean, which represents app. `4% of the samples` and only 1 sample `geo-loc-name` is represented as 'missing'." + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "b194b220-1221-4935-998e-94e2e1a5a0f5", + "metadata": {}, + "outputs": [], + "source": [ + "# The world map, the world_limits and the map_theme are reused from the previous sections. \n", + "\n", + "def get_map_plot(data: dict, col_fill: str, col_map: str, title: str, legend: str):\n", + " return (ggplot()\n", + " + geom_map(aes(fill=col_fill), \n", + " data=data, \n", + " map=world, map_join=[col_map, 'name'], \n", + " color=\"white\",\n", + " tooltips=layer_tooltips().line(\"^fill count\"))\n", + " + ggtitle(title)\n", + " + scale_fill_gradient(low='#79f8f8', high=\"#cf0a1d\", name=legend)\n", + " + ggsize(800, 400)\n", + " + world_limits\n", + " + map_theme\n", + " ) " + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "8f1f0a58-e424-4d0e-97fc-7cc8ab995976", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "w, h = 480, 320\n", + "offset = 15 \n", + "\n", + "bunch = GGBunch()\n", + "bunch.add_plot(get_map_plot(samples_country_data, 'sample_count', 'countries', 'Number of samples per country', 'Number of samples'), 0, 0, w, h)\n", + "bunch.add_plot(get_map_plot(genomes_country_data, 'genome_count', 'countries', 'Number of genomes per country', 'Number of genomes'), w + offset, 0, w, h)\n", + "bunch" + ] + }, + { + "cell_type": "markdown", + "id": "5d249fac-f7f8-45c0-b077-c77b66caf7d1", + "metadata": {}, + "source": [ + "**Output:** Interactive map representing the count of samples vs the count of genomes for a given country. \n", + "\n", + "Hovering the map with the mouse curser allow the user to see the exact count per country." + ] + }, + { + "cell_type": "markdown", + "id": "44577838-f39f-41ae-b66b-604d28bf301c", + "metadata": {}, + "source": [ + "## Third map example: Use of the sample latitude and longitude to bring samples, genomes and studies together on an interactive map." + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "b6a7dfb2-6448-401e-a564-0263b64a98ef", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "18132" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_df.filter((F.col('latitude').isNotNull()) & (F.col('longitude').isNotNull())).count()" + ] + }, + { + "cell_type": "markdown", + "id": "0ee79212-7aad-4fdc-91cf-a5edea16a9f8", + "metadata": {}, + "source": [ + "**Output:** Out of our 24925 sample entries, 18132 are referenced with their latitude and longitude." + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "c2be28ac-8cb1-43c3-b734-85f773ce4875", + "metadata": {}, + "outputs": [], + "source": [ + "coord_samples = final_df.filter((F.col('latitude').isNotNull()) & (F.col('longitude').isNotNull())).select('latitude', 'longitude', 'id', 'g_id', 'g_studies_id')" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "1c14e271-746e-4c7f-9740-540078236ea2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+--------+---------+----------+----+------------+\n", + "|latitude|longitude| id|g_id|g_studies_id|\n", + "+--------+---------+----------+----+------------+\n", + "| 54.3384| 10.12|ERS1237320|null| null|\n", + "| 54.3384| 10.12|ERS1237321|null| null|\n", + "| 54.3384| 10.12|ERS1237322|null| null|\n", + "| 54.3384| 10.12|ERS1237323|null| null|\n", + "| 54.3384| 10.12|ERS1237325|null| null|\n", + "| 54.3384| 10.12|ERS1237326|null| null|\n", + "| 54.3384| 10.12|ERS1237327|null| null|\n", + "| 54.3384| 10.12|ERS1237333|null| null|\n", + "| 54.3384| 10.12|ERS1237334|null| null|\n", + "| 54.3384| 10.12|ERS1237335|null| null|\n", + "+--------+---------+----------+----+------------+\n", + "only showing top 10 rows\n", + "\n" + ] + } + ], + "source": [ + "coord_samples.show(n=10)" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "id": "d0840b43-9249-4ed1-91ee-6b784e4fc674", + "metadata": {}, + "outputs": [], + "source": [ + "window_geo = W.partitionBy('latitude', 'longitude').rowsBetween(W.unboundedPreceding, W.unboundedFollowing)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "id": "1dfb3118-777d-43b3-95a9-9bf8e60d639a", + "metadata": {}, + "outputs": [], + "source": [ + "coord_samples = (final_df\n", + " .filter((F.col('latitude').isNotNull()) & (F.col('longitude').isNotNull()))\n", + " .select('latitude', 'longitude', 'id', 'g_id', 'g_studies_id')\n", + " .withColumn('size', F.count('latitude').over(window_geo))\n", + " .withColumn(\"genome_id\", F.collect_set(\"g_id\").over(window_geo))\n", + " .withColumn(\"sample_id\", F.collect_set(\"id\").over(window_geo))\n", + " .withColumn(\"study_id\", F.collect_set(\"g_studies_id\").over(window_geo))\n", + " .select('latitude', 'longitude', 'size', 'genome_id', 'sample_id', 'study_id')\n", + " .distinct()\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "99c1fe70-5d63-4f27-8af7-b263a25e7e67", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+--------+---------+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+\n", + "|latitude|longitude|size|genome_id |sample_id |study_id |\n", + "+--------+---------+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+\n", + "|48.6 |-123.5 |491 |[] |[SRS966852, SRS1528051, SRS964120, SRS967017, SRS964067, SRS1525460, SRS962336, SRS966756, SRS1531594, SRS966628, SRS968127, SRS1525450, SRS966897, SRS1528049, SRS967664, SRS1527998, SRS968560, SRS966504, SRS966794, SRS1528139, SRS1525457, SRS964206, SRS964079, SRS1531596, SRS967712, SRS962355, SRS966989, SRS966613, SRS964103, SRS1525461, SRS966839, SRS966880, SRS966610, SRS966875, SRS1528797, SRS966547, SRS968113, SRS969528, SRS967000, SRS1525486, SRS1525464, SRS960220, SRS968136, SRS967004, SRS966790, SRS1525471, SRS969435, SRS966888, SRS969436, SRS966606, SRS966900, SRS968554, SRS968564, SRS966905, SRS967696, SRS968562, SRS966576, SRS966841, SRS962332, SRS966967, SRS969420, SRS1525903, SRS966795, SRS968566, SRS1528203, SRS969421, SRS966616, SRS964201, SRS962474, SRS966974, SRS963977, SRS966991, SRS966995, SRS1525484, SRS964243, SRS968552, SRS1520961, SRS1528796, SRS967015, SRS1528208, SRS962342, SRS964102, SRS964214, SRS966625, SRS966519, SRS968551, SRS962353, SRS966762, SRS966569, SRS968109, SRS962325, SRS963862, SRS966877, SRS966571, SRS966768, SRS1525496, SRS962338, SRS966605, SRS967702, SRS967662, SRS964249, SRS969531, SRS969512, SRS966566, SRS966867, SRS966611, SRS967665, SRS967695, SRS968570, SRS967006, SRS964118, SRS1525510, SRS966869, SRS966608, SRS966840, SRS1525463, SRS1529111, SRS968125, SRS968120, SRS968119, SRS968134, SRS966879, SRS1525902, SRS962307, SRS964106, SRS964203, SRS966535, SRS966619, SRS968568, SRS964241, SRS966607, SRS966872, SRS964115, SRS967658, SRS962473, SRS969548, SRS966760, SRS964228, SRS966851, SRS964112, SRS966492, SRS968130, SRS968118, SRS966850, SRS969535, SRS964095, SRS966842, SRS966543, SRS966999, SRS964086, SRS966627, SRS967666, SRS1528159, SRS966884, SRS964211, SRS966454, SRS968545, SRS966788, SRS966906, SRS969490, SRS969550, SRS966904, SRS966791, SRS962472, SRS1531593, SRS968553, SRS964246, SRS966898, SRS968563, SRS968546, SRS966646, SRS966573, SRS966402, SRS964121, SRS964207, SRS966766, SRS966881, SRS963857, SRS968121, SRS968131, SRS967011, SRS966618, SRS966759, SRS963884, SRS968150, SRS1525495, SRS967012, SRS1528048, SRS1529108, SRS1528204, SRS1525500, SRS966582, SRS962320, SRS966810, SRS968557, SRS964217, SRS1525503, SRS1525899, SRS968549, SRS962346, SRS966769, SRS964094, SRS966836, SRS966614, SRS964082, SRS967018, SRS1525494, SRS1528114, SRS1525477, SRS1525509, SRS962331, SRS966854, SRS966485, SRS1525505, SRS964088, SRS966843, SRS968138, SRS964105, SRS966764, SRS962350, SRS966873, SRS1528205, SRS963882, SRS964230, SRS966589, SRS966763, SRS967670, SRS966883, SRS963856, SRS968114, SRS967691, SRS1525904, SRS1525508, SRS968151, SRS962299, SRS966789, SRS966835, SRS968550, SRS1525474, SRS1529109, SRS1528126, SRS966829, SRS969536, SRS969547, SRS966452, SRS966837, SRS1528129, SRS966887, SRS968139, SRS968538, SRS966620, SRS960548, SRS964245, SRS964080, SRS966644, SRS968108, SRS968558, SRS966612, SRS966603, SRS963879, SRS964096, SRS968132, SRS964113, SRS963861, SRS964087, SRS969430, SRS966541, SRS966828, SRS964084, SRS966609, SRS962302, SRS962340, SRS968555, SRS1528795, SRS964085, SRS967659, SRS967002, SRS1525469, SRS1525489, SRS969551, SRS967711, SRS966996, SRS962310, SRS964224, SRS968567, SRS967007, SRS966986, SRS964202, SRS964234, SRS964242, SRS1528047, SRS1525901, SRS966870, SRS964114, SRS968173, SRS1528210, SRS968548, SRS962349, SRS968543, SRS968542, SRS962321, SRS966564, SRS969486, SRS962341, SRS1525892, SRS968174, SRS968110, SRS964125, SRS966561, SRS966874, SRS966551, SRS963872, SRS966563, SRS966892, SRS966524, SRS1528169, SRS969518, SRS962358, SRS964116, SRS1525487, SRS966899, SRS966755, SRS964068, SRS962356, SRS1525906, SRS1525465, SRS968116, SRS964226, SRS968565, SRS966767, SRS964076, SRS967014, SRS966626, SRS1529110, SRS969549, SRS967668, SRS1525513, SRS966890, SRS968547, SRS964239, SRS966496, SRS966825, SRS1525454, SRS964212, SRS1380805, SRS962322, SRS966979, SRS966572, SRS966830, SRS967663, SRS968539, SRS966985, SRS968148, SRS962339, SRS962306, SRS967671, SRS1525504, SRS966831, SRS964091, SRS967009, SRS968544, SRS966893, SRS966901, SRS966908, SRS968137, SRS1525470, SRS968577, SRS968540, SRS966793, SRS968122, SRS966853, SRS1525459, SRS968170, SRS967672, SRS1529107, SRS964122, SRS968541, SRS964097, SRS962351, SRS968128, SRS1528207, SRS962323, SRS1528209, SRS969530, SRS964075, SRS968111, SRS962345, SRS1525479, SRS969335, SRS967016, SRS1525498, SRS968115, SRS1529112, SRS964119, SRS968149, SRS966834, SRS966886, SRS966907, SRS967690, SRS968576, SRS1525475, SRS964233, SRS966882, SRS966623, SRS966630, SRS1525891, SRS1525485, SRS967701, SRS966894, SRS966602, SRS1528457, SRS969492, SRS962348, SRS1525449, SRS1525462, SRS966516, SRS964237, SRS962352, SRS1525897, SRS966878, SRS1525468, SRS1525476, SRS966876, SRS966889, SRS962334, SRS966885, SRS966868, SRS962315, SRS969485, SRS967693, SRS963863, SRS964222, SRS966622, SRS966765, SRS1525453, SRS966600, SRS966792, SRS968129, SRS966833, SRS1525451, SRS963898, SRS968161, SRS968126, SRS966567, SRS1525499, SRS1520963, SRS966598, SRS1531595, SRS966761, SRS968556, SRS966758, SRS969479, SRS1528050, SRS1528794, SRS962286, SRS962294, SRS1525455, SRS966757, SRS964124, SRS966832, SRS964215, SRS962470, SRS964210, SRS1525448, SRS967001, SRS1525466, SRS966787, SRS968559, SRS967010, SRS1528158, SRS966615, SRS963865, SRS966964, SRS966624, SRS964250, SRS964219, SRS966568, SRS966604, SRS962333, SRS966896, SRS966990, SRS966621, SRS962343, SRS964078, SRS966871, SRS964111, SRS966570, SRS964110, SRS964123, SRS962344, SRS962347] |[] |\n", + "|51.7485 |9.5441 |203 |[] |[SRS604302, SRS604286, SRS604360, SRS604365, SRS604333, SRS604385, SRS604383, SRS604339, SRS604420, SRS604273, SRS604350, SRS604359, SRS604320, SRS604332, SRS604299, SRS604227, SRS604324, SRS604224, SRS604296, SRS604417, SRS604405, SRS604349, SRS604212, SRS604404, SRS604268, SRS604252, SRS604394, SRS604411, SRS604279, SRS604318, SRS604319, SRS604414, SRS604294, SRS604274, SRS604282, SRS604218, SRS604322, SRS604386, SRS604290, SRS604368, SRS604373, SRS604387, SRS604397, SRS604234, SRS604412, SRS604376, SRS604277, SRS604392, SRS604295, SRS604213, SRS604326, SRS604257, SRS604229, SRS604250, SRS604382, SRS604244, SRS604241, SRS604314, SRS604336, SRS604214, SRS604291, SRS604363, SRS604272, SRS604362, SRS604262, SRS604304, SRS604245, SRS604424, SRS604242, SRS604375, SRS604384, SRS604293, SRS604367, SRS604258, SRS604292, SRS604251, SRS604297, SRS604236, SRS604248, SRS604209, SRS604303, SRS604232, SRS604366, SRS604409, SRS604330, SRS604418, SRS604393, SRS604215, SRS604325, SRS604298, SRS604416, SRS604239, SRS604374, SRS604309, SRS604407, SRS604228, SRS604275, SRS604260, SRS604259, SRS604267, SRS604402, SRS604278, SRS604347, SRS604233, SRS604263, SRS604264, SRS604270, SRS604223, SRS604335, SRS604403, SRS604355, SRS604419, SRS604342, SRS604351, SRS604226, SRS604271, SRS604315, SRS604221, SRS604321, SRS604331, SRS604381, SRS604421, SRS604329, SRS604372, SRS604422, SRS604391, SRS604388, SRS604216, SRS604346, SRS604287, SRS604364, SRS604361, SRS604219, SRS604357, SRS604276, SRS604312, SRS604317, SRS604396, SRS604380, SRS604398, SRS604230, SRS604408, SRS604327, SRS604389, SRS604220, SRS604256, SRS604415, SRS604237, SRS604356, SRS604310, SRS604261, SRS604255, SRS604377, SRS604311, SRS604341, SRS604399, SRS604401, SRS604210, SRS604406, SRS604400, SRS604238, SRS604338, SRS604395, SRS604269, SRS604288, SRS604253, SRS604348, SRS604285, SRS604344, SRS604240, SRS604307, SRS604369, SRS604247, SRS604410, SRS604390, SRS604249, SRS604328, SRS604243, SRS604280, SRS604266, SRS604225, SRS604340, SRS604378, SRS604413, SRS604222, SRS604305, SRS604283, SRS604281, SRS604284, SRS604423, SRS604211, SRS604371, SRS604217, SRS604308, SRS604254, SRS604313, SRS604306, SRS604316, SRS604337, SRS604246, SRS604353, SRS604334, SRS604289] |[] |\n", + "|37.09 |-95.71 |1497|[] |[ERS1292958, ERS1293378, ERS1293757, ERS1293528, ERS1293083, ERS1292887, ERS1293516, ERS1294093, ERS1293706, ERS1293909, ERS1293462, ERS1293312, ERS1294145, ERS1293587, ERS1293431, ERS1292926, ERS1294115, ERS1292986, ERS1292741, ERS1293719, ERS1294033, ERS1292706, ERS1293021, ERS1294168, ERS1292733, ERS1293170, ERS1293043, ERS1293346, ERS1292867, ERS1293935, ERS1294087, ERS1292905, ERS1293758, ERS1293717, ERS1293806, ERS1294169, ERS1293751, ERS1293969, ERS1293611, ERS1292697, ERS1292987, ERS1293020, ERS1292774, ERS1293434, ERS1292748, ERS1293096, ERS1292779, ERS1293712, ERS1293114, ERS1293797, ERS1293682, ERS1293248, ERS1294110, ERS1292729, ERS1292911, ERS1293417, ERS1292909, ERS1293018, ERS1293437, ERS1293597, ERS1293506, ERS1293749, ERS1292700, ERS1293559, ERS1293809, ERS1294180, ERS1294103, ERS1293744, ERS1293677, ERS1293769, ERS1294160, ERS1293858, ERS1293728, ERS1293128, ERS1293164, ERS1293192, ERS1294041, ERS1292805, ERS1293323, ERS1292952, ERS1293884, ERS1293873, ERS1293467, ERS1294134, ERS1293172, ERS1293097, ERS1292701, ERS1293098, ERS1293932, ERS1294010, ERS1293548, ERS1292949, ERS1294020, ERS1293796, ERS1293235, ERS1293396, ERS1293995, ERS1292938, ERS1294047, ERS1293252, ERS1292765, ERS1293962, ERS1293607, ERS1293618, ERS1293588, ERS1294156, ERS1293610, ERS1293800, ERS1293968, ERS1293641, ERS1293964, ERS1293552, ERS1293868, ERS1292995, ERS1293000, ERS1293762, ERS1293723, ERS1293649, ERS1292698, ERS1293125, ERS1294111, ERS1293742, ERS1293215, ERS1293368, ERS1293273, ERS1294002, ERS1294028, ERS1293358, ERS1293386, ERS1292778, ERS1293904, ERS1294182, ERS1293689, ERS1293577, ERS1293157, ERS1292727, ERS1292693, ERS1293915, ERS1292896, ERS1294159, ERS1293197, ERS1292993, ERS1293256, ERS1294018, ERS1293657, ERS1293821, ERS1293979, ERS1293458, ERS1292843, ERS1293575, ERS1294068, ERS1293867, ERS1293981, ERS1293439, ERS1294005, ERS1293568, ERS1293798, ERS1293090, ERS1292897, ERS1292776, ERS1293605, ERS1293890, ERS1293308, ERS1293801, ERS1293600, ERS1293422, ERS1293832, ERS1293702, ERS1293044, ERS1293481, ERS1293910, ERS1294035, ERS1293608, ERS1294074, ERS1293055, ERS1293160, ERS1294001, ERS1293257, ERS1293095, ERS1293697, ERS1293736, ERS1293681, ERS1293474, ERS1294083, ERS1293563, ERS1293471, ERS1293929, ERS1293527, ERS1294012, ERS1293376, ERS1293975, ERS1292933, ERS1293590, ERS1293316, ERS1293835, ERS1293514, ERS1294132, ERS1294148, ERS1293963, ERS1293112, ERS1292731, ERS1293991, ERS1292687, ERS1293992, ERS1293027, ERS1293072, ERS1292929, ERS1293906, ERS1293087, ERS1292821, ERS1293009, ERS1293731, ERS1293380, ERS1293092, ERS1293240, ERS1293699, ERS1293077, ERS1293521, ERS1293107, ERS1293625, ERS1293613, ERS1294084, ERS1293967, ERS1293747, ERS1292889, ERS1293195, ERS1293685, ERS1293812, ERS1292876, ERS1293359, ERS1293529, ERS1293542, ERS1293690, ERS1293063, ERS1293320, ERS1294108, ERS1292871, ERS1293914, ERS1293803, ERS1292968, ERS1293384, ERS1293837, ERS1292874, ERS1292862, ERS1293104, ERS1293325, ERS1293476, ERS1293327, ERS1293582, ERS1293137, ERS1293541, ERS1293042, ERS1294015, ERS1294076, ERS1293070, ERS1293799, ERS1292803, ERS1293670, ERS1293694, ERS1293484, ERS1293565, ERS1293507, ERS1293780, ERS1293342, ERS1293189, ERS1293629, ERS1293944, ERS1292818, ERS1293385, ERS1293847, ERS1293454, ERS1293026, ERS1292787, ERS1293100, ERS1292845, ERS1293313, ERS1293725, ERS1293934, ERS1294118, ERS1292691, ERS1293245, ERS1292893, ERS1294167, ERS1293053, ERS1293715, ERS1294124, ERS1294040, ERS1292761, ERS1292797, ERS1294162, ERS1293222, ERS1293460, ERS1294042, ERS1293667, ERS1293959, ERS1292838, ERS1293870, ERS1293480, ERS1293132, ERS1293039, ERS1293033, ERS1292931, ERS1292725, ERS1292742, ERS1293367, ERS1293913, ERS1292806, ERS1293672, ERS1292899, ERS1293653, ERS1293937, ERS1293379, ERS1292915, ERS1293305, ERS1293066, ERS1293410, ERS1292878, ERS1292994, ERS1294179, ERS1294157, ERS1292983, ERS1293553, ERS1293203, ERS1293352, ERS1293535, ERS1293735, ERS1292964, ERS1293818, ERS1292930, ERS1293135, ERS1293495, ERS1294100, ERS1292860, ERS1293130, ERS1293885, ERS1294176, ERS1293442, ERS1293218, ERS1293737, ERS1293933, ERS1293061, ERS1293883, ERS1294025, ERS1294120, ERS1293576, ERS1293226, ERS1293788, ERS1293845, ERS1293002, ERS1293619, ERS1293318, ERS1294144, ERS1293831, ERS1293116, ERS1293062, ERS1293446, ERS1293006, ERS1292737, ERS1292721, ERS1292855, ERS1293569, ERS1293353, ERS1293110, ERS1293421, ERS1293286, ERS1293401, ERS1293557, ERS1293351, ERS1292851, ERS1294066, ERS1293691, ERS1292830, ERS1293980, ERS1293029, ERS1293782, ERS1293064, ERS1293179, ERS1293037, ERS1293637, ERS1292833, ERS1292696, ERS1294059, ERS1292763, ERS1293247, ERS1293167, ERS1293211, ERS1293045, ERS1292942, ERS1293491, ERS1293330, ERS1293620, ERS1294090, ERS1293713, ERS1292756, ERS1293089, ERS1292720, ERS1294045, ERS1294055, ERS1293695, ERS1294178, ERS1293903, ERS1293347, ERS1293743, ERS1293162, ERS1294158, ERS1293418, ERS1293704, ERS1294139, ERS1294101, ERS1292817, ERS1293341, ERS1293400, ERS1292910, ERS1294104, ERS1294163, ERS1293872, ERS1293786, ERS1293540, ERS1292800, ERS1293816, ERS1293326, ERS1293461, ERS1293425, ERS1293486, ERS1293311, ERS1293558, ERS1293008, ERS1293819, ERS1293199, ERS1292831, ERS1293452, ERS1293522, ERS1294062, ERS1293250, ERS1293010, ERS1293155, ERS1293472, ERS1292745, ERS1292836, ERS1292814, ERS1293606, ERS1292740, ERS1293515, ERS1293673, ERS1293050, ERS1292921, ERS1293138, ERS1293918, ERS1293864, ERS1293025, ERS1294070, ERS1293940, ERS1293430, ERS1294078, ERS1293793, ERS1293111, ERS1293328, ERS1294094, ERS1293897, ERS1293494, ERS1292695, ERS1293131, ERS1294096, ERS1293283, ERS1293591, ERS1293147, ERS1293374, ERS1293738, ERS1292864, ERS1293264, ERS1292937, ERS1293636, ERS1292996, ERS1293942, ERS1292825, ERS1293145, ERS1292829, ERS1293830, ERS1293483, ERS1293181, ERS1292989, ERS1293533, ERS1293268, ERS1293290, ERS1293583, ERS1293393, ERS1294004, ERS1293945, ERS1294072, ERS1292976, ERS1293291, ERS1293701, ERS1292752, ERS1292977, ERS1293493, ERS1293463, ERS1293844, ERS1292978, ERS1293349, ERS1294121, ERS1293973, ERS1293475, ERS1293115, ERS1293688, ERS1293154, ERS1292868, ERS1293375, ERS1293755, ERS1294056, ERS1292898, ERS1294089, ERS1293459, ERS1294116, ERS1293200, ERS1293902, ERS1293121, ERS1292738, ERS1293113, ERS1292916, ERS1293258, ERS1292775, ERS1293336, ERS1294032, ERS1292849, ERS1293746, ERS1293187, ERS1293456, ERS1293972, ERS1293399, ERS1293938, ERS1293144, ERS1293876, ERS1292783, ERS1294060, ERS1292688, ERS1294153, ERS1293679, ERS1294037, ERS1293490, ERS1293939, ERS1293277, ERS1293635, ERS1292892, ERS1293275, ERS1292812, ERS1292782, ERS1294128, ERS1292692, ERS1293729, ERS1293804, ERS1292854, ERS1293784, ERS1294095, ERS1293849, ERS1293984, ERS1293435, ERS1293357, ERS1293136, ERS1292832, ERS1292959, ERS1292717, ERS1293190, ERS1293912, ERS1293041, ERS1292972, ERS1294154, ERS1293854, ERS1292884, ERS1293710, ERS1293899, ERS1292900, ERS1293905, ERS1293584, ERS1293118, ERS1293214, ERS1293304, ERS1293982, ERS1294013, ERS1292969, ERS1294003, ERS1294107, ERS1292861, ERS1292714, ERS1293447, ERS1292826, ERS1293436, ERS1293411, ERS1293813, ERS1292713, ERS1293852, ERS1293274, ERS1293828, ERS1293889, ERS1294050, ERS1293759, ERS1292762, ERS1293961, ERS1292683, ERS1294105, ERS1293413, ERS1292796, ERS1293228, ERS1293208, ERS1293173, ERS1293951, ERS1293752, ERS1293714, ERS1293432, ERS1292816, ERS1293387, ERS1293469, ERS1293332, ERS1293049, ERS1293642, ERS1293986, ERS1294086, ERS1292947, ERS1292768, ERS1292850, ERS1293382, ERS1293360, ERS1293074, ERS1294165, ERS1293133, ERS1293550, ERS1293392, ERS1292682, ERS1293124, ERS1293524, ERS1292927, ERS1293598, ERS1293499, ERS1293296, ERS1293221, ERS1293680, ERS1293052, ERS1293455, ERS1292913, ERS1292824, ERS1293579, ERS1293773, ERS1293954, ERS1293501, ERS1293487, ERS1292751, ERS1293163, ERS1293331, ERS1293614, ERS1293028, ERS1294026, ERS1293595, ERS1293091, ERS1293892, ERS1293908, ERS1293232, ERS1293794, ERS1293117, ERS1293740, ERS1293085, ERS1294131, ERS1292856, ERS1292772, ERS1293774, ERS1294053, ERS1293122, ERS1293040, ERS1292794, ERS1293406, ERS1293317, ERS1292844, ERS1293669, ERS1293390, ERS1293776, ERS1293489, ERS1293660, ERS1292822, ERS1293109, ERS1293960, ERS1293193, ERS1292919, ERS1292961, ERS1293444, ERS1293188, ERS1292702, ERS1293566, ERS1293306, ERS1293355, ERS1293276, ERS1294017, ERS1293171, ERS1293814, ERS1293069, ERS1294114, ERS1292852, ERS1293990, ERS1293766, ERS1293261, ERS1292891, ERS1293765, ERS1292846, ERS1292789, ERS1293322, ERS1294057, ERS1292732, ERS1292998, ERS1294112, ERS1292979, ERS1294172, ERS1292723, ERS1293716, ERS1292950, ERS1293196, ERS1293700, ERS1293840, ERS1293470, ERS1292808, ERS1293952, ERS1293602, ERS1293564, ERS1293001, ERS1293722, ERS1293763, ERS1293381, ERS1294014, ERS1293993, ERS1293134, ERS1293106, ERS1293223, ERS1293886, ERS1293592, ERS1293848, ERS1292798, ERS1294071, ERS1293907, ERS1293650, ERS1293860, ERS1293865, ERS1293287, ERS1293768, ERS1292943, ERS1293999, ERS1293589, ERS1293438, ERS1292903, ERS1294147, ERS1293891, ERS1293571, ERS1294175, ERS1293652, ERS1293119, ERS1292885, ERS1292790, ERS1293412, ERS1293123, ERS1292948, ERS1293175, ERS1293733, ERS1294023, ERS1293205, ERS1293810, ERS1292795, ERS1292902, ERS1292759, ERS1292992, ERS1293668, ERS1293772, ERS1293445, ERS1294122, ERS1293206, ERS1292999, ERS1293703, ERS1292804, ERS1293262, ERS1294034, ERS1293419, ERS1292954, ERS1293429, ERS1293231, ERS1292809, ERS1293911, ERS1293182, ERS1294143, ERS1293012, ERS1293056, ERS1292799, ERS1292744, ERS1293948, ERS1293857, ERS1294174, ERS1294149, ERS1293015, ERS1293423, ERS1293930, ERS1292802, ERS1293572, ERS1293696, ERS1292722, ERS1293259, ERS1292944, ERS1293855, ERS1293756, ERS1292767, ERS1293176, ERS1292848, ERS1293014, ERS1292811, ERS1293996, ERS1292839, ERS1293468, ERS1294117, ERS1292866, ERS1292678, ERS1293180, ERS1293405, ERS1293403, ERS1294127, ERS1294061, ERS1293581, ERS1292960, ERS1293676, ERS1293433, ERS1293971, ERS1293078, ERS1293665, ERS1293825, ERS1293216, ERS1293127, ERS1293404, ERS1293022, ERS1293281, ERS1293023, ERS1293479, ERS1293150, ERS1293088, ERS1293057, ERS1293213, ERS1293807, ERS1293079, ERS1293739, ERS1293036, ERS1293645, ERS1292781, ERS1293152, ERS1293139, ERS1292764, ERS1292703, ERS1293466, ERS1292982, ERS1293534, ERS1292904, ERS1293168, ERS1293054, ERS1293777, ERS1292990, ERS1293156, ERS1293778, ERS1293949, ERS1293621, ERS1292728, ERS1292980, ERS1293994, ERS1293093, ERS1293646, ERS1293754, ERS1292988, ERS1294181, ERS1294106, ERS1293586, ERS1293508, ERS1292690, ERS1293921, ERS1293775, ERS1293299, ERS1293075, ERS1293554, ERS1293570, ERS1293882, ERS1293019, ERS1294164, ERS1294021, ERS1293003, ERS1293721, ERS1293922, ERS1292908, ERS1293543, ERS1292940, ERS1293720, ERS1293408, ERS1294135, ERS1293531, ERS1293551, ERS1293266, ERS1292894, ERS1293217, ERS1292932, ERS1293416, ERS1292875, ERS1293102, ERS1293989, ERS1293859, ERS1292679, ERS1293243, ERS1293761, ERS1294030, ERS1292749, ERS1292785, ERS1293388, ERS1293880, ERS1293834, ERS1293727, ERS1292734, ERS1293084, ERS1293427, ERS1294064, ERS1293236, ERS1293149, ERS1294009, ERS1293356, ERS1294177, ERS1293080, ERS1294102, ERS1294099, ERS1293302, ERS1293161, ERS1293292, ERS1293165, ERS1292991, ERS1293229, ERS1293900, ERS1294075, ERS1294031, ERS1293485, ERS1293802, ERS1293824, ERS1293303, ERS1294137, ERS1293519, ERS1293201, ERS1294082, ERS1293391, ERS1293965, ERS1293943, ERS1293966, ERS1293748, ERS1293371, ERS1292708, ERS1293048, ERS1293457, ERS1293869, ERS1294080, ERS1293309, ERS1293271, ERS1292712, ERS1293659, ERS1292997, ERS1293836, ERS1293644, ERS1293249, ERS1293983, ERS1292711, ERS1293862, ERS1293556, ERS1293856, ERS1293338, ERS1293750, ERS1292880, ERS1293129, ERS1293141, ERS1292963, ERS1293509, ERS1292685, ERS1294058, ERS1293185, ERS1293781, ERS1293246, ERS1293692, ERS1293811, ERS1293998, ERS1293482, ERS1293546, ERS1292689, ERS1293227, ERS1293184, ERS1294161, ERS1294036, ERS1293647, ERS1294067, ERS1293265, ERS1293394, ERS1292766, ERS1293354, ERS1293242, ERS1293616, ERS1293414, ERS1294091, ERS1294069, ERS1293829, ERS1294146, ERS1293294, ERS1293664, ERS1293789, ERS1293532, ERS1293060, ERS1293783, ERS1293024, ERS1293808, ERS1292888, ERS1292834, ERS1293708, ERS1293950, ERS1294129, ERS1293343, ERS1294027, ERS1293016, ERS1293065, ERS1293698, ERS1293734, ERS1293426, ERS1293936, ERS1293310, ERS1293843, ERS1294170, ERS1293377, ERS1293928, ERS1293086, ERS1293059, ERS1293340, ERS1293178, ERS1293863, ERS1293585, ERS1292901, ERS1292962, ERS1294073, ERS1294051, ERS1292953, ERS1293927, ERS1293711, ERS1293464, ERS1292735, ERS1292935, ERS1293082, ERS1293707, ERS1293443, ERS1293337, ERS1293523, ERS1293732, ERS1293285, ERS1293428, ERS1293510, ERS1292819, ERS1293220, ERS1292842, ERS1293894, ERS1293295, ERS1294123, ERS1293034, ERS1292828, ERS1293767, ERS1293705, ERS1293101, ERS1294109, ERS1294138, ERS1292907, ERS1293512, ERS1292777, ERS1292810, ERS1293238, ERS1293395, ERS1292879, ERS1293879, ERS1293888, ERS1293538, ERS1293822, ERS1293449, ERS1293919, ERS1293339, ERS1293013, ERS1292965, ERS1293609, ERS1293823, ERS1293779, ERS1293263, ERS1293651, ERS1293820, ERS1293103, ERS1293389, ERS1293893, ERS1293370, ERS1293815, ERS1293958, ERS1293224, ERS1293881, ERS1293753, ERS1292890, ERS1293874, ERS1293633, ERS1293624, ERS1293567, ERS1293594, ERS1293658, ERS1293684, ERS1293842, ERS1293580, ERS1294085, ERS1293174, ERS1293687, ERS1292750, ERS1293288, ERS1292827, ERS1293230, ERS1292924, ERS1293293, ERS1292928, ERS1294019, ERS1292710, ERS1292739, ERS1293730, ERS1293536, ERS1293760, ERS1293953, ERS1293465, ERS1293503, ERS1293917, ERS1294016, ERS1293693, ERS1294097, ERS1293661, ERS1293877, ERS1293498, ERS1292815, ERS1293497, ERS1293626, ERS1293007, ERS1293770, ERS1293402, ERS1292877, ERS1294125, ERS1293593, ERS1293415, ERS1294077, ERS1293333, ERS1293846, ERS1292754, ERS1293826, ERS1293120, ERS1293441, ERS1293544, ERS1294113, ERS1293158, ERS1292770, ERS1293071, ERS1292847, ERS1293627, ERS1293604, ERS1293492, ERS1293073, ERS1293511, ERS1292760, ERS1293004, ERS1292966, ERS1294039, ERS1293067, ERS1294007, ERS1292956, ERS1293473, ERS1293300, ERS1293726, ERS1293612, ERS1294006, ERS1293314, ERS1293709, ERS1293925, ERS1293365, ERS1293219, ERS1293785, ERS1292780, ERS1292872, ERS1293878, ERS1292743, ERS1293420, ERS1294052, ERS1293244, ERS1293348, ERS1292791, ERS1293142, ERS1293771, ERS1293887, ERS1292858, ERS1293805, ERS1293601, ERS1293140, ERS1293792, ERS1293194, ERS1293634, ERS1293513, ERS1294054, ERS1293640, ERS1293839, ERS1293578, ERS1293955, ERS1292724, ERS1293204, ERS1293916, ERS1293239, ERS1292870, ERS1293957, ERS1293108, ERS1292967, ERS1293453, ERS1293407, ERS1293817, ERS1294173, ERS1292704, ERS1293931, ERS1293790, ERS1293183, ERS1292792, ERS1292681, ERS1293237, ERS1293764, ERS1293632, ERS1293233, ERS1292686, ERS1294171, ERS1294044, ERS1293477, ERS1293234, ERS1293517, ERS1292941, ERS1293643, ERS1294166, ERS1292923, ERS1294048, ERS1293795, ERS1293724, ERS1293321, ERS1292694, ERS1294133, ERS1293177, ERS1292707, ERS1293599, ERS1294092, ERS1293143, ERS1293956, ERS1292955, ERS1292970, ERS1293875, ERS1293561, ERS1294038, ERS1293787, ERS1293298, ERS1293315, ERS1293212, ERS1293866, ERS1293827, ERS1292974, ERS1293496, ERS1293272, ERS1292886, ERS1293345, ERS1292684, ERS1293068, ERS1293282, ERS1293280, ERS1293924, ERS1292984, ERS1292746, ERS1293169, ERS1293853, ERS1292985, ERS1293253, ERS1293977, ERS1292957, ERS1293361, ERS1293038, ERS1293450, ERS1293035, ERS1293366, ERS1293269, ERS1294152, ERS1292946, ERS1293369, ERS1293301, ERS1293153, ERS1293051, ERS1292769, ERS1293741, ERS1292753, ERS1293675, ERS1293270, ERS1292857, ERS1292757, ERS1292784, ERS1292882, ERS1293488, ERS1292680, ERS1292841, ERS1292912, ERS1292801, ERS1293146, ERS1293630, ERS1293210, ERS1293622, ERS1292835, ERS1292773, ERS1294029, ERS1293363, ERS1293255, ERS1293518, ERS1293186, ERS1293745, ERS1293047, ERS1293901, ERS1294046, ERS1293539, ERS1293631, ERS1293058, ERS1293209, ERS1293926, ERS1292709, ERS1293207, ERS1292873, ERS1293525, ERS1293549, ERS1293251, ERS1294043, ERS1292853, ERS1292788, ERS1293683, ERS1292865, ERS1293547, ERS1292726, ERS1292914, ERS1292975, ERS1293329, ERS1294150, ERS1292736, ERS1292793, ERS1293978, ERS1293537, ERS1294126, ERS1293148, ERS1293334, ERS1293279, ERS1292718, ERS1293920, ERS1293241, ERS1294049, ERS1293674, ERS1293094, ERS1293409, ERS1293451, ERS1293424, ERS1292934, ERS1293191, ERS1293159, ERS1293974, ERS1292755, ERS1293850, ERS1293126, ERS1293988, ERS1293946, ERS1293005, ERS1292920, ERS1293895, ERS1294063, ERS1293851, ERS1293530, ERS1292939, ERS1293448, ERS1294155, ERS1294142, ERS1293574, ERS1292699, ERS1293985, ERS1292981, ERS1293202, ERS1293017, ERS1293307, ERS1293615, ERS1293504, ERS1293648, ERS1293478, ERS1293289, ERS1292895, ERS1293319, ERS1293526, ERS1292918, ERS1293046, ERS1293105, ERS1292715, ERS1294000, ERS1292971, ERS1294136, ERS1293284, ERS1293871, ERS1293373, ERS1293440, ERS1293841, ERS1293555, ERS1292936, ERS1293198, ERS1292951, ERS1293678, ERS1293997, ERS1293941, ERS1292719, ERS1293364, ERS1293011, ERS1293500, ERS1293987, ERS1292906, ERS1292922, ERS1294008, ERS1293596, ERS1292747, ERS1294081, ERS1292771, ERS1293166, ERS1293560, ERS1293545, ERS1293031, ERS1294130, ERS1294140, ERS1292823, ERS1292863, ERS1293686, ERS1293254, ERS1292820, ERS1293362, ERS1292945, ERS1293335, ERS1293099, ERS1293970, ERS1293278, ERS1292917, ERS1293573, ERS1293383, ERS1292758, ERS1293923, ERS1293639, ERS1292859, ERS1293344, ERS1292705, ERS1293260, ERS1294141, ERS1293081, ERS1292837, ERS1293896, ERS1293267, ERS1293671, ERS1294119, ERS1293833, ERS1294011, ERS1294022, ERS1292883, ERS1293297, ERS1294088, ERS1294065, ERS1292869, ERS1293372, ERS1293662, ERS1292925, ERS1293654, ERS1293947, ERS1293225, ERS1293666, ERS1292807, ERS1293032, ERS1293655, ERS1293520, ERS1294079, ERS1293324, ERS1293898, ERS1293976, ERS1292786, ERS1293838, ERS1293638, ERS1293791, ERS1293502, ERS1293617, ERS1294151, ERS1292813, ERS1292730, ERS1292840, ERS1293656, ERS1293505, ERS1292973, ERS1293350, ERS1293151, ERS1292881, ERS1293603, ERS1293718, ERS1293861, ERS1293663, ERS1293623, ERS1293397]|[] |\n", + "|53.167 |13.033 |440 |[] |[ERS1627484, ERS1627094, ERS1627604, ERS1627829, ERS1627523, ERS1627141, ERS1627678, ERS1627817, ERS1627631, ERS1627109, ERS1627114, ERS1627096, ERS1627709, ERS1627132, ERS1627666, ERS1627503, ERS1627470, ERS1627831, ERS1627609, ERS1627716, ERS1627508, ERS1627078, ERS1627753, ERS1627097, ERS1627092, ERS1627737, ERS1627143, ERS1627475, ERS1627477, ERS1627533, ERS1627676, ERS1627104, ERS1627515, ERS1627566, ERS1627693, ERS1627607, ERS1627550, ERS1627805, ERS1627116, ERS1627488, ERS1627468, ERS1627124, ERS1627081, ERS1627555, ERS1627544, ERS1627115, ERS1627464, ERS1627075, ERS1627786, ERS1627800, ERS1627498, ERS1627107, ERS1627559, ERS1627751, ERS1627775, ERS1627556, ERS1627713, ERS1627649, ERS1627671, ERS1627828, ERS1627708, ERS1627682, ERS1627820, ERS1627728, ERS1627602, ERS1627718, ERS1627480, ERS1627686, ERS1627760, ERS1627774, ERS1627692, ERS1627661, ERS1627148, ERS1627632, ERS1627629, ERS1627701, ERS1627541, ERS1627593, ERS1627127, ERS1627683, ERS1627504, ERS1627532, ERS1627561, ERS1627614, ERS1627792, ERS1627720, ERS1627095, ERS1627752, ERS1627799, ERS1627741, ERS1627625, ERS1627729, ERS1627584, ERS1627526, ERS1627705, ERS1627516, ERS1627073, ERS1627711, ERS1627640, ERS1627578, ERS1627783, ERS1627150, ERS1627156, ERS1627732, ERS1627479, ERS1627106, ERS1627617, ERS1627496, ERS1627749, ERS1627466, ERS1627146, ERS1627520, ERS1627739, ERS1627538, ERS1627494, ERS1627534, ERS1627747, ERS1627119, ERS1627151, ERS1627547, ERS1627149, ERS1627700, ERS1627501, ERS1627777, ERS1627546, ERS1627768, ERS1627630, ERS1627807, ERS1627103, ERS1627688, ERS1627697, ERS1627780, ERS1627497, ERS1627834, ERS1627527, ERS1627575, ERS1627657, ERS1627117, ERS1627142, ERS1627771, ERS1627135, ERS1627519, ERS1627759, ERS1627122, ERS1627808, ERS1627706, ERS1627637, ERS1627074, ERS1627691, ERS1627080, ERS1627645, ERS1627105, ERS1627773, ERS1627091, ERS1627565, ERS1627510, ERS1627090, ERS1627491, ERS1627482, ERS1627471, ERS1627634, ERS1627735, ERS1627485, ERS1627638, ERS1627804, ERS1627770, ERS1627551, ERS1627125, ERS1627571, ERS1627772, ERS1627595, ERS1627082, ERS1627129, ERS1627529, ERS1627093, ERS1627554, ERS1627781, ERS1627152, ERS1627537, ERS1627811, ERS1627793, ERS1627492, ERS1627681, ERS1627506, ERS1627588, ERS1627592, ERS1627656, ERS1627784, ERS1627715, ERS1627733, ERS1627694, ERS1627821, ERS1627563, ERS1627757, ERS1627590, ERS1627486, ERS1627087, ERS1627719, ERS1627591, ERS1627677, ERS1627724, ERS1627580, ERS1627553, ERS1627582, ERS1627138, ERS1627573, ERS1627467, ERS1627560, ERS1627696, ERS1627157, ERS1627646, ERS1627487, ERS1627574, ERS1627626, ERS1627586, ERS1627832, ERS1627133, ERS1627648, ERS1627764, ERS1627536, ERS1627463, ERS1627083, ERS1627084, ERS1627675, ERS1627794, ERS1627499, ERS1627816, ERS1627512, ERS1627673, ERS1627744, ERS1627782, ERS1627505, ERS1627810, ERS1627128, ERS1627098, ERS1627628, ERS1627734, ERS1627500, ERS1627608, ERS1627564, ERS1627513, ERS1627076, ERS1627684, ERS1627731, ERS1627568, ERS1627650, ERS1627658, ERS1627118, ERS1627819, ERS1627518, ERS1627535, ERS1627517, ERS1627641, ERS1627522, ERS1627483, ERS1627665, ERS1627577, ERS1627605, ERS1627620, ERS1627110, ERS1627787, ERS1627600, ERS1627493, ERS1627598, ERS1627576, ERS1627606, ERS1627569, ERS1627669, ERS1627726, ERS1627818, ERS1627655, ERS1627643, ERS1627621, ERS1627667, ERS1627642, ERS1627722, ERS1627530, ERS1627120, ERS1627562, ERS1627131, ERS1627134, ERS1627489, ERS1627511, ERS1627822, ERS1627587, ERS1627137, ERS1627557, ERS1627108, ERS1627079, ERS1627524, ERS1627699, ERS1627680, ERS1627140, ERS1627144, ERS1627502, ERS1627521, ERS1627558, ERS1627601, ERS1627619, ERS1627136, ERS1627548, ERS1627690, ERS1627670, ERS1627830, ERS1627596, ERS1627490, ERS1627723, ERS1627776, ERS1627809, ERS1627635, ERS1627758, ERS1627111, ERS1627798, ERS1627660, ERS1627603, ERS1627139, ERS1627687, ERS1627525, ERS1627644, ERS1627627, ERS1627473, ERS1627685, ERS1627581, ERS1627702, ERS1627462, ERS1627672, ERS1627823, ERS1627615, ERS1627474, ERS1627583, ERS1627465, ERS1627796, ERS1627653, ERS1627756, ERS1627725, ERS1627698, ERS1627145, ERS1627785, ERS1627761, ERS1627704, ERS1627099, ERS1627721, ERS1627788, ERS1627824, ERS1627549, ERS1627126, ERS1627472, ERS1627509, ERS1627647, ERS1627835, ERS1627589, ERS1627121, ERS1627514, ERS1627088, ERS1627085, ERS1627610, ERS1627089, ERS1627552, ERS1627639, ERS1627539, ERS1627567, ERS1627750, ERS1627469, ERS1627745, ERS1627531, ERS1627712, ERS1627476, ERS1627542, ERS1627730, ERS1627585, ERS1627738, ERS1627740, ERS1627674, ERS1627762, ERS1627795, ERS1627668, ERS1627570, ERS1627155, ERS1627651, ERS1627769, ERS1627528, ERS1627746, ERS1627612, ERS1627495, ERS1627679, ERS1627662, ERS1627507, ERS1627664, ERS1627806, ERS1627572, ERS1627613, ERS1627616, ERS1627540, ERS1627695, ERS1627659, ERS1627663, ERS1627748, ERS1627703, ERS1627545, ERS1627101, ERS1627478, ERS1627611, ERS1627727, ERS1627812, ERS1627765, ERS1627624, ERS1627654, ERS1627461, ERS1627710, ERS1627597, ERS1627623, ERS1627833, ERS1627797, ERS1627147, ERS1627717, ERS1627594, ERS1627763, ERS1627707, ERS1627112, ERS1627130, ERS1627154, ERS1627543, ERS1627689, ERS1627714, ERS1627113, ERS1627077, ERS1627599, ERS1627736, ERS1627153, ERS1627123, ERS1627636, ERS1627100, ERS1627622, ERS1627481, ERS1627086, ERS1627652, ERS1627633, ERS1627102, ERS1627618, ERS1627579] |[] |\n", + "|42.0831 |-86.351 |316 |[] |[ERS2622596, ERS2622594, ERS2679664, ERS2679467, ERS2618408, ERS2622619, ERS2679527, ERS2679783, ERS2679540, ERS2622613, ERS2679737, ERS2679867, ERS2679662, ERS2679764, ERS2622610, ERS2679505, ERS2622591, ERS2679504, ERS2679499, ERS2679630, ERS2679577, ERS2622607, ERS2679755, ERS2679546, ERS2679461, ERS2679646, ERS2679746, ERS2679723, ERS2679466, ERS2679512, ERS2679623, ERS2679650, ERS2679574, ERS2679456, ERS2679667, ERS2679596, ERS2679566, ERS2622602, ERS2680005, ERS2679727, ERS2679743, ERS2622605, ERS2622612, ERS2679863, ERS2679706, ERS2679495, ERS2679536, ERS2679725, ERS2679859, ERS2679814, ERS2679554, ERS2679588, ERS2618495, ERS2679686, ERS2679515, ERS2679592, ERS2618465, ERS2679576, ERS2679660, ERS2679570, ERS2679522, ERS2679785, ERS2679770, ERS2622588, ERS2679685, ERS2679526, ERS2679694, ERS2679704, ERS2679635, ERS2618478, ERS2679513, ERS2679790, ERS2679518, ERS2622616, ERS2679789, ERS2679581, ERS2679689, ERS2679457, ERS2622617, ERS2679481, ERS2679864, ERS2679647, ERS2679692, ERS2679702, ERS2679520, ERS2679758, ERS2679479, ERS2622595, ERS2679826, ERS2679707, ERS2679553, ERS2679580, ERS2679578, ERS2679935, ERS2679606, ERS2679722, ERS2618494, ERS2679861, ERS2679563, ERS2679999, ERS2679597, ERS2679870, ERS2679458, ERS2679550, ERS2679524, ERS2622622, ERS2679545, ERS2679561, ERS2679697, ERS2679757, ERS2679603, ERS2679655, ERS2679613, ERS2679591, ERS2679624, ERS2618475, ERS2679642, ERS2679768, ERS2679771, ERS2679475, ERS2679740, ERS2679502, ERS2679857, ERS2679659, ERS2679521, ERS2679711, ERS2679636, ERS2679632, ERS2622615, ERS2679544, ERS2679673, ERS2679531, ERS2679752, ERS2679708, ERS2679541, ERS2679464, ERS2679543, ERS2618477, ERS2679784, ERS2679741, ERS2679720, ERS2679514, ERS2679732, ERS2679909, ERS2679687, ERS2679609, ERS2679868, ERS2622601, ERS2679506, ERS2679759, ERS2679629, ERS2679537, ERS2679558, ERS2679672, ERS2679451, ERS2679761, ERS2679729, ERS2679683, ERS2679680, ERS2679745, ERS2622597, ERS2679497, ERS2679747, ERS2679856, ERS2679498, ERS2679756, ERS2622587, ERS2679767, ERS2679516, ERS2679637, ERS2679567, ERS2679484, ERS2679791, ERS2679462, ERS2679652, ERS2622621, ERS2679500, ERS2679728, ERS2679731, ERS2679742, ERS2679619, ERS2680004, ERS2679780, ERS2679626, ERS2679703, ERS2618474, ERS2679488, ERS2679769, ERS2679736, ERS2618503, ERS2679782, ERS2679860, ERS2679476, ERS2618484, ERS2679776, ERS2679717, ERS2679590, ERS2679668, ERS2679600, ERS2679657, ERS2679753, ERS2679453, ERS2679604, ERS2679450, ERS2618505, ERS2679496, ERS2679602, ERS2679607, ERS2679696, ERS2679712, ERS2622614, ERS2679542, ERS2622606, ERS2679575, ERS2679674, ERS2679633, ERS2679463, ERS2679587, ERS2679772, ERS2679465, ERS2679718, ERS2622603, ERS2622623, ERS2679621, ERS2679663, ERS2679991, ERS2679611, ERS2679608, ERS2679594, ERS2679801, ERS2679556, ERS2679796, ERS2679519, ERS2679618, ERS2679503, ERS2679501, ERS2679507, ERS2679654, ERS2618500, ERS2622620, ERS2679705, ERS2679533, ERS2679486, ERS2679669, ERS2679517, ERS2679555, ERS2680007, ERS2679529, ERS2679666, ERS2679719, ERS2679509, ERS2622593, ERS2679617, ERS2622592, ERS2679482, ERS2679565, ERS2679986, ERS2679622, ERS2679645, ERS2679862, ERS2679690, ERS2622604, ERS2622598, ERS2679532, ERS2679980, ERS2679733, ERS2679610, ERS2618502, ERS2679653, ERS2618464, ERS2679489, ERS2679994, ERS2679628, ERS2679525, ERS2679582, ERS2679794, ERS2679644, ERS2679534, ERS2679449, ERS2679869, ERS2679795, ERS2622618, ERS2679557, ERS2679927, ERS2679469, ERS2679774, ERS2622608, ERS2679858, ERS2679452, ERS2679547, ERS2679679, ERS2679777, ERS2679634, ERS2679627, ERS2679589, ERS2679528, ERS2679658, ERS2679691, ERS2679564, ERS2679535, ERS2679612, ERS2679474, ERS2679643, ERS2679548, ERS2679675, ERS2679480, ERS2679562, ERS2618416, ERS2618483, ERS2679716, ERS2679599, ERS2679735, ERS2679477, ERS2679779, ERS2679523, ERS2622611] |[] |\n", + "|54.3384 |10.12 |305 |[] |[ERS1237548, ERS1237476, ERS1237368, ERS1237472, ERS1237506, ERS1237279, ERS1237318, ERS1237479, ERS1237464, ERS1237527, ERS1237396, ERS1237291, ERS1237394, ERS1237483, ERS1237471, ERS1237450, ERS1237298, ERS1237444, ERS1237503, ERS1237439, ERS1237299, ERS1237510, ERS1237515, ERS1237551, ERS1237452, ERS1237277, ERS1237496, ERS1237526, ERS1237410, ERS1237419, ERS1237343, ERS1237376, ERS1237549, ERS1237447, ERS1237373, ERS1237266, ERS1237536, ERS1237427, ERS1237443, ERS1237311, ERS1237557, ERS1237351, ERS1237348, ERS1237378, ERS1237482, ERS1237405, ERS1237357, ERS1237511, ERS1237292, ERS1237558, ERS1237542, ERS1237518, ERS1237486, ERS1237545, ERS1237550, ERS1237392, ERS1237473, ERS1237529, ERS1237297, ERS1237499, ERS1237504, ERS1237307, ERS1237555, ERS1237301, ERS1237441, ERS1237385, ERS1237406, ERS1237470, ERS1237329, ERS1237400, ERS1237315, ERS1237457, ERS1237561, ERS1237272, ERS1237391, ERS1237491, ERS1237519, ERS1237349, ERS1237388, ERS1237290, ERS1237274, ERS1237287, ERS1237498, ERS1237538, ERS1237430, ERS1237552, ERS1237535, ERS1237505, ERS1237435, ERS1237512, ERS1237401, ERS1237294, ERS1237330, ERS1237369, ERS1237454, ERS1237478, ERS1237456, ERS1237372, ERS1237432, ERS1237565, ERS1237440, ERS1237554, ERS1237509, ERS1237293, ERS1237267, ERS1237300, ERS1237362, ERS1237514, ERS1237359, ERS1237387, ERS1237317, ERS1237269, ERS1237508, ERS1237352, ERS1237284, ERS1237469, ERS1237302, ERS1237276, ERS1237321, ERS1237429, ERS1237309, ERS1237413, ERS1237480, ERS1237380, ERS1237295, ERS1237404, ERS1237507, ERS1237275, ERS1237463, ERS1237324, ERS1237492, ERS1237523, ERS1237316, ERS1237422, ERS1237340, ERS1237286, ERS1237494, ERS1237268, ERS1237355, ERS1237487, ERS1237421, ERS1237386, ERS1237356, ERS1237495, ERS1237363, ERS1237350, ERS1237403, ERS1237370, ERS1237314, ERS1237416, ERS1237533, ERS1237490, ERS1237475, ERS1237408, ERS1237296, ERS1237398, ERS1237562, ERS1237334, ERS1237364, ERS1237341, ERS1237354, ERS1237264, ERS1237263, ERS1237271, ERS1237305, ERS1237484, ERS1237339, ERS1237393, ERS1237397, ERS1237560, ERS1237336, ERS1237467, ERS1237553, ERS1237313, ERS1237489, ERS1237303, ERS1237346, ERS1237283, ERS1237461, ERS1237374, ERS1237481, ERS1237556, ERS1237423, ERS1237532, ERS1237261, ERS1237567, ERS1237361, ERS1237460, ERS1237335, ERS1237524, ERS1237436, ERS1237426, ERS1237265, ERS1237342, ERS1237360, ERS1237407, ERS1237320, ERS1237375, ERS1237451, ERS1237497, ERS1237278, ERS1237308, ERS1237425, ERS1237466, ERS1237319, ERS1237382, ERS1237270, ERS1237449, ERS1237412, ERS1237534, ERS1237325, ERS1237280, ERS1237525, ERS1237281, ERS1237448, ERS1237520, ERS1237501, ERS1237345, ERS1237322, ERS1237434, ERS1237566, ERS1237437, ERS1237347, ERS1237537, ERS1237282, ERS1237262, ERS1237428, ERS1237521, ERS1237424, ERS1237411, ERS1237395, ERS1237323, ERS1237289, ERS1237409, ERS1237273, ERS1237333, ERS1237459, ERS1237312, ERS1237402, ERS1237337, ERS1237367, ERS1237442, ERS1237547, ERS1237285, ERS1237353, ERS1237559, ERS1237328, ERS1237304, ERS1237338, ERS1237379, ERS1237381, ERS1237493, ERS1237433, ERS1237326, ERS1237485, ERS1237455, ERS1237531, ERS1237517, ERS1237389, ERS1237417, ERS1237344, ERS1237414, ERS1237539, ERS1237366, ERS1237564, ERS1237516, ERS1237468, ERS1237310, ERS1237377, ERS1237399, ERS1237453, ERS1237358, ERS1237530, ERS1237541, ERS1237371, ERS1237431, ERS1237420, ERS1237331, ERS1237438, ERS1237477, ERS1237446, ERS1237458, ERS1237390, ERS1237502, ERS1237540, ERS1237513, ERS1237563, ERS1237528, ERS1237488, ERS1237418, ERS1237543, ERS1237465, ERS1237445, ERS1237474, ERS1237327, ERS1237522, ERS1237546, ERS1237544, ERS1237415, ERS1237365, ERS1237462, ERS1237306, ERS1237384, ERS1237332, ERS1237500] |[] |\n", + "|51.5 |-0.12 |280 |[] |[ERS501624, ERS501964, ERS501331, ERS502234, ERS501753, ERS501498, ERS501324, ERS502143, ERS501736, ERS501332, ERS501530, ERS501921, ERS501536, ERS501833, ERS501956, ERS502195, ERS502129, ERS501306, ERS501737, ERS502010, ERS501738, ERS502061, ERS501273, ERS501926, ERS501552, ERS501433, ERS501546, ERS501634, ERS501454, ERS502001, ERS502008, ERS501971, ERS502235, ERS501516, ERS502020, ERS501304, ERS501937, ERS501390, ERS501420, ERS501443, ERS501925, ERS501398, ERS501719, ERS501410, ERS502059, ERS501932, ERS501904, ERS501898, ERS501884, ERS501533, ERS502033, ERS501265, ERS501890, ERS502215, ERS501377, ERS501909, ERS502012, ERS501435, ERS501735, ERS501731, ERS501867, ERS501278, ERS501955, ERS501598, ERS501962, ERS501969, ERS501722, ERS501475, ERS501514, ERS501440, ERS501974, ERS502084, ERS501701, ERS501990, ERS501941, ERS502070, ERS501790, ERS502124, ERS501406, ERS501497, ERS501581, ERS502042, ERS501750, ERS501426, ERS501716, ERS502221, ERS501487, ERS501551, ERS501469, ERS501856, ERS501395, ERS501950, ERS502017, ERS501556, ERS501889, ERS502092, ERS501682, ERS501425, ERS501976, ERS501954, ERS502154, ERS501421, ERS501929, ERS501527, ERS501400, ERS501874, ERS501728, ERS501923, ERS501381, ERS501920, ERS501704, ERS502095, ERS501927, ERS502223, ERS501478, ERS501436, ERS501597, ERS502139, ERS501757, ERS501720, ERS501901, ERS501880, ERS501387, ERS501357, ERS502227, ERS501447, ERS501779, ERS502077, ERS502138, ERS501509, ERS501593, ERS501260, ERS501393, ERS502153, ERS501942, ERS502011, ERS501378, ERS501401, ERS502106, ERS501382, ERS501685, ERS502026, ERS501868, ERS501700, ERS501445, ERS501725, ERS502069, ERS501595, ERS501508, ERS501515, ERS501481, ERS502196, ERS501550, ERS501961, ERS501613, ERS502214, ERS501412, ERS501832, ERS502075, ERS502104, ERS501895, ERS502065, ERS502101, ERS501383, ERS501991, ERS502055, ERS501835, ERS501924, ERS501606, ERS501906, ERS501317, ERS501520, ERS501375, ERS502126, ERS501309, ERS501416, ERS501769, ERS501638, ERS501264, ERS501695, ERS501946, ERS501397, ERS501345, ERS501702, ERS501372, ERS501402, ERS501896, ERS501752, ERS501438, ERS502027, ERS501353, ERS501603, ERS501423, ERS501577, ERS501708, ERS501432, ERS501612, ERS501936, ERS501869, ERS502168, ERS502006, ERS501715, ERS501622, ERS501897, ERS502057, ERS501261, ERS501419, ERS501855, ERS501568, ERS501434, ERS501263, ERS501960, ERS501951, ERS501913, ERS502111, ERS501579, ERS501987, ERS501364, ERS501894, ERS501986, ERS501356, ERS501365, ERS501458, ERS501471, ERS501915, ERS502134, ERS501582, ERS501693, ERS501526, ERS501446, ERS501910, ERS501747, ERS501396, ERS501366, ERS501751, ERS501945, ERS501984, ERS502022, ERS501422, ERS501935, ERS502225, ERS501483, ERS501376, ERS501360, ERS501368, ERS501930, ERS501949, ERS501979, ERS501939, ERS501320, ERS501970, ERS501266, ERS501409, ERS502123, ERS501903, ERS501384, ERS501623, ERS501442, ERS501567, ERS501296, ERS501573, ERS501418, ERS502046, ERS501908, ERS501399, ERS501363, ERS501931, ERS501558, ERS501441, ERS502145, ERS501748, ERS501459, ERS501271, ERS502116, ERS501601, ERS501888, ERS502036, ERS501625, ERS502119, ERS501944] |[] |\n", + "|66.0799 |12.5879 |358 |[] |[ERS5444431, ERS5444652, ERS5444480, ERS5444733, ERS5444684, ERS5444551, ERS5444467, ERS5444694, ERS5444582, ERS5444476, ERS5444569, ERS5444758, ERS5444426, ERS5444690, ERS5444583, ERS5444580, ERS5444660, ERS5444627, ERS5444535, ERS5444663, ERS5444474, ERS5444523, ERS5444561, ERS5444500, ERS5444489, ERS5444573, ERS5444600, ERS5444413, ERS5444450, ERS5444708, ERS5444498, ERS5444727, ERS5444499, ERS5444750, ERS5444748, ERS5444436, ERS5444721, ERS5444656, ERS5444657, ERS5444754, ERS5444506, ERS5444730, ERS5444449, ERS5444531, ERS5444520, ERS5444675, ERS5444623, ERS5444419, ERS5444686, ERS5444621, ERS5444412, ERS5444575, ERS5444493, ERS5444596, ERS5444549, ERS5444635, ERS5444515, ERS5444435, ERS5444681, ERS5444584, ERS5444615, ERS5444534, ERS5444567, ERS5444586, ERS5444432, ERS5444595, ERS5444746, ERS5444568, ERS5444421, ERS5444731, ERS5444647, ERS5444755, ERS5444424, ERS5444428, ERS5444471, ERS5444680, ERS5444700, ERS5444503, ERS5444420, ERS5444766, ERS5444646, ERS5444654, ERS5444631, ERS5444509, ERS5444720, ERS5444481, ERS5444597, ERS5444728, ERS5444617, ERS5444653, ERS5444496, ERS5444414, ERS5444710, ERS5444455, ERS5444536, ERS5444602, ERS5444585, ERS5444423, ERS5444452, ERS5444521, ERS5444738, ERS5444576, ERS5444539, ERS5444479, ERS5444541, ERS5444487, ERS5444629, ERS5444518, ERS5444542, ERS5444606, ERS5444422, ERS5444765, ERS5444636, ERS5444544, ERS5444598, ERS5444438, ERS5444512, ERS5444592, ERS5444693, ERS5444611, ERS5444411, ERS5444761, ERS5444688, ERS5444614, ERS5444461, ERS5444714, ERS5444742, ERS5444463, ERS5444537, ERS5444434, ERS5444622, ERS5444492, ERS5444659, ERS5444752, ERS5444472, ERS5444642, ERS5444441, ERS5444571, ERS5444726, ERS5444683, ERS5444701, ERS5444763, ERS5444759, ERS5444724, ERS5444613, ERS5444608, ERS5444459, ERS5444664, ERS5444753, ERS5444711, ERS5444464, ERS5444760, ERS5444665, ERS5444723, ERS5444674, ERS5444416, ERS5444725, ERS5444666, ERS5444705, ERS5444447, ERS5444717, ERS5444673, ERS5444510, ERS5444552, ERS5444418, ERS5444453, ERS5444749, ERS5444494, ERS5444668, ERS5444696, ERS5444519, ERS5444497, ERS5444692, ERS5444679, ERS5444594, ERS5444734, ERS5444641, ERS5444645, ERS5444486, ERS5444634, ERS5444740, ERS5444469, ERS5444655, ERS5444483, ERS5444607, ERS5444530, ERS5444741, ERS5444475, ERS5444516, ERS5444572, ERS5444577, ERS5444505, ERS5444707, ERS5444589, ERS5444543, ERS5444415, ERS5444620, ERS5444429, ERS5444491, ERS5444456, ERS5444507, ERS5444547, ERS5444490, ERS5444667, ERS5444632, ERS5444709, ERS5444744, ERS5444501, ERS5444661, ERS5444587, ERS5444751, ERS5444570, ERS5444719, ERS5444644, ERS5444630, ERS5444564, ERS5444522, ERS5444579, ERS5444618, ERS5444478, ERS5444511, ERS5444590, ERS5444687, ERS5444610, ERS5444502, ERS5444554, ERS5444548, ERS5444648, ERS5444625, ERS5444678, ERS5444446, ERS5444578, ERS5444662, ERS5444565, ERS5444685, ERS5444732, ERS5444676, ERS5444559, ERS5444619, ERS5444713, ERS5444553, ERS5444517, ERS5444712, ERS5444545, ERS5444628, ERS5444556, ERS5444524, ERS5444550, ERS5444633, ERS5444702, ERS5444425, ERS5444468, ERS5444457, ERS5444433, ERS5444529, ERS5444736, ERS5444466, ERS5444470, ERS5444603, ERS5444745, ERS5444638, ERS5444609, ERS5444546, ERS5435290, ERS5444605, ERS5444563, ERS5444538, ERS5444439, ERS5444514, ERS5444473, ERS5444485, ERS5444718, ERS5444513, ERS5444704, ERS5444533, ERS5444677, ERS5444488, ERS5444658, ERS5444669, ERS5444427, ERS5444593, ERS5444591, ERS5444672, ERS5444743, ERS5444566, ERS5444451, ERS5444640, ERS5444639, ERS5444716, ERS5444689, ERS5444695, ERS5444649, ERS5444650, ERS5444729, ERS5444706, ERS5444442, ERS5444462, ERS5444624, ERS5444626, ERS5444458, ERS5444697, ERS5444703, ERS5444699, ERS5444528, ERS5444604, ERS5444588, ERS5444762, ERS5444448, ERS5444601, ERS5444574, ERS5444756, ERS5444430, ERS5444643, ERS5444527, ERS5444691, ERS5444670, ERS5444735, ERS5444482, ERS5444440, ERS5444495, ERS5444465, ERS5444443, ERS5444557, ERS5435291, ERS5444671, ERS5444540, ERS5444532, ERS5444581, ERS5444560, ERS5444764, ERS5444454, ERS5444484, ERS5444682, ERS5444444, ERS5444599, ERS5444739, ERS5444525, ERS5444558, ERS5444562, ERS5444722, ERS5444460, ERS5444445, ERS5444410, ERS5444477, ERS5444555, ERS5444526, ERS5444612, ERS5444715, ERS5444508, ERS5444747, ERS5444437, ERS5444637, ERS5444737, ERS5444757, ERS5444698, ERS5444417, ERS5444504, ERS5444651] |[] |\n", + "|22.27 |113.46 |385 |[] |[SRS4578979, SRS4578914, SRS4579195, SRS4579080, SRS4578922, SRS4578937, SRS4579141, SRS4578975, SRS4579219, SRS4579160, SRS4579277, SRS4579166, SRS4579073, SRS4579042, SRS4578999, SRS4579068, SRS4578963, SRS4579049, SRS4578980, SRS4579266, SRS4579126, SRS4579017, SRS4579170, SRS4579212, SRS4579200, SRS4578951, SRS4578946, SRS4579007, SRS4579147, SRS4578989, SRS4579092, SRS4579194, SRS4579091, SRS4579180, SRS4579013, SRS4579054, SRS4579096, SRS4579159, SRS4579288, SRS4579086, SRS4579144, SRS4579265, SRS4579162, SRS4579008, SRS4579133, SRS4579275, SRS4578966, SRS4579248, SRS4579233, SRS4579198, SRS4579242, SRS4579146, SRS4578961, SRS4579227, SRS4579029, SRS4579152, SRS4579039, SRS4579113, SRS4578978, SRS4579231, SRS4579260, SRS4579251, SRS4579175, SRS4578915, SRS4579083, SRS4579114, SRS4579213, SRS4578941, SRS4579268, SRS4579167, SRS4579234, SRS4579247, SRS4578960, SRS4579130, SRS4578992, SRS4578973, SRS4578920, SRS4579118, SRS4579107, SRS4579186, SRS4578921, SRS4579187, SRS4578968, SRS4579179, SRS4579281, SRS4579257, SRS4579021, SRS4578932, SRS4579135, SRS4579224, SRS4579256, SRS4579060, SRS4579123, SRS4579003, SRS4579235, SRS4579250, SRS4578996, SRS4578994, SRS4579196, SRS4579120, SRS4578974, SRS4578986, SRS4578929, SRS4578943, SRS4579124, SRS4579047, SRS4578997, SRS4578947, SRS4579246, SRS4578972, SRS4578926, SRS4579151, SRS4579218, SRS4579071, SRS4578967, SRS4579143, SRS4579062, SRS4579097, SRS4579269, SRS4579087, SRS4579261, SRS4579117, SRS4579173, SRS4579284, SRS4579286, SRS4578991, SRS4579155, SRS4579150, SRS4579267, SRS4578998, SRS4579217, SRS4579085, SRS4579036, SRS4579094, SRS4578971, SRS4579105, SRS4578939, SRS4579211, SRS4578916, SRS4579283, SRS4579128, SRS4579031, SRS4579273, SRS4579015, SRS4578977, SRS4579065, SRS4579099, SRS4579245, SRS4579026, SRS4579149, SRS4578913, SRS4579148, SRS4579084, SRS4578938, SRS4579172, SRS4579161, SRS4578990, SRS4578940, SRS4579254, SRS4579183, SRS4579121, SRS4578934, SRS4578927, SRS4579009, SRS4578965, SRS4578969, SRS4579076, SRS4579287, SRS4579102, SRS4578925, SRS4578918, SRS4578988, SRS4579050, SRS4579034, SRS4579181, SRS4578982, SRS4578954, SRS4579223, SRS4578917, SRS4579184, SRS4579171, SRS4579280, SRS4579294, SRS4579292, SRS4578942, SRS4579072, SRS4579104, SRS4578935, SRS4579192, SRS4579098, SRS4579056, SRS4579111, SRS4579271, SRS4579005, SRS4579061, SRS4579079, SRS4579209, SRS4579052, SRS4579272, SRS4579164, SRS4579012, SRS4579112, SRS4579177, SRS4579070, SRS4579090, SRS4578933, SRS4578983, SRS4579046, SRS4579109, SRS4578993, SRS4579018, SRS4579134, SRS4579182, SRS4579022, SRS4579239, SRS4579002, SRS4579037, SRS4578976, SRS4578995, SRS4579279, SRS4579290, SRS4579216, SRS4579078, SRS4579253, SRS4579207, SRS4578981, SRS4579228, SRS4579249, SRS4579241, SRS4579053, SRS4579140, SRS4579203, SRS4579001, SRS4579191, SRS4578959, SRS4579040, SRS4579035, SRS4579230, SRS4579006, SRS4578984, SRS4579014, SRS4579158, SRS4579205, SRS4579115, SRS4579210, SRS4579163, SRS4579185, SRS4579019, SRS4579197, SRS4579189, SRS4578964, SRS4579116, SRS4579004, SRS4579262, SRS4578911, SRS4579255, SRS4578987, SRS4578931, SRS4579057, SRS4578936, SRS4579074, SRS4579258, SRS4579023, SRS4579244, SRS4579291, SRS4578953, SRS4579169, SRS4579038, SRS4579285, SRS4579030, SRS4579289, SRS4579214, SRS4579032, SRS4579232, SRS4578949, SRS4579055, SRS4579108, SRS4579033, SRS4579264, SRS4579075, SRS4579229, SRS4579237, SRS4578970, SRS4579122, SRS4579028, SRS4579204, SRS4579252, SRS4579067, SRS4579193, SRS4579240, SRS4579089, SRS4579226, SRS4579156, SRS4579010, SRS4579274, SRS4579236, SRS4579106, SRS4578956, SRS4578924, SRS4579208, SRS4579221, SRS4579063, SRS4579041, SRS4579077, SRS4579137, SRS4579119, SRS4579199, SRS4578950, SRS4579276, SRS4579044, SRS4579238, SRS4579131, SRS4579024, SRS4578957, SRS4579282, SRS4579081, SRS4579093, SRS4578962, SRS4579142, SRS4579188, SRS4579270, SRS4579100, SRS4579129, SRS4579027, SRS4579016, SRS4579045, SRS4579259, SRS4578930, SRS4579176, SRS4579000, SRS4579138, SRS4579225, SRS4579069, SRS4579220, SRS4579145, SRS4579088, SRS4579168, SRS4579222, SRS4579174, SRS4579125, SRS4579064, SRS4579190, SRS4578919, SRS4578944, SRS4579139, SRS4579132, SRS4579127, SRS4579051, SRS4579278, SRS4579157, SRS4578958, SRS4579215, SRS4579243, SRS4579110, SRS4578948, SRS4579101, SRS4579066, SRS4579201, SRS4579136, SRS4579025, SRS4579011, SRS4578928, SRS4579263, SRS4579178, SRS4578952, SRS4579082, SRS4579058, SRS4579206, SRS4579154, SRS4579153, SRS4578985, SRS4579059, SRS4578955, SRS4578912, SRS4579165, SRS4579020, SRS4578923, SRS4579095, SRS4578910, SRS4578945, SRS4579293, SRS4579043, SRS4579048, SRS4579202, SRS4579103] |[] |\n", + "|42.4908 |-76.4581 |331 |[] |[ERS1238733, ERS1238795, ERS1238603, ERS1238880, ERS1238685, ERS1238831, ERS1238756, ERS1238794, ERS1238344, ERS1238584, ERS1238835, ERS1238716, ERS1238825, ERS1238699, ERS1238625, ERS1238705, ERS1238607, ERS1238717, ERS1238695, ERS1238776, ERS1238775, ERS1238834, ERS1238740, ERS1238805, ERS1238347, ERS1238582, ERS1238822, ERS1238692, ERS1238778, ERS1238700, ERS1238723, ERS1238600, ERS1238594, ERS1238655, ERS1238661, ERS1238844, ERS1238755, ERS1238858, ERS1238743, ERS1238730, ERS1238339, ERS1238736, ERS1238659, ERS1238753, ERS1238612, ERS1238811, ERS1238867, ERS1238768, ERS1238888, ERS1238817, ERS1238602, ERS1238647, ERS1238645, ERS1238637, ERS1238845, ERS1238870, ERS1238851, ERS1238681, ERS1238787, ERS1238847, ERS1238710, ERS1238859, ERS1238732, ERS1238642, ERS1238583, ERS1238343, ERS1238836, ERS1238742, ERS1238857, ERS1238701, ERS1238726, ERS1238676, ERS1238597, ERS1238855, ERS1238741, ERS1238745, ERS1238591, ERS1238703, ERS1238816, ERS1238789, ERS1238727, ERS1238777, ERS1238773, ERS1238635, ERS1238790, ERS1238658, ERS1238818, ERS1238606, ERS1238839, ERS1238779, ERS1238748, ERS1238686, ERS1238670, ERS1238608, ERS1238338, ERS1238801, ERS1238770, ERS1238751, ERS1238829, ERS1238827, ERS1238615, ERS1238734, ERS1238627, ERS1238832, ERS1238678, ERS1238860, ERS1238872, ERS1238808, ERS1238663, ERS1238824, ERS1238638, ERS1238337, ERS1238595, ERS1238711, ERS1238581, ERS1238639, ERS1238586, ERS1238702, ERS1238598, ERS1238802, ERS1238864, ERS1238754, ERS1238618, ERS1238876, ERS1238671, ERS1238341, ERS1238587, ERS1238788, ERS1238660, ERS1238651, ERS1238791, ERS1238693, ERS1238826, ERS1238758, ERS1238786, ERS1238630, ERS1238883, ERS1238679, ERS1238688, ERS1238349, ERS1238848, ERS1238877, ERS1238750, ERS1238785, ERS1238731, ERS1238720, ERS1238828, ERS1238668, ERS1238709, ERS1238718, ERS1238713, ERS1238856, ERS1238708, ERS1238878, ERS1238863, ERS1238823, ERS1238690, ERS1238760, ERS1238879, ERS1238345, ERS1238769, ERS1238590, ERS1238744, ERS1238673, ERS1238781, ERS1238653, ERS1238605, ERS1238830, ERS1238884, ERS1238654, ERS1238838, ERS1238643, ERS1238652, ERS1238616, ERS1238348, ERS1238649, ERS1238749, ERS1238761, ERS1238604, ERS1238869, ERS1238672, ERS1238762, ERS1238725, ERS1238632, ERS1238644, ERS1238804, ERS1238871, ERS1238610, ERS1238675, ERS1238887, ERS1238807, ERS1238350, ERS1238629, ERS1238623, ERS1238662, ERS1238843, ERS1238800, ERS1238764, ERS1238850, ERS1238646, ERS1238803, ERS1238578, ERS1238798, ERS1238746, ERS1238577, ERS1238837, ERS1238585, ERS1238810, ERS1238674, ERS1238640, ERS1238624, ERS1238882, ERS1238854, ERS1238729, ERS1238812, ERS1238771, ERS1238622, ERS1238765, ERS1238648, ERS1238833, ERS1238617, ERS1238783, ERS1238728, ERS1238721, ERS1238619, ERS1238819, ERS1238613, ERS1238631, ERS1238862, ERS1238714, ERS1238842, ERS1238336, ERS1238852, ERS1238626, ERS1238780, ERS1238767, ERS1238589, ERS1238667, ERS1238815, ERS1238772, ERS1238691, ERS1238796, ERS1238621, ERS1238346, ERS1238813, ERS1238650, ERS1238774, ERS1238712, ERS1238614, ERS1238664, ERS1238601, ERS1238576, ERS1238735, ERS1238666, ERS1238861, ERS1238579, ERS1238715, ERS1238799, ERS1238739, ERS1238342, ERS1238696, ERS1238351, ERS1238886, ERS1238694, ERS1238641, ERS1238875, ERS1238683, ERS1238890, ERS1238657, ERS1238889, ERS1238737, ERS1238793, ERS1238340, ERS1238738, ERS1238596, ERS1238665, ERS1238757, ERS1238881, ERS1238706, ERS1238707, ERS1238759, ERS1238853, ERS1238784, ERS1238814, ERS1238866, ERS1238849, ERS1238840, ERS1238763, ERS1238766, ERS1238634, ERS1238809, ERS1238682, ERS1238611, ERS1238792, ERS1238868, ERS1238873, ERS1238592, ERS1238636, ERS1238633, ERS1238885, ERS1238689, ERS1238609, ERS1238797, ERS1238865, ERS1238841, ERS1238628, ERS1238593, ERS1238684, ERS1238588, ERS1238724, ERS1238722, ERS1238620, ERS1238677, ERS1238669, ERS1238698, ERS1238846, ERS1238874, ERS1238719, ERS1238820, ERS1238752, ERS1238580, ERS1238680, ERS1238656, ERS1238782, ERS1238697, ERS1238747, ERS1238806, ERS1238687, ERS1238821, ERS1238599, ERS1238704] |[] |\n", + "|34.972 |135.958 |245 |[] |[DRS085501, DRS085538, DRS085645, DRS085526, DRS085535, DRS085631, DRS085434, DRS085467, DRS085530, DRS085495, DRS085589, DRS085639, DRS085482, DRS085447, DRS085669, DRS085458, DRS085471, DRS085497, DRS085640, DRS085490, DRS085435, DRS085462, DRS085547, DRS085607, DRS085480, DRS085431, DRS085492, DRS085436, DRS085587, DRS085554, DRS085600, DRS085452, DRS085459, DRS085659, DRS085603, DRS085466, DRS085539, DRS085643, DRS085523, DRS085617, DRS085455, DRS085648, DRS085673, DRS085443, DRS085664, DRS085474, DRS085477, DRS085465, DRS085644, DRS085514, DRS085609, DRS085503, DRS085551, DRS085512, DRS085683, DRS085661, DRS085425, DRS085627, DRS085615, DRS085537, DRS085419, DRS085479, DRS085601, DRS085591, DRS085520, DRS085454, DRS085486, DRS085588, DRS085681, DRS085418, DRS085446, DRS085666, DRS085542, DRS085597, DRS085674, DRS085522, DRS085596, DRS085672, DRS085433, DRS085510, DRS085429, DRS085478, DRS085427, DRS085489, DRS085430, DRS085629, DRS085541, DRS085444, DRS085630, DRS085469, DRS085646, DRS085647, DRS085641, DRS085513, DRS085684, DRS085536, DRS085598, DRS085519, DRS085460, DRS085470, DRS085604, DRS085635, DRS085500, DRS085637, DRS085546, DRS085475, DRS085642, DRS085450, DRS085550, DRS085473, DRS085545, DRS085625, DRS085534, DRS085583, DRS085437, DRS085590, DRS085485, DRS085540, DRS085670, DRS085423, DRS085505, DRS085456, DRS085457, DRS085438, DRS085491, DRS085442, DRS085676, DRS085493, DRS085634, DRS085655, DRS085680, DRS085424, DRS085498, DRS085549, DRS085557, DRS085448, DRS085592, DRS085657, DRS085440, DRS085416, DRS085599, DRS085428, DRS085595, DRS085682, DRS085620, DRS085623, DRS085484, DRS085531, DRS085649, DRS085544, DRS085675, DRS085663, DRS085508, DRS085614, DRS085602, DRS085453, DRS085426, DRS085656, DRS085555, DRS085608, DRS085524, DRS085516, DRS085653, DRS085496, DRS085632, DRS085665, DRS085651, DRS085619, DRS085449, DRS085559, DRS085622, DRS085612, DRS085533, DRS085667, DRS085654, DRS085525, DRS085421, DRS085463, DRS085658, DRS085529, DRS085521, DRS085511, DRS085515, DRS085613, DRS085678, DRS085685, DRS085472, DRS085606, DRS085417, DRS085679, DRS085662, DRS085548, DRS085451, DRS085556, DRS085509, DRS085441, DRS085618, DRS085636, DRS085624, DRS085528, DRS085468, DRS085594, DRS085605, DRS085660, DRS085432, DRS085464, DRS085638, DRS085487, DRS085611, DRS085610, DRS085628, DRS085420, DRS085461, DRS085504, DRS085483, DRS085626, DRS085476, DRS085633, DRS085499, DRS085527, DRS085585, DRS085517, DRS085586, DRS085584, DRS085532, DRS085677, DRS085422, DRS085671, DRS085488, DRS085616, DRS085507, DRS085593, DRS085650, DRS085502, DRS085543, DRS085494, DRS085621, DRS085506, DRS085652, DRS085582, DRS085668, DRS085439, DRS085481, DRS085518, DRS085445] |[] |\n", + "|0.0 |0.0 |307 |[MGYG000004633, MGYG000004603, MGYG000004634, MGYG000004610, MGYG000004640, MGYG000004584, MGYG000004560, MGYG000004592, MGYG000004616, MGYG000004545, MGYG000004553, MGYG000004627, MGYG000004639, MGYG000004637, MGYG000004623, MGYG000004589, MGYG000004594, MGYG000004620, MGYG000004562, MGYG000004554, MGYG000004619, MGYG000004582, MGYG000004588, MGYG000004642, MGYG000004614, MGYG000004585, MGYG000004613, MGYG000004550, MGYG000004609, MGYG000004543, MGYG000004638, MGYG000004567, MGYG000004546, MGYG000004558, MGYG000004605, MGYG000004630, MGYG000004568, MGYG000004626, MGYG000004624, MGYG000004544, MGYG000004629, MGYG000004578, MGYG000004586, MGYG000004555, MGYG000004601, MGYG000004600, MGYG000004551, MGYG000004556, MGYG000004599, MGYG000004635, MGYG000004632, MGYG000004643, MGYG000004596, MGYG000004583, MGYG000004611, MGYG000004561, MGYG000004607, MGYG000004569, MGYG000004573, MGYG000004621, MGYG000004549, MGYG000004565, MGYG000004587, MGYG000004575, MGYG000004612, MGYG000004618, MGYG000004547, MGYG000004636, MGYG000004539, MGYG000004552, MGYG000004577, MGYG000004617, MGYG000004570, MGYG000004548, MGYG000004572, MGYG000004593, MGYG000004608, MGYG000004542, MGYG000004540, MGYG000004563, MGYG000004595, MGYG000004564, MGYG000004644, MGYG000004606, MGYG000004590, MGYG000004591, MGYG000004541, MGYG000004604, MGYG000004581, MGYG000004631, MGYG000004598, MGYG000004559, MGYG000004628, MGYG000004571, MGYG000004597, MGYG000004602, MGYG000004615, MGYG000004557, MGYG000004622, MGYG000004566, MGYG000004625, MGYG000004574, MGYG000004576]|[ERS436713, ERS436692, ERS652536, ERS652573, ERS436706, ERS652523, ERS436754, ERS436662, ERS436842, ERS436746, ERS652584, ERS436734, ERS436775, ERS436773, ERS436830, ERS652546, ERS436656, ERS436822, ERS436740, ERS436665, ERS436702, ERS436715, ERS436742, ERS436679, ERS652529, ERS436767, ERS436737, ERS652553, ERS652575, ERS436761, ERS436756, ERS652538, ERS652532, ERS436672, ERS436651, ERS652534, ERS436676, ERS652543, ERS436748, ERS436804, ERS436647, ERS436789, ERS652582, ERS436771, ERS436788, ERS436680, ERS436661, ERS436832, ERS436687, ERS652545, ERS652585, ERS436675, ERS436798, ERS436725, ERS652586, ERS436839, ERS436764, ERS652574, ERS436783, ERS436648, ERS436711, ERS652581, ERS436772, ERS436698, ERS652535, ERS652564, ERS436657, ERS436653, ERS652533, ERS436790, ERS436695, ERS436650, ERS436759, ERS436796, ERS11872586, ERS436723, ERS436776, ERS652558, ERS436758, ERS436682, ERS652527, ERS436667, ERS652580, ERS436808, ERS652591, ERS436814, ERS436649, ERS652555, ERS652530, ERS436721, ERS436663, ERS436787, ERS436806, ERS436752, ERS436819, ERS436732, ERS652525, ERS436729, ERS436717, ERS436833, ERS436709, ERS436777, ERS3867518, ERS652552, ERS652528, ERS652559, ERS436716, ERS436738, ERS436655, ERS436779, ERS436708, ERS436659, ERS652524, ERS436671, ERS436829, ERS436821, ERS652531, ERS436834, ERS436835, ERS436710, ERS436735, ERS652526, ERS436693, ERS436673, ERS436780, ERS436807, ERS652570, ERS652565, ERS436730, ERS436795, ERS652578, ERS652551, ERS436654, ERS652547, ERS436794, ERS436669, ERS436684, ERS436825, ERS436726, ERS436809, ERS436774, ERS436836, ERS436744, ERS436678, ERS436805, ERS436733, ERS436743, ERS436816, ERS436799, ERS652556, ERS436745, ERS436683, ERS652568, ERS652592, ERS436826, ERS436827, ERS436785, ERS652583, ERS436778, ERS436800, ERS436658, ERS652549, ERS436768, ERS436674, ERS436793, ERS436697, ERS436688, ERS436731, ERS652569, ERS436747, ERS436685, ERS436705, ERS436750, ERS652588, ERS652560, ERS436652, ERS652579, ERS436741, ERS436660, ERS436689, ERS436801, ERS652554, ERS436645, ERS436824, ERS436664, ERS436668, ERS436784, ERS652548, ERS436701, ERS436720, ERS436696, ERS436838, ERS436782, ERS652557, ERS652540, ERS436703, ERS436841, ERS436646, ERS436817, ERS652576, ERS436815, ERS436690, ERS436719, ERS652563, ERS436712, ERS436736, ERS436704, ERS436766, ERS436686, ERS436739, ERS436786, ERS436681, ERS652542, ERS436691, ERS436724, ERS652572, ERS436813, ERS436751, ERS436802, ERS436727, ERS436811, ERS652589, ERS436760, ERS436797, ERS436755, ERS436700, ERS436837, ERS436770, ERS436753, ERS436765, ERS652571, ERS436644, ERS436699, ERS436812, ERS652550, ERS436762, ERS436707, ERS436694, ERS652544, ERS652561, ERS436791, ERS436670, ERS436828, ERS436820, ERS652587, ERS436666, ERS652566, ERS436840, ERS652567, ERS436818, ERS652541, ERS436749, ERS652537, ERS436823, ERS436803, ERS436769, ERS652590, ERS436677, ERS436763, ERS436831, ERS652562, ERS436781, ERS436722, ERS436728, ERS436714, ERS436810, ERS652539, ERS436792, ERS436718] |[MGYS00005628]|\n", + "|53.517 |12.7 |232 |[] |[ERS1627229, ERS1627271, ERS1627223, ERS1627343, ERS1627232, ERS1627443, ERS1627277, ERS1627434, ERS1627172, ERS1628131, ERS1627259, ERS1628213, ERS1627336, ERS1628135, ERS1627193, ERS1627214, ERS1627243, ERS1628214, ERS1627383, ERS1627267, ERS1627441, ERS1628146, ERS1628177, ERS1627335, ERS1627264, ERS1627291, ERS1627210, ERS1627212, ERS1627203, ERS1627168, ERS1628158, ERS1628167, ERS1627228, ERS1627456, ERS1627176, ERS1628133, ERS1627266, ERS1627227, ERS1627219, ERS1628191, ERS1627442, ERS1627220, ERS1627171, ERS1627290, ERS1627173, ERS1627183, ERS1628122, ERS1627247, ERS1627182, ERS1627231, ERS1628202, ERS1627242, ERS1627248, ERS1627301, ERS1627449, ERS1627276, ERS1627373, ERS1627348, ERS1627320, ERS1627299, ERS1627165, ERS1627241, ERS1627175, ERS1628205, ERS1628178, ERS1627274, ERS1627240, ERS1627263, ERS1627385, ERS1627437, ERS1627261, ERS1627253, ERS1627347, ERS1627158, ERS1627446, ERS1627275, ERS1627256, ERS1627265, ERS1627202, ERS1627435, ERS1627204, ERS1627278, ERS1627313, ERS1627279, ERS1627296, ERS1627270, ERS1627245, ERS1627372, ERS1627294, ERS1627257, ERS1627181, ERS1627189, ERS1627325, ERS1627236, ERS1627458, ERS1627211, ERS1627298, ERS1628154, ERS1627451, ERS1627251, ERS1627306, ERS1627287, ERS1627167, ERS1627450, ERS1627396, ERS1627359, ERS1628155, ERS1627305, ERS1628157, ERS1628166, ERS1628195, ERS1627166, ERS1627440, ERS1627258, ERS1627205, ERS1627350, ERS1627184, ERS1627159, ERS1627397, ERS1627238, ERS1627448, ERS1628203, ERS1627326, ERS1627384, ERS1627436, ERS1627324, ERS1627371, ERS1627249, ERS1627160, ERS1627239, ERS1627191, ERS1627312, ERS1627268, ERS1627289, ERS1627300, ERS1628134, ERS1627315, ERS1628179, ERS1627213, ERS1628143, ERS1627445, ERS1627453, ERS1627235, ERS1627237, ERS1628170, ERS1627314, ERS1627395, ERS1627285, ERS1627288, ERS1627292, ERS1627280, ERS1628206, ERS1627433, ERS1628121, ERS1627349, ERS1627284, ERS1627308, ERS1628159, ERS1627452, ERS1627439, ERS1627174, ERS1628190, ERS1628147, ERS1628123, ERS1627444, ERS1627272, ERS1627457, ERS1627269, ERS1627221, ERS1627200, ERS1627246, ERS1627252, ERS1627192, ERS1627255, ERS1627262, ERS1627459, ERS1628193, ERS1627233, ERS1627331, ERS1627260, ERS1628130, ERS1627303, ERS1628142, ERS1628169, ERS1628145, ERS1628181, ERS1627293, ERS1627244, ERS1627361, ERS1627218, ERS1628215, ERS1627199, ERS1627286, ERS1627447, ERS1627230, ERS1627281, ERS1627297, ERS1627222, ERS1627273, ERS1627355, ERS1628183, ERS1627307, ERS1628201, ERS1627201, ERS1627170, ERS1628171, ERS1628189, ERS1627194, ERS1627250, ERS1627302, ERS1627367, ERS1628207, ERS1627460, ERS1628194, ERS1627338, ERS1627304, ERS1627282, ERS1627438, ERS1627234, ERS1628182, ERS1627360, ERS1627164, ERS1627283, ERS1627454, ERS1627190, ERS1627455, ERS1627337, ERS1627254, ERS1627432, ERS1627379, ERS1627295, ERS1627391] |[] |\n", + "|53.1 |13.033 |356 |[] |[ERS1628104, ERS1628088, ERS1627945, ERS1627859, ERS1627946, ERS1627754, ERS1627940, ERS1627924, ERS1627877, ERS1628180, ERS1628007, ERS1627791, ERS1628188, ERS1627841, ERS1628149, ERS1627884, ERS1627790, ERS1628085, ERS1628119, ERS1627840, ERS1628051, ERS1628074, ERS1627955, ERS1627851, ERS1628005, ERS1628136, ERS1628175, ERS1627938, ERS1628100, ERS1627977, ERS1627827, ERS1628112, ERS1627873, ERS1627903, ERS1627931, ERS1627858, ERS1628163, ERS1628129, ERS1627865, ERS1628029, ERS1628026, ERS1628148, ERS1627878, ERS1627814, ERS1627847, ERS1628076, ERS1628081, ERS1628172, ERS1628101, ERS1627988, ERS1628013, ERS1627939, ERS1627990, ERS1627979, ERS1627842, ERS1627961, ERS1628056, ERS1627892, ERS1628192, ERS1627896, ERS1627975, ERS1628072, ERS1628210, ERS1627875, ERS1627958, ERS1628044, ERS1627964, ERS1628001, ERS1628061, ERS1627929, ERS1628115, ERS1627879, ERS1627848, ERS1628162, ERS1628055, ERS1627864, ERS1628103, ERS1628150, ERS1627928, ERS1627779, ERS1627960, ERS1627767, ERS1627941, ERS1628208, ERS1627998, ERS1628071, ERS1628067, ERS1628156, ERS1627925, ERS1628064, ERS1627893, ERS1627901, ERS1628082, ERS1628080, ERS1628137, ERS1628006, ERS1627963, ERS1627869, ERS1628086, ERS1628144, ERS1627935, ERS1628087, ERS1627962, ERS1628068, ERS1628019, ERS1628030, ERS1628141, ERS1627911, ERS1627992, ERS1628054, ERS1627997, ERS1628126, ERS1628077, ERS1628132, ERS1628062, ERS1627937, ERS1628109, ERS1628138, ERS1628102, ERS1627971, ERS1627905, ERS1627951, ERS1627948, ERS1628093, ERS1628209, ERS1627889, ERS1628116, ERS1628098, ERS1628106, ERS1628057, ERS1627994, ERS1628048, ERS1628069, ERS1627923, ERS1627904, ERS1627883, ERS1627866, ERS1627843, ERS1628187, ERS1627927, ERS1628094, ERS1627826, ERS1627991, ERS1628173, ERS1627845, ERS1627966, ERS1627950, ERS1628090, ERS1627968, ERS1628105, ERS1627942, ERS1627980, ERS1628164, ERS1627969, ERS1627944, ERS1628050, ERS1628165, ERS1627881, ERS1628002, ERS1628078, ERS1627956, ERS1628036, ERS1627837, ERS1628012, ERS1627934, ERS1627876, ERS1627926, ERS1628065, ERS1627870, ERS1628042, ERS1627839, ERS1628027, ERS1627852, ERS1628070, ERS1627953, ERS1627917, ERS1627936, ERS1627949, ERS1627983, ERS1628020, ERS1628018, ERS1627789, ERS1627850, ERS1628160, ERS1628014, ERS1627915, ERS1628153, ERS1627993, ERS1627802, ERS1628043, ERS1627766, ERS1628204, ERS1627973, ERS1627742, ERS1628058, ERS1628045, ERS1627778, ERS1628003, ERS1627916, ERS1627868, ERS1627862, ERS1628095, ERS1628035, ERS1627974, ERS1627895, ERS1627919, ERS1628017, ERS1627920, ERS1627871, ERS1628049, ERS1627856, ERS1628079, ERS1628127, ERS1628011, ERS1628066, ERS1628212, ERS1627932, ERS1627857, ERS1628184, ERS1627943, ERS1627899, ERS1627849, ERS1627933, ERS1628211, ERS1628196, ERS1627854, ERS1628151, ERS1627947, ERS1628024, ERS1627912, ERS1628168, ERS1628008, ERS1627846, ERS1627900, ERS1628037, ERS1627888, ERS1627801, ERS1628120, ERS1628060, ERS1627908, ERS1627985, ERS1627838, ERS1627890, ERS1628097, ERS1628028, ERS1627906, ERS1628033, ERS1627863, ERS1628039, ERS1627887, ERS1628089, ERS1628022, ERS1627967, ERS1627930, ERS1627909, ERS1627755, ERS1627880, ERS1628038, ERS1628009, ERS1628075, ERS1628114, ERS1627972, ERS1628023, ERS1628047, ERS1628124, ERS1627885, ERS1627743, ERS1628016, ERS1627970, ERS1628063, ERS1628174, ERS1627803, ERS1628034, ERS1628152, ERS1628197, ERS1628046, ERS1627913, ERS1627897, ERS1628186, ERS1627836, ERS1627907, ERS1627813, ERS1627999, ERS1628021, ERS1628059, ERS1628198, ERS1627844, ERS1628004, ERS1628111, ERS1628113, ERS1628052, ERS1627898, ERS1627872, ERS1627918, ERS1628015, ERS1627995, ERS1627981, ERS1628092, ERS1628125, ERS1628185, ERS1628010, ERS1627874, ERS1628099, ERS1627825, ERS1628161, ERS1628118, ERS1628031, ERS1627815, ERS1627989, ERS1628110, ERS1628140, ERS1627910, ERS1627976, ERS1627886, ERS1627921, ERS1628176, ERS1627891, ERS1627952, ERS1628199, ERS1627965, ERS1628025, ERS1628200, ERS1628128, ERS1627996, ERS1628139, ERS1627855, ERS1627867, ERS1628083, ERS1627986, ERS1627922, ERS1628096, ERS1627978, ERS1628041, ERS1627902, ERS1628053, ERS1627914, ERS1628117, ERS1627882, ERS1627982, ERS1628032, ERS1628108, ERS1628000, ERS1627894, ERS1627959, ERS1628107, ERS1627860, ERS1627987, ERS1628084, ERS1627954, ERS1627861, ERS1628091, ERS1627984, ERS1628073, ERS1627957, ERS1628040, ERS1627853] |[] |\n", + "|48.35 |-123.3 |227 |[] |[SRS1690309, SRS1690261, SRS1689108, SRS1690271, SRS1690259, SRS2340126, SRS2340152, SRS1690229, SRS1690237, SRS2340084, SRS1689132, SRS1689129, SRS1689133, SRS2340141, SRS1690299, SRS2340094, SRS2340095, SRS2340130, SRS1690283, SRS1690249, SRS1690251, SRS1689131, SRS1689094, SRS1689102, SRS1690302, SRS1690246, SRS1690267, SRS1689126, SRS1690285, SRS1689093, SRS1690311, SRS1690317, SRS1689120, SRS1690291, SRS1690239, SRS2340109, SRS1690298, SRS1690268, SRS2340144, SRS1690280, SRS1690273, SRS1690305, SRS1690321, SRS1689115, SRS2340100, SRS2340086, SRS1689123, SRS2340155, SRS2340161, SRS1690320, SRS2340140, SRS2340125, SRS2340121, SRS2340093, SRS2340111, SRS1689128, SRS1689101, SRS2340133, SRS2340163, SRS2340143, SRS1689103, SRS1689104, SRS2340138, SRS2340119, SRS1689118, SRS2340090, SRS2340098, SRS1690235, SRS1689144, SRS1690286, SRS2340085, SRS1689142, SRS2340089, SRS1690269, SRS1689116, SRS1689110, SRS1690240, SRS1690248, SRS1690272, SRS1690254, SRS2340134, SRS1690266, SRS1690288, SRS1690312, SRS2340096, SRS2340142, SRS1690293, SRS2340147, SRS1690297, SRS1690281, SRS1690233, SRS2340150, SRS1689127, SRS2340137, SRS2340102, SRS1689109, SRS1690295, SRS1690230, SRS2340132, SRS2340088, SRS1690243, SRS2340114, SRS1690306, SRS1690265, SRS2340123, SRS2340112, SRS1690287, SRS1689106, SRS2340099, SRS2340157, SRS1690241, SRS1689134, SRS2340158, SRS1690310, SRS2340148, SRS2340128, SRS1690284, SRS2340151, SRS1689105, SRS1690250, SRS1689114, SRS1690257, SRS2340104, SRS1689122, SRS2340083, SRS1690232, SRS1690274, SRS2340120, SRS2340129, SRS1527919, SRS1690301, SRS1689140, SRS1690282, SRS1690308, SRS1690313, SRS2340103, SRS1690294, SRS2340105, SRS1689121, SRS1690296, SRS2340106, SRS2340149, SRS1689096, SRS2340139, SRS2340108, SRS1690258, SRS2340145, SRS2340160, SRS2340091, SRS1689100, SRS2340124, SRS1690244, SRS2340107, SRS1689125, SRS1690277, SRS1689136, SRS1689117, SRS1690260, SRS2340110, SRS2340153, SRS1690253, SRS1689112, SRS1690256, SRS1689119, SRS1690275, SRS1689098, SRS1690234, SRS2340115, SRS2340154, SRS2340136, SRS1689095, SRS2340097, SRS1690242, SRS2340146, SRS1689107, SRS2340101, SRS2340092, SRS1689124, SRS2340087, SRS2340159, SRS1690304, SRS1690270, SRS1690316, SRS1689111, SRS1690318, SRS1689137, SRS1690247, SRS1690238, SRS2340162, SRS1689113, SRS1689139, SRS1690292, SRS1689143, SRS1690245, SRS1689099, SRS1690307, SRS2340116, SRS2340113, SRS2340127, SRS1690231, SRS1690303, SRS1690236, SRS1690290, SRS1690255, SRS1689097, SRS1690314, SRS1690276, SRS1689141, SRS2340122, SRS1690279, SRS2340117, SRS1690228, SRS1689135, SRS1690262, SRS1689130, SRS2340118, SRS1690252, SRS2340131, SRS1690315, SRS1689138, SRS1690319, SRS1690300, SRS1690278, SRS1690289, SRS2340135, SRS1690264, SRS1690263] |[] |\n", + "|38.6375 |-90.2651 |212 |[MGYG000002902, MGYG000002895, MGYG000002894, MGYG000002901, MGYG000002897, MGYG000002898, MGYG000002890, MGYG000002904, MGYG000002893, MGYG000002900, MGYG000002896] |[SRS1267830, SRS1267750, SRS1267877, SRS1267861, SRS1267972, SRS1267989, SRS1267783, SRS1267962, SRS1267816, SRS1267794, SRS1268079, SRS1267880, SRS1267811, SRS1267881, SRS1267912, SRS1267841, SRS1268016, SRS1268068, SRS1267900, SRS1267913, SRS1267801, SRS1268081, SRS1267922, SRS1267833, SRS1267804, SRS1268061, SRS1267739, SRS1267772, SRS1268054, SRS1267879, SRS1267859, SRS1268093, SRS1267708, SRS1267904, SRS1267883, SRS1267731, SRS1267822, SRS1267853, SRS1267808, SRS1267950, SRS1267844, SRS1268039, SRS1267732, SRS1267938, SRS1267934, SRS1267997, SRS1267899, SRS1268018, SRS1267866, SRS1267996, SRS1267889, SRS1267954, SRS1267785, SRS1267897, SRS1268350, SRS1267936, SRS1268047, SRS1267736, SRS1268052, SRS1267803, SRS1267863, SRS1268006, SRS1267741, SRS1267882, SRS1267704, SRS1267744, SRS1267939, SRS1267927, SRS1267798, SRS1267976, SRS1267758, SRS1267839, SRS1267773, SRS1267755, SRS1268019, SRS1268002, SRS1267983, SRS1268036, SRS1268091, SRS1267942, SRS1267857, SRS1267932, SRS1267862, SRS1267691, SRS1267850, SRS1267875, SRS1267845, SRS1267965, SRS1267770, SRS1267840, SRS1268043, SRS1267974, SRS1267894, SRS1267807, SRS1268029, SRS1267908, SRS1267847, SRS1267690, SRS1267902, SRS1267693, SRS1267723, SRS1267787, SRS1267988, SRS1267836, SRS1267829, SRS1267810, SRS1267931, SRS1267970, SRS1267769, SRS1267753, SRS1267799, SRS1268033, SRS1268010, SRS1267977, SRS1267892, SRS1267933, SRS1267953, SRS1268037, SRS1267946, SRS1267805, SRS1267987, SRS1268028, SRS1267957, SRS1267958, SRS1267915, SRS1267963, SRS1267971, SRS1267920, SRS1267765, SRS1267896, SRS1268026, SRS1267956, SRS1268038, SRS1268024, SRS1268005, SRS1267775, SRS1267925, SRS1267823, SRS1267726, SRS1267937, SRS1268062, SRS1267835, SRS1267828, SRS1267895, SRS1267852, SRS1267914, SRS1268040, SRS1267838, SRS1267878, SRS1267815, SRS1268077, SRS1267968, SRS1267698, SRS1268045, SRS1267864, SRS1267918, SRS1268078, SRS1268063, SRS1267834, SRS1267855, SRS1267813, SRS1267872, SRS1267893, SRS1267730, SRS1267943, SRS1267848, SRS1268056, SRS1267821, SRS1268007, SRS1268064, SRS1267924, SRS1267959, SRS1267919, SRS1268020, SRS1267786, SRS1267695, SRS1268059, SRS1267809, SRS1267884, SRS1267856, SRS1267735, SRS1267814, SRS1267969, SRS1267699, SRS1268066, SRS1267831, SRS1267985, SRS1267975, SRS1268048, SRS1267812, SRS1267700, SRS1267928, SRS1267967, SRS1267874, SRS1267846, SRS1268065, SRS1267790, SRS1268012, SRS1268021, SRS1267929, SRS1267719, SRS1267973, SRS1267860, SRS1268004, SRS1267729, SRS1268013, SRS1267873, SRS1267951, SRS1267757, SRS1267717, SRS1267885, SRS1267849] |[MGYS00005860]|\n", + "+--------+---------+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+\n", + "\n" + ] + } + ], + "source": [ + "coord_samples.filter(F.col('size')>200).show(truncate=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "78de0287-c087-47c9-a0cb-d92221614a55", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert the spark DataFrame to Pandas for dictionary generation.\n", + "pdf = coord_samples.toPandas()" + ] + }, + { + "cell_type": "markdown", + "id": "6a3b44b8-db6f-4dcb-8299-353e2989929b", + "metadata": {}, + "source": [ + "**Outputs**: Pandas DataFrame. Generating lists with the function `toLocalIterator()`is costly. For big dataset, the function `toPandas()`is recommanded when working with Spark DataFrame." + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "c13ce006-4380-4dac-b600-1a4af429a044", + "metadata": {}, + "outputs": [], + "source": [ + "# Average temperatures by continent (fictional)\n", + "coord_samples_dict = dict(\n", + " longitude = pdf['longitude'],#[longitude[0] for longitude in coord_samples.select('longitude').toLocalIterator()],\n", + " latitude = pdf['latitude'],#[latitude[0] for latitude in coord_samples.select('latitude').toLocalIterator()],\n", + " sample_size = pdf['size'],#[size[0] for size in coord_samples.select('size').toLocalIterator()],\n", + " genome_id = pdf['genome_id'],#[genome_id[0] for genome_id in coord_samples.select('genome_id').toLocalIterator()],\n", + " sample_id = pdf['sample_id'],#[sample_id[0] for sample_id in coord_samples.select('sample_id').toLocalIterator()],\n", + " study_id = pdf['study_id']\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "dcc12337-55ce-413f-b7b7-b9db96b07c0a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(ggplot() \n", + " + geom_livemap(tiles=tilesets.OPEN_TOPO_MAP, location=[10, 30], zoom=2, data_size_zoomin=2)\n", + " + geom_point(aes('longitude', 'latitude', size='sample_size'),\n", + " data=coord_samples_dict, \n", + " shape=21,\n", + " alpha=.7,\n", + " color='white',\n", + " tooltips=layer_tooltips()\n", + " .title('@Study id|@study_id')\n", + " .line('Sample id|@sample_id')\n", + " .line('Genome id|@genome_id')\n", + " .line('Number of samples|@sample_size') \n", + " .line('Longitude|^x')\n", + " .line('Latitude|^y')\n", + " )\n", + " + ggsize(1140, 860)\n", + " + scale_size(range=[2, 20], trans='identity')\n", + ") " + ] + }, + { + "cell_type": "markdown", + "id": "004acffd-5737-457b-9bb1-bc9733c643d0", + "metadata": {}, + "source": [ + "**Output:** Interactive map representing the geolocalisation of the samples. Each dot size is proportional to the number of samples. It is possible to zoom in and out on the map.\n", + "\n", + "Hovering the map with the mouse curser allow the user to see the `study` ID if available, the number of samples, and the latitude and longitude. \n", + "The `sample` IDs and `genome` can also be displayed, however with the current settings, when their is too many samples or genomes it is not readable anymore. " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/src/notebooks/Python Examples/outputs/parquets/genomes b/src/notebooks/Python Examples/outputs/parquets/genomes new file mode 100644 index 0000000..3888540 Binary files /dev/null and b/src/notebooks/Python Examples/outputs/parquets/genomes differ diff --git a/src/notebooks/Python Examples/outputs/parquets/samples.parquet b/src/notebooks/Python Examples/outputs/parquets/samples.parquet new file mode 100644 index 0000000..fe8b5d1 Binary files /dev/null and b/src/notebooks/Python Examples/outputs/parquets/samples.parquet differ diff --git a/src/notebooks/Python Examples/outputs/parquets/studies b/src/notebooks/Python Examples/outputs/parquets/studies new file mode 100644 index 0000000..4991518 Binary files /dev/null and b/src/notebooks/Python Examples/outputs/parquets/studies differ