From c0edfcaac8de519c4dfffe38e65f98a0872ea49a Mon Sep 17 00:00:00 2001 From: Leandro Ishi Date: Thu, 21 Dec 2023 14:25:13 +0000 Subject: [PATCH] refactor: switching terminology from blackhole to hub --- README.md | 8 +- plasnet/base_graph.py | 13 - plasnet/blackhole_graph.py | 87 - plasnet/community_graph.py | 10 +- .../ext/templates/visualisation_template.html | 18 +- plasnet/hub_graph.py | 85 + plasnet/output_producer.py | 6 +- plasnet/plasnet_main.py | 8 +- plasnet/sample_graph.py | 6 +- plasnet/subcommunity_graph.py | 8 +- .../data/blackhole/all_plasmids_distances.tsv | 1174 ------- tests/data/blackhole/communities.pkl | Bin 54797 -> 0 bytes tests/data/blackhole/truth_typing.tsv | 193 -- tests/data/blackhole_2/.gitignore | 1 - tests/data/blackhole_2/communities.pkl | Bin 13299 -> 0 bytes tests/data/communities.pkl | Bin 59571 -> 60749 bytes tests/data/{blackhole => hub}/.gitignore | 0 tests/data/hub/all_pairs_jaccard_distance.tsv | 2851 +++++++++++++++++ .../all_plasmids_distances.tsv | 0 tests/data/hub/plasmids.tsv | 77 + .../{blackhole_2 => hub}/truth_typing.tsv | 0 tests/data/subcommunities.pkl | Bin 75989 -> 77181 bytes tests/test_integration_tests.py | 41 +- 23 files changed, 3064 insertions(+), 1522 deletions(-) delete mode 100644 plasnet/blackhole_graph.py create mode 100644 plasnet/hub_graph.py delete mode 100644 tests/data/blackhole/all_plasmids_distances.tsv delete mode 100644 tests/data/blackhole/communities.pkl delete mode 100644 tests/data/blackhole/truth_typing.tsv delete mode 100644 tests/data/blackhole_2/.gitignore delete mode 100644 tests/data/blackhole_2/communities.pkl rename tests/data/{blackhole => hub}/.gitignore (100%) create mode 100644 tests/data/hub/all_pairs_jaccard_distance.tsv rename tests/data/{blackhole_2 => hub}/all_plasmids_distances.tsv (100%) create mode 100644 tests/data/hub/plasmids.tsv rename tests/data/{blackhole_2 => hub}/truth_typing.tsv (100%) diff --git a/README.md b/README.md index 6c72924..69135d7 100644 --- a/README.md +++ b/README.md @@ -75,11 +75,11 @@ Usage: plasnet split [OPTIONS] PLASMIDS DISTANCES OUTPUT_DIR Options: -d, --distance-threshold FLOAT Distance threshold -b, --bh-connectivity INTEGER Minimum number of connections a plasmid need - to be considered a blackhole plasmid + to be considered a hub plasmid -e, --bh-neighbours-edge-density FLOAT - Maximum number of edge density between - blackhole plasmid neighbours to label the - plasmid as blackhole + Maximum number of edge density between hub + plasmid neighbours to label the plasmid as + hub -p, --output-plasmid-graph Also outputs the full, unsplit, plasmid graph --plasmids-metadata PATH Plasmids metadata text file. diff --git a/plasnet/base_graph.py b/plasnet/base_graph.py index 3d30583..50d5425 100644 --- a/plasnet/base_graph.py +++ b/plasnet/base_graph.py @@ -20,19 +20,6 @@ class BaseGraph(nx.Graph): # type: ignore between the different types of graphs. """ - # def fix_node_to_subcommunity_attributes(self, node_to_subcommunity, blackhole_plasmids): - # for node, attrs in self.nodes.items(): - # if node in node_to_subcommunity: - # attrs["color"] = ColorPicker.get_color_given_index(node_to_subcommunity[node]) - # else: - # attrs["color"] = ColorPicker.get_default_color() - # - # if node in blackhole_plasmids: - # attrs["shape"] = "star" - # attrs["is_blackhole"] = True - # else: - # attrs["is_blackhole"] = False - def __init__(self, graph: Optional[nx.Graph] = None, label: str = "") -> None: super().__init__(graph) self._label = label diff --git a/plasnet/blackhole_graph.py b/plasnet/blackhole_graph.py deleted file mode 100644 index d256040..0000000 --- a/plasnet/blackhole_graph.py +++ /dev/null @@ -1,87 +0,0 @@ -import logging -from typing import Any, Optional - -import networkx as nx - -from plasnet.base_graph import BaseGraph - - -class BlackholeGraph(BaseGraph): - """ - This is a class that recognises and labels blackhole plasmids. - """ - - def __init__( - self, - graph: Optional[nx.Graph] = None, - blackhole_connectivity_threshold: int = 0, - edge_density: float = 0.0, - label: str = "", - ): - super().__init__(graph, label) - self._blackhole_connectivity_threshold = blackhole_connectivity_threshold - self._edge_density = edge_density - - def _get_node_shape(self, node: str) -> str: - if node in self._get_blackhole_plasmids(use_cached=True): - return "star" - return "circle" - - def _add_special_node_attributes(self, node: str, attrs: dict[str, Any]) -> None: - attrs["is_blackhole"] = node in self._get_blackhole_plasmids(use_cached=True) - - def _get_blackhole_plasmids(self, use_cached: bool = False) -> list[str]: - need_to_compute_the_blackhole_plasmids = not use_cached or not hasattr( - self, "_blackhole_plasmids" - ) - if need_to_compute_the_blackhole_plasmids: - blackhole_plasmids_in_graph = [] - for node in self.nodes: - if self.degree(node) >= self._blackhole_connectivity_threshold: - neighbors = list(self.neighbors(node)) - subgraph = nx.induced_subgraph(self, neighbors) - nb_of_edges_between_neighbours = subgraph.number_of_edges() - max_nb_of_edges_between_neighbours = ( - len(neighbors) * (len(neighbors) - 1) - ) // 2 - edge_rate = nb_of_edges_between_neighbours / max_nb_of_edges_between_neighbours - if edge_rate <= self._edge_density: - blackhole_plasmids_in_graph.append(node) - logging.debug(f"{node} is a blackhole plasmid") - else: - logging.debug( - f"{node} is highly connected but does not connect " - f"unrelated plasmids, not a blackhole plasmid" - ) - self._blackhole_plasmids = blackhole_plasmids_in_graph - - return self._blackhole_plasmids - - def remove_blackhole_plasmids(self) -> None: - while True: - blackhole_plasmids = self._get_blackhole_plasmids() - there_are_still_blackhole_plasmids = len(blackhole_plasmids) > 0 - if there_are_still_blackhole_plasmids: - self.remove_nodes_from(blackhole_plasmids) - else: - break - - def _get_filters_HTML(self) -> str: - nb_of_black_holes = len(self._get_blackhole_plasmids(use_cached=True)) - return ( - f'" - f'
' - ) - - def _get_custom_buttons_HTML(self) -> str: - return '
' - - @property - def description(self) -> str: - description = super().description - blackholes_detected = len(self._get_blackhole_plasmids(use_cached=True)) > 0 - if blackholes_detected: - description += " - WARNING: BLACKHOLE SPOTTED!" - return description diff --git a/plasnet/community_graph.py b/plasnet/community_graph.py index 01d00e9..f688aea 100644 --- a/plasnet/community_graph.py +++ b/plasnet/community_graph.py @@ -4,22 +4,22 @@ import networkx as nx -from plasnet.blackhole_graph import BlackholeGraph from plasnet.ColorPicker import ColorPicker +from plasnet.hub_graph import HubGraph from plasnet.subcommunities import Subcommunities from plasnet.subcommunity_graph import SubcommunityGraph from plasnet.utils import DistanceDict, DistanceTags -class CommunityGraph(BlackholeGraph): +class CommunityGraph(HubGraph): def __init__( self, graph: Optional[nx.Graph] = None, - blackhole_connectivity_threshold: int = 0, + hub_connectivity_threshold: int = 0, edge_density: float = 0.0, label: str = "", ): - super().__init__(graph, blackhole_connectivity_threshold, edge_density, label) + super().__init__(graph, hub_connectivity_threshold, edge_density, label) self._node_to_colour: dict[str, str] = {} def _get_node_color(self, node: str) -> str: @@ -87,7 +87,7 @@ def split_graph_into_subcommunities( subcommunity = SubcommunityGraph( self.subgraph(subcommunity_nodes), - self._blackhole_connectivity_threshold, + self._hub_connectivity_threshold, self._edge_density, label=f"{self.label}_subcommunity_{subcommunity_index}", colour=colour, diff --git a/plasnet/ext/templates/visualisation_template.html b/plasnet/ext/templates/visualisation_template.html index 4955b64..de2f7cc 100644 --- a/plasnet/ext/templates/visualisation_template.html +++ b/plasnet/ext/templates/visualisation_template.html @@ -217,7 +217,7 @@ 'width': 'data(size)', 'height': 'data(size)', 'shape': 'data(shape)', - 'is_blackhole': 'data(is_blackhole)' + 'is_hub': 'data(is_hub)' }, }, { @@ -235,13 +235,13 @@ - // hides blackholes - hide_blackholes = $("#hide_blackholes").is(":checked") - if (hide_blackholes) { - blackholes = cy.elements(`node[is_blackhole > 0]`) - console.log("Removing the following blackholes:") - console.log(blackholes) - cy.remove(blackholes) + // hides hubs + hide_hubs = $("#hide_hubs").is(":checked") + if (hide_hubs) { + hubs = cy.elements(`node[is_hub > 0]`) + console.log("Removing the following hubs:") + console.log(hubs) + cy.remove(hubs) } // lays out the graph @@ -279,7 +279,7 @@

But hopefully they won't be connected, so we can infer they are still different communities.

Node shapes:

● Normal plasmids

-

★ Blackhole plasmids

+

★ Hub plasmids



diff --git a/plasnet/hub_graph.py b/plasnet/hub_graph.py new file mode 100644 index 0000000..ee6ef52 --- /dev/null +++ b/plasnet/hub_graph.py @@ -0,0 +1,85 @@ +import logging +from typing import Any, Optional + +import networkx as nx + +from plasnet.base_graph import BaseGraph + + +class HubGraph(BaseGraph): + """ + This is a class that recognises and labels hub plasmids. + """ + + def __init__( + self, + graph: Optional[nx.Graph] = None, + hub_connectivity_threshold: int = 0, + edge_density: float = 0.0, + label: str = "", + ): + super().__init__(graph, label) + self._hub_connectivity_threshold = hub_connectivity_threshold + self._edge_density = edge_density + + def _get_node_shape(self, node: str) -> str: + if node in self._get_hub_plasmids(use_cached=True): + return "star" + return "circle" + + def _add_special_node_attributes(self, node: str, attrs: dict[str, Any]) -> None: + attrs["is_hub"] = node in self._get_hub_plasmids(use_cached=True) + + def _get_hub_plasmids(self, use_cached: bool = False) -> list[str]: + need_to_compute_the_hub_plasmids = not use_cached or not hasattr(self, "_hub_plasmids") + if need_to_compute_the_hub_plasmids: + hub_plasmids_in_graph = [] + for node in self.nodes: + if self.degree(node) >= self._hub_connectivity_threshold: + neighbors = list(self.neighbors(node)) + subgraph = nx.induced_subgraph(self, neighbors) + nb_of_edges_between_neighbours = subgraph.number_of_edges() + max_nb_of_edges_between_neighbours = ( + len(neighbors) * (len(neighbors) - 1) + ) // 2 + edge_rate = nb_of_edges_between_neighbours / max_nb_of_edges_between_neighbours + if edge_rate <= self._edge_density: + hub_plasmids_in_graph.append(node) + logging.debug(f"{node} is a hub plasmid") + else: + logging.debug( + f"{node} is highly connected but does not connect " + f"unrelated plasmids, not a hub plasmid" + ) + self._hub_plasmids = hub_plasmids_in_graph + + return self._hub_plasmids + + def remove_hub_plasmids(self) -> None: + while True: + hub_plasmids = self._get_hub_plasmids() + there_are_still_hub_plasmids = len(hub_plasmids) > 0 + if there_are_still_hub_plasmids: + self.remove_nodes_from(hub_plasmids) + else: + break + + def _get_filters_HTML(self) -> str: + nb_of_hubs = len(self._get_hub_plasmids(use_cached=True)) + return ( + f'" + f'
' + ) + + def _get_custom_buttons_HTML(self) -> str: + return '
' + + @property + def description(self) -> str: + description = super().description + hubs_detected = len(self._get_hub_plasmids(use_cached=True)) > 0 + if hubs_detected: + description += " - WARNING: HUB PLASMID SPOTTED!" + return description diff --git a/plasnet/output_producer.py b/plasnet/output_producer.py index d2529d9..5c0f952 100644 --- a/plasnet/output_producer.py +++ b/plasnet/output_producer.py @@ -2,8 +2,8 @@ from pathlib import Path from plasnet.base_graph import BaseGraph -from plasnet.blackhole_graph import BlackholeGraph from plasnet.communities import Communities +from plasnet.hub_graph import HubGraph from plasnet.list_of_graphs import ListOfGraphs from plasnet.Templates import Templates from plasnet.utils import get_libs_dir @@ -27,7 +27,7 @@ def produce_communities_visualisation(communities: Communities, outdir: Path) -> @staticmethod def produce_subcommunities_visualisation( - subcommunities: ListOfGraphs[BlackholeGraph], outdir: Path + subcommunities: ListOfGraphs[HubGraph], outdir: Path ) -> None: OutputProducer._write_html_for_all_subgraphs(subcommunities, outdir) OutputProducer._produce_index_file(outdir, subcommunities, "subcommunity") @@ -48,7 +48,7 @@ def _write_html_for_all_subgraphs( @staticmethod def _produce_index_file( - outdir: Path, graphs: ListOfGraphs[BlackholeGraph], objects_description: str + outdir: Path, graphs: ListOfGraphs[HubGraph], objects_description: str ) -> None: sorted_graphs = graphs.get_graphs_sorted_by_size() index_src = Templates.read_template("index_template") diff --git a/plasnet/plasnet_main.py b/plasnet/plasnet_main.py index 1fd3038..fa20209 100644 --- a/plasnet/plasnet_main.py +++ b/plasnet/plasnet_main.py @@ -72,15 +72,15 @@ def cli() -> None: "-b", type=int, default=10, - help="Minimum number of connections a plasmid need to be considered a blackhole plasmid", + help="Minimum number of connections a plasmid need to be considered a hub plasmid", ) @click.option( "--bh-neighbours-edge-density", "-e", type=float, default=0.2, - help="Maximum number of edge density between blackhole plasmid neighbours to " - "label the plasmid as blackhole", + help="Maximum number of edge density between hub plasmid neighbours to " + "label the plasmid as hub", ) @click.option( "--output-plasmid-graph", @@ -206,7 +206,7 @@ def type( logging.info("Typing communities (i.e. splitting them into subcommunities)") all_subcommunities = Subcommunities() for community in communities: - community.remove_blackhole_plasmids() + community.remove_hub_plasmids() subcommunities = community.split_graph_into_subcommunities( small_subcommunity_size_threshold ) diff --git a/plasnet/sample_graph.py b/plasnet/sample_graph.py index 365f106..d5fb808 100644 --- a/plasnet/sample_graph.py +++ b/plasnet/sample_graph.py @@ -11,13 +11,13 @@ class SampleGraph(SubcommunityGraph): def __init__( self, graph: Optional[nx.Graph] = None, - blackhole_connectivity_threshold: int = 0, + hub_connectivity_threshold: int = 0, edge_density: float = 0.0, label: str = "", colour: str = ColorPicker.get_default_color(), sample_plasmid: Optional[pd.DataFrame] = None, ): - super().__init__(graph, blackhole_connectivity_threshold, edge_density, label, colour) + super().__init__(graph, hub_connectivity_threshold, edge_density, label, colour) if sample_plasmid is not None: self._sample_to_plasmids = ( sample_plasmid.groupby("sample")["plasmid"].apply(list).to_dict() @@ -29,7 +29,7 @@ def from_subcommunity_graph( ) -> "SampleGraph": return cls( subcommunity_graph, - subcommunity_graph._blackhole_connectivity_threshold, + subcommunity_graph._hub_connectivity_threshold, subcommunity_graph._edge_density, subcommunity_graph.label, subcommunity_graph._colour, diff --git a/plasnet/subcommunity_graph.py b/plasnet/subcommunity_graph.py index 8aeb667..687d6ee 100644 --- a/plasnet/subcommunity_graph.py +++ b/plasnet/subcommunity_graph.py @@ -2,20 +2,20 @@ import networkx as nx -from plasnet.blackhole_graph import BlackholeGraph from plasnet.ColorPicker import ColorPicker +from plasnet.hub_graph import HubGraph -class SubcommunityGraph(BlackholeGraph): +class SubcommunityGraph(HubGraph): def __init__( self, graph: Optional[nx.Graph] = None, - blackhole_connectivity_threshold: int = 0, + hub_connectivity_threshold: int = 0, edge_density: float = 0.0, label: str = "", colour: str = ColorPicker.get_default_color(), ): - super().__init__(graph, blackhole_connectivity_threshold, edge_density, label) + super().__init__(graph, hub_connectivity_threshold, edge_density, label) self._colour = colour def _get_libs_relative_path(self) -> str: diff --git a/tests/data/blackhole/all_plasmids_distances.tsv b/tests/data/blackhole/all_plasmids_distances.tsv deleted file mode 100644 index 156c7a4..0000000 --- a/tests/data/blackhole/all_plasmids_distances.tsv +++ /dev/null @@ -1,1174 +0,0 @@ -plasmid_1 plasmid_2 distance -cpe004_2 cpe003_contig_3 3 -cpe004_3 cpe003_contig_4 0 -cpe007_contig_3 cpe003_contig_3 12 -cpe007_contig_3 cpe004_2 12 -cpe008_2 cpe006_contig_2 0 -cpe010_2 cpe003_contig_3 24 -cpe010_2 cpe004_2 24 -cpe010_5 cpe003_contig_4 20 -cpe010_5 cpe004_3 20 -cpe010_6 cpe009_contig_2 2 -cpe012_contig_3 cpe010_3 14 -cpe013_2 cpe003_contig_4 25 -cpe013_2 cpe004_3 25 -cpe013_2 cpe010_4 13 -cpe013_2 cpe010_5 26 -cpe013_3 cpe003_contig_4 22 -cpe013_3 cpe004_3 22 -cpe013_3 cpe010_5 28 -cpe013_3 cpe013_2 33 -cpe013_4 cpe012_contig_2 2 -cpe013_4 cpe013_2 2 -cpe014_contig_5 cpe003_contig_4 22 -cpe014_contig_5 cpe004_3 22 -cpe014_contig_5 cpe010_5 28 -cpe014_contig_5 cpe013_2 33 -cpe014_contig_5 cpe013_3 0 -cpe015_contig_2 cpe013_4 2 -cpe017_2 cpe016_contig_5 3 -cpe020_2 cpe010_3 3 -cpe020_2 cpe012_contig_3 11 -cpe020_4 cpe012_contig_2 40 -cpe022_contig_2 cpe003_contig_3 3 -cpe022_contig_2 cpe004_2 2 -cpe022_contig_2 cpe007_contig_3 12 -cpe022_contig_2 cpe010_2 26 -cpe022_contig_3 cpe003_contig_4 0 -cpe022_contig_3 cpe004_3 0 -cpe022_contig_3 cpe010_5 21 -cpe022_contig_3 cpe013_2 26 -cpe022_contig_3 cpe013_3 22 -cpe022_contig_3 cpe014_contig_5 22 -cpe023_contig_2 cpe012_contig_2 45 -cpe023_contig_2 cpe020_4 30 -cpe024_contig_2 cpe020_3 17 -cpe024_contig_3 cpe012_contig_2 19 -cpe024_contig_3 cpe020_4 44 -cpe024_contig_3 cpe023_contig_2 40 -cpe025_contig_2 cpe009_contig_3 3 -cpe025_contig_6 cpe015_contig_4 16 -cpe027_2 cpe003_contig_4 32 -cpe027_2 cpe004_3 32 -cpe027_2 cpe010_5 27 -cpe027_2 cpe013_2 32 -cpe027_2 cpe013_3 21 -cpe027_2 cpe014_contig_5 21 -cpe027_2 cpe022_contig_3 30 -cpe027_3 cpe012_contig_2 28 -cpe027_3 cpe020_4 49 -cpe027_3 cpe023_contig_2 46 -cpe027_3 cpe024_contig_3 37 -cpe028_contig_4 cpe009_contig_3 0 -cpe028_contig_4 cpe025_contig_2 3 -cpe029_contig_3 cpe028_contig_2 0 -cpe029_contig_4 cpe003_contig_4 28 -cpe029_contig_4 cpe004_3 28 -cpe029_contig_4 cpe010_4 12 -cpe029_contig_4 cpe010_5 35 -cpe029_contig_4 cpe013_2 25 -cpe029_contig_4 cpe013_3 34 -cpe029_contig_4 cpe014_contig_5 34 -cpe029_contig_4 cpe022_contig_3 29 -cpe029_contig_4 cpe027_2 36 -cpe029_contig_5 cpe009_contig_3 0 -cpe029_contig_5 cpe025_contig_2 3 -cpe029_contig_5 cpe028_contig_4 0 -cpe034_2 cpe003_contig_3 5 -cpe034_2 cpe004_2 3 -cpe034_2 cpe007_contig_3 12 -cpe034_2 cpe010_2 24 -cpe034_2 cpe022_contig_2 4 -cpe034_3 cpe003_contig_4 29 -cpe034_3 cpe004_3 29 -cpe034_3 cpe010_4 9 -cpe034_3 cpe010_5 22 -cpe034_3 cpe013_2 26 -cpe034_3 cpe022_contig_3 29 -cpe034_3 cpe027_2 33 -cpe034_3 cpe029_contig_4 28 -cpe034_4 cpe003_contig_4 1 -cpe034_4 cpe004_3 1 -cpe034_4 cpe010_5 21 -cpe034_4 cpe013_2 24 -cpe034_4 cpe013_3 21 -cpe034_4 cpe014_contig_5 21 -cpe034_4 cpe022_contig_3 1 -cpe034_4 cpe027_2 31 -cpe034_4 cpe029_contig_4 29 -cpe034_4 cpe034_3 27 -cpe035_contig_1 cpe003_contig_3 5 -cpe035_contig_1 cpe004_2 3 -cpe035_contig_1 cpe007_contig_3 12 -cpe035_contig_1 cpe010_2 26 -cpe035_contig_1 cpe022_contig_2 4 -cpe035_contig_1 cpe034_2 4 -cpe035_contig_3 cpe003_contig_4 17 -cpe035_contig_3 cpe004_3 17 -cpe035_contig_3 cpe010_4 9 -cpe035_contig_3 cpe010_5 24 -cpe035_contig_3 cpe013_2 30 -cpe035_contig_3 cpe013_3 31 -cpe035_contig_3 cpe014_contig_5 31 -cpe035_contig_3 cpe022_contig_3 17 -cpe035_contig_3 cpe027_2 36 -cpe035_contig_3 cpe029_contig_4 30 -cpe035_contig_3 cpe034_3 12 -cpe035_contig_3 cpe034_4 15 -cpe035_contig_9 cpe003_contig_4 1 -cpe035_contig_9 cpe004_3 1 -cpe035_contig_9 cpe010_5 22 -cpe035_contig_9 cpe013_2 24 -cpe035_contig_9 cpe013_3 21 -cpe035_contig_9 cpe014_contig_5 21 -cpe035_contig_9 cpe022_contig_3 1 -cpe035_contig_9 cpe027_2 29 -cpe035_contig_9 cpe029_contig_4 27 -cpe035_contig_9 cpe034_3 27 -cpe035_contig_9 cpe034_4 0 -cpe035_contig_9 cpe035_contig_3 15 -cpe037_contig_6 cpe016_contig_2 28 -cpe040_contig_3 cpe012_contig_2 28 -cpe040_contig_3 cpe020_4 35 -cpe040_contig_3 cpe023_contig_2 35 -cpe040_contig_3 cpe024_contig_3 27 -cpe040_contig_3 cpe027_3 41 -cpe040_contig_4 cpe009_contig_3 7 -cpe040_contig_4 cpe025_contig_2 9 -cpe040_contig_4 cpe028_contig_4 7 -cpe040_contig_4 cpe029_contig_5 7 -cpe040_contig_5 cpe024_contig_6 12 -cpe041_contig_1 cpe012_contig_2 15 -cpe041_contig_1 cpe023_contig_2 30 -cpe041_contig_1 cpe024_contig_3 18 -cpe041_contig_1 cpe027_3 17 -cpe041_contig_1 cpe040_contig_3 25 -cpe041_contig_3 cpe040_contig_6 26 -cpe041_contig_4 cpe027_4 2 -cpe042_2 cpe010_3 22 -cpe042_2 cpe012_contig_3 16 -cpe042_2 cpe020_2 19 -cpe043_3 cpe009_contig_3 9 -cpe043_3 cpe025_contig_2 12 -cpe043_3 cpe028_contig_4 9 -cpe043_3 cpe029_contig_5 9 -cpe043_3 cpe040_contig_4 9 -cpe044_contig_4 cpe011_2 2 -cpe045_2 cpe044_contig_2 12 -cpe045_3 cpe011_2 0 -cpe045_3 cpe044_contig_4 2 -cpe047_3 cpe003_contig_4 25 -cpe047_3 cpe004_3 25 -cpe047_3 cpe013_3 24 -cpe047_3 cpe014_contig_5 24 -cpe047_3 cpe022_contig_3 23 -cpe047_3 cpe027_2 10 -cpe047_3 cpe034_4 24 -cpe047_3 cpe035_contig_9 22 -cpe047_4 cpe012_contig_2 16 -cpe047_4 cpe023_contig_2 16 -cpe047_4 cpe027_3 13 -cpe047_4 cpe040_contig_3 10 -cpe047_4 cpe041_contig_1 18 -cpe047_6 cpe027_4 0 -cpe047_6 cpe041_contig_4 2 -cpe049_contig_2 cpe029_contig_4 32 -cpe049_contig_3 cpe003_contig_4 34 -cpe049_contig_3 cpe004_3 34 -cpe049_contig_3 cpe010_5 28 -cpe049_contig_3 cpe013_2 35 -cpe049_contig_3 cpe013_3 33 -cpe049_contig_3 cpe014_contig_5 33 -cpe049_contig_3 cpe022_contig_3 32 -cpe049_contig_3 cpe027_2 34 -cpe049_contig_3 cpe029_contig_4 32 -cpe049_contig_3 cpe034_3 34 -cpe049_contig_3 cpe034_4 35 -cpe049_contig_3 cpe035_contig_3 35 -cpe049_contig_3 cpe035_contig_9 33 -cpe049_contig_3 cpe047_3 26 -cpe049_contig_4 cpe012_contig_2 32 -cpe049_contig_4 cpe020_4 33 -cpe049_contig_4 cpe023_contig_2 40 -cpe049_contig_4 cpe024_contig_3 27 -cpe049_contig_4 cpe027_3 14 -cpe049_contig_4 cpe040_contig_3 29 -cpe051_contig_2 cpe012_contig_2 16 -cpe051_contig_2 cpe023_contig_2 29 -cpe051_contig_2 cpe024_contig_3 18 -cpe051_contig_2 cpe027_3 18 -cpe051_contig_2 cpe040_contig_3 25 -cpe051_contig_2 cpe041_contig_1 2 -cpe051_contig_2 cpe047_4 19 -cpe051_contig_3 cpe027_4 2 -cpe051_contig_3 cpe041_contig_4 0 -cpe051_contig_3 cpe047_6 2 -cpe052_2 cpe010_5 17 -cpe052_2 cpe013_3 15 -cpe052_2 cpe014_contig_5 15 -cpe052_2 cpe027_2 7 -cpe052_2 cpe047_3 12 -cpe052_3 cpe027_4 0 -cpe052_3 cpe041_contig_4 2 -cpe052_3 cpe047_6 0 -cpe052_3 cpe051_contig_3 2 -cpe055_2 cpe011_2 4 -cpe055_2 cpe044_contig_4 4 -cpe055_2 cpe045_3 4 -cpe058_contig_2 cpe003_contig_3 2 -cpe058_contig_2 cpe004_2 1 -cpe058_contig_2 cpe007_contig_3 12 -cpe058_contig_2 cpe010_2 25 -cpe058_contig_2 cpe022_contig_2 1 -cpe058_contig_2 cpe034_2 3 -cpe058_contig_2 cpe035_contig_1 3 -cpe058_contig_3 cpe003_contig_4 0 -cpe058_contig_3 cpe004_3 0 -cpe058_contig_3 cpe010_5 21 -cpe058_contig_3 cpe013_2 26 -cpe058_contig_3 cpe013_3 22 -cpe058_contig_3 cpe014_contig_5 22 -cpe058_contig_3 cpe022_contig_3 0 -cpe058_contig_3 cpe027_2 30 -cpe058_contig_3 cpe029_contig_4 29 -cpe058_contig_3 cpe034_3 29 -cpe058_contig_3 cpe034_4 1 -cpe058_contig_3 cpe035_contig_3 17 -cpe058_contig_3 cpe035_contig_9 1 -cpe058_contig_3 cpe047_3 23 -cpe058_contig_3 cpe049_contig_3 32 -cpe059_contig_1 cpe003_contig_3 3 -cpe059_contig_1 cpe004_2 2 -cpe059_contig_1 cpe007_contig_3 12 -cpe059_contig_1 cpe010_2 24 -cpe059_contig_1 cpe022_contig_2 2 -cpe059_contig_1 cpe034_2 4 -cpe059_contig_1 cpe035_contig_1 4 -cpe059_contig_1 cpe058_contig_2 1 -cpe059_contig_3 cpe003_contig_4 0 -cpe059_contig_3 cpe004_3 0 -cpe059_contig_3 cpe010_5 21 -cpe059_contig_3 cpe013_2 29 -cpe059_contig_3 cpe013_3 22 -cpe059_contig_3 cpe014_contig_5 22 -cpe059_contig_3 cpe022_contig_3 0 -cpe059_contig_3 cpe027_2 30 -cpe059_contig_3 cpe029_contig_4 31 -cpe059_contig_3 cpe034_3 30 -cpe059_contig_3 cpe034_4 1 -cpe059_contig_3 cpe035_contig_3 18 -cpe059_contig_3 cpe035_contig_9 1 -cpe059_contig_3 cpe047_3 23 -cpe059_contig_3 cpe049_contig_3 32 -cpe059_contig_3 cpe058_contig_3 0 -cpe060_2 cpe003_contig_4 33 -cpe060_2 cpe004_3 33 -cpe060_2 cpe010_5 27 -cpe060_2 cpe013_2 35 -cpe060_2 cpe013_3 25 -cpe060_2 cpe014_contig_5 25 -cpe060_2 cpe022_contig_3 31 -cpe060_2 cpe027_2 8 -cpe060_2 cpe029_contig_4 40 -cpe060_2 cpe034_4 32 -cpe060_2 cpe035_contig_9 30 -cpe060_2 cpe047_3 10 -cpe060_2 cpe049_contig_3 33 -cpe060_2 cpe052_2 11 -cpe060_2 cpe058_contig_3 31 -cpe060_2 cpe059_contig_3 31 -cpe060_3 cpe012_contig_2 16 -cpe060_3 cpe023_contig_2 16 -cpe060_3 cpe027_3 13 -cpe060_3 cpe040_contig_3 10 -cpe060_3 cpe041_contig_1 18 -cpe060_3 cpe047_4 0 -cpe060_3 cpe051_contig_2 19 -cpe060_4 cpe003_contig_3 5 -cpe060_4 cpe004_2 5 -cpe060_4 cpe012_contig_2 4 -cpe060_4 cpe013_3 4 -cpe060_4 cpe014_contig_5 4 -cpe060_4 cpe022_contig_2 5 -cpe060_4 cpe027_3 1 -cpe060_4 cpe034_2 5 -cpe060_4 cpe035_contig_1 5 -cpe060_4 cpe040_contig_3 4 -cpe060_4 cpe041_contig_1 4 -cpe060_4 cpe051_contig_2 4 -cpe060_4 cpe058_contig_2 5 -cpe060_4 cpe059_contig_1 5 -cpe060_5 cpe027_4 0 -cpe060_5 cpe041_contig_4 2 -cpe060_5 cpe047_6 0 -cpe060_5 cpe051_contig_3 2 -cpe060_5 cpe052_3 0 -cpe061_contig_2 cpe003_contig_3 5 -cpe061_contig_2 cpe004_2 4 -cpe061_contig_2 cpe007_contig_3 12 -cpe061_contig_2 cpe010_2 25 -cpe061_contig_2 cpe022_contig_2 4 -cpe061_contig_2 cpe034_2 5 -cpe061_contig_2 cpe035_contig_1 6 -cpe061_contig_2 cpe058_contig_2 3 -cpe061_contig_2 cpe059_contig_1 2 -cpe061_contig_2 cpe060_4 5 -cpe061_contig_3 cpe003_contig_4 0 -cpe061_contig_3 cpe004_3 0 -cpe061_contig_3 cpe010_5 21 -cpe061_contig_3 cpe013_2 26 -cpe061_contig_3 cpe013_3 22 -cpe061_contig_3 cpe014_contig_5 22 -cpe061_contig_3 cpe022_contig_3 0 -cpe061_contig_3 cpe027_2 30 -cpe061_contig_3 cpe029_contig_4 29 -cpe061_contig_3 cpe034_3 29 -cpe061_contig_3 cpe034_4 1 -cpe061_contig_3 cpe035_contig_3 17 -cpe061_contig_3 cpe035_contig_9 1 -cpe061_contig_3 cpe047_3 23 -cpe061_contig_3 cpe049_contig_3 32 -cpe061_contig_3 cpe058_contig_3 0 -cpe061_contig_3 cpe059_contig_3 0 -cpe061_contig_3 cpe060_2 31 -cpe067_2 cpe012_contig_2 42 -cpe067_2 cpe020_4 22 -cpe067_2 cpe023_contig_2 41 -cpe067_2 cpe024_contig_3 49 -cpe067_2 cpe027_3 48 -cpe067_2 cpe040_contig_3 34 -cpe067_2 cpe041_contig_1 32 -cpe067_2 cpe047_4 16 -cpe067_2 cpe049_contig_4 36 -cpe067_2 cpe051_contig_2 31 -cpe067_2 cpe060_3 16 -cpe067_3 cpe020_3 12 -cpe067_3 cpe024_contig_2 14 -cpe067_3 cpe060_4 2 -cpe067_4 cpe027_4 2 -cpe067_4 cpe041_contig_4 0 -cpe067_4 cpe047_6 2 -cpe067_4 cpe051_contig_3 0 -cpe067_4 cpe052_3 2 -cpe067_4 cpe060_5 2 -cpe068_contig_2 cpe003_contig_4 22 -cpe068_contig_2 cpe004_3 22 -cpe068_contig_2 cpe010_4 12 -cpe068_contig_2 cpe010_5 28 -cpe068_contig_2 cpe013_2 14 -cpe068_contig_2 cpe013_3 30 -cpe068_contig_2 cpe013_4 2 -cpe068_contig_2 cpe014_contig_5 30 -cpe068_contig_2 cpe022_contig_3 22 -cpe068_contig_2 cpe027_2 31 -cpe068_contig_2 cpe029_contig_4 22 -cpe068_contig_2 cpe034_3 23 -cpe068_contig_2 cpe034_4 20 -cpe068_contig_2 cpe035_contig_3 26 -cpe068_contig_2 cpe035_contig_9 20 -cpe068_contig_2 cpe049_contig_3 31 -cpe068_contig_2 cpe058_contig_3 22 -cpe068_contig_2 cpe059_contig_3 22 -cpe068_contig_2 cpe060_2 38 -cpe068_contig_2 cpe060_4 3 -cpe068_contig_2 cpe061_contig_3 22 -cpe068_contig_3 cpe009_contig_3 1 -cpe068_contig_3 cpe025_contig_2 2 -cpe068_contig_3 cpe028_contig_4 1 -cpe068_contig_3 cpe029_contig_5 1 -cpe068_contig_3 cpe040_contig_4 9 -cpe068_contig_3 cpe043_3 9 -cpe069_contig_2 cpe010_3 15 -cpe069_contig_2 cpe012_contig_3 3 -cpe069_contig_2 cpe020_2 12 -cpe069_contig_2 cpe042_2 17 -cpe070_2 cpe003_contig_4 27 -cpe070_2 cpe004_3 27 -cpe070_2 cpe010_4 15 -cpe070_2 cpe010_5 24 -cpe070_2 cpe013_2 29 -cpe070_2 cpe013_4 3 -cpe070_2 cpe022_contig_3 28 -cpe070_2 cpe027_2 35 -cpe070_2 cpe029_contig_4 30 -cpe070_2 cpe034_3 26 -cpe070_2 cpe034_4 27 -cpe070_2 cpe035_contig_3 30 -cpe070_2 cpe035_contig_9 28 -cpe070_2 cpe049_contig_3 32 -cpe070_2 cpe058_contig_3 28 -cpe070_2 cpe059_contig_3 28 -cpe070_2 cpe060_2 35 -cpe070_2 cpe061_contig_3 28 -cpe070_2 cpe068_contig_2 27 -cpe070_3 cpe010_3 14 -cpe070_3 cpe012_contig_3 3 -cpe070_3 cpe020_2 12 -cpe070_3 cpe042_2 17 -cpe070_3 cpe069_contig_2 0 -cpe070_4 cpe003_contig_4 24 -cpe070_4 cpe004_3 24 -cpe070_4 cpe010_5 30 -cpe070_4 cpe013_2 26 -cpe070_4 cpe013_3 20 -cpe070_4 cpe014_contig_5 20 -cpe070_4 cpe022_contig_3 24 -cpe070_4 cpe027_2 23 -cpe070_4 cpe029_contig_4 19 -cpe070_4 cpe034_3 20 -cpe070_4 cpe034_4 23 -cpe070_4 cpe035_contig_3 24 -cpe070_4 cpe035_contig_9 23 -cpe070_4 cpe047_3 12 -cpe070_4 cpe049_contig_3 21 -cpe070_4 cpe052_2 4 -cpe070_4 cpe058_contig_3 24 -cpe070_4 cpe059_contig_3 24 -cpe070_4 cpe060_2 24 -cpe070_4 cpe061_contig_3 24 -cpe070_4 cpe068_contig_2 25 -cpe070_4 cpe070_2 28 -cpe072_2 cpe010_3 14 -cpe072_2 cpe012_contig_3 3 -cpe072_2 cpe020_2 12 -cpe072_2 cpe042_2 17 -cpe072_2 cpe069_contig_2 0 -cpe072_2 cpe070_3 0 -cpe072_3 cpe012_contig_2 28 -cpe072_3 cpe020_4 40 -cpe072_3 cpe023_contig_2 42 -cpe072_3 cpe024_contig_3 37 -cpe072_3 cpe027_3 13 -cpe072_3 cpe040_contig_3 28 -cpe072_3 cpe049_contig_4 11 -cpe072_3 cpe067_2 39 -cpe073_2 cpe003_contig_4 27 -cpe073_2 cpe004_3 27 -cpe073_2 cpe010_4 15 -cpe073_2 cpe010_5 24 -cpe073_2 cpe013_2 29 -cpe073_2 cpe013_4 3 -cpe073_2 cpe022_contig_3 28 -cpe073_2 cpe027_2 35 -cpe073_2 cpe029_contig_4 30 -cpe073_2 cpe034_3 26 -cpe073_2 cpe034_4 27 -cpe073_2 cpe035_contig_3 30 -cpe073_2 cpe035_contig_9 28 -cpe073_2 cpe049_contig_3 32 -cpe073_2 cpe058_contig_3 28 -cpe073_2 cpe059_contig_3 28 -cpe073_2 cpe060_2 35 -cpe073_2 cpe061_contig_3 28 -cpe073_2 cpe068_contig_2 27 -cpe073_2 cpe070_2 0 -cpe073_2 cpe070_4 28 -cpe073_3 cpe010_3 14 -cpe073_3 cpe012_contig_3 3 -cpe073_3 cpe020_2 12 -cpe073_3 cpe042_2 17 -cpe073_3 cpe069_contig_2 0 -cpe073_3 cpe070_3 0 -cpe073_3 cpe072_2 0 -cpe073_4 cpe003_contig_4 28 -cpe073_4 cpe004_3 28 -cpe073_4 cpe010_5 32 -cpe073_4 cpe013_2 33 -cpe073_4 cpe013_3 28 -cpe073_4 cpe014_contig_5 29 -cpe073_4 cpe022_contig_3 28 -cpe073_4 cpe027_2 30 -cpe073_4 cpe029_contig_4 22 -cpe073_4 cpe034_3 21 -cpe073_4 cpe034_4 27 -cpe073_4 cpe035_contig_3 25 -cpe073_4 cpe035_contig_9 27 -cpe073_4 cpe047_3 21 -cpe073_4 cpe049_contig_3 24 -cpe073_4 cpe052_2 6 -cpe073_4 cpe058_contig_3 28 -cpe073_4 cpe059_contig_3 28 -cpe073_4 cpe060_2 32 -cpe073_4 cpe061_contig_3 28 -cpe073_4 cpe068_contig_2 30 -cpe073_4 cpe070_2 30 -cpe073_4 cpe070_4 1 -cpe073_4 cpe073_2 30 -cpe076_2 cpe003_contig_4 35 -cpe076_2 cpe004_3 35 -cpe076_2 cpe010_4 20 -cpe076_2 cpe010_5 40 -cpe076_2 cpe013_2 45 -cpe076_2 cpe022_contig_3 35 -cpe076_2 cpe027_2 42 -cpe076_2 cpe029_contig_4 41 -cpe076_2 cpe034_3 27 -cpe076_2 cpe034_4 33 -cpe076_2 cpe035_contig_3 30 -cpe076_2 cpe035_contig_9 33 -cpe076_2 cpe041_contig_4 7 -cpe076_2 cpe049_contig_2 28 -cpe076_2 cpe049_contig_3 28 -cpe076_2 cpe051_contig_3 7 -cpe076_2 cpe058_contig_3 35 -cpe076_2 cpe059_contig_3 35 -cpe076_2 cpe061_contig_3 35 -cpe076_2 cpe067_4 7 -cpe076_2 cpe068_contig_2 43 -cpe076_2 cpe070_2 32 -cpe076_2 cpe070_4 16 -cpe076_2 cpe073_2 32 -cpe076_2 cpe073_4 21 -cpe076_3 cpe003_contig_4 28 -cpe076_3 cpe004_3 28 -cpe076_3 cpe010_5 28 -cpe076_3 cpe013_2 27 -cpe076_3 cpe013_3 18 -cpe076_3 cpe014_contig_5 18 -cpe076_3 cpe022_contig_3 28 -cpe076_3 cpe027_2 22 -cpe076_3 cpe029_contig_4 26 -cpe076_3 cpe034_3 22 -cpe076_3 cpe034_4 27 -cpe076_3 cpe035_contig_3 25 -cpe076_3 cpe035_contig_9 27 -cpe076_3 cpe047_3 14 -cpe076_3 cpe049_contig_3 33 -cpe076_3 cpe052_2 8 -cpe076_3 cpe058_contig_3 28 -cpe076_3 cpe059_contig_3 29 -cpe076_3 cpe060_2 21 -cpe076_3 cpe061_contig_3 28 -cpe076_3 cpe068_contig_2 26 -cpe076_3 cpe070_2 30 -cpe076_3 cpe070_4 18 -cpe076_3 cpe073_2 30 -cpe076_3 cpe073_4 24 -cpe076_3 cpe076_2 30 -cpe076_4 cpe003_contig_3 7 -cpe076_4 cpe004_2 7 -cpe076_4 cpe009_contig_2 2 -cpe076_4 cpe010_6 2 -cpe076_4 cpe013_3 5 -cpe076_4 cpe014_contig_5 5 -cpe076_4 cpe022_contig_2 7 -cpe076_4 cpe034_2 7 -cpe076_4 cpe035_contig_1 7 -cpe076_4 cpe058_contig_2 7 -cpe076_4 cpe059_contig_1 7 -cpe076_4 cpe060_4 4 -cpe076_4 cpe061_contig_2 7 -cpe076_4 cpe068_contig_2 7 -cpe077_2 cpe011_2 4 -cpe077_2 cpe044_contig_4 4 -cpe077_2 cpe045_3 4 -cpe077_2 cpe055_2 1 -cpe078_contig_2 cpe012_contig_2 27 -cpe078_contig_2 cpe020_4 27 -cpe078_contig_2 cpe023_contig_2 33 -cpe078_contig_2 cpe024_contig_3 34 -cpe078_contig_2 cpe027_3 35 -cpe078_contig_2 cpe040_contig_3 29 -cpe078_contig_2 cpe049_contig_4 28 -cpe078_contig_2 cpe067_2 26 -cpe078_contig_2 cpe072_3 31 -cpe078_contig_3 cpe020_3 17 -cpe078_contig_3 cpe024_contig_2 18 -cpe078_contig_3 cpe067_3 12 -cpe078_contig_4 cpe040_contig_6 22 -cpe078_contig_4 cpe041_contig_3 23 -cpe080_contig_3 cpe011_2 2 -cpe080_contig_3 cpe045_3 2 -cpe080_contig_3 cpe055_2 4 -cpe080_contig_3 cpe077_2 4 -cpe081_2 cpe012_contig_2 24 -cpe081_2 cpe023_contig_2 43 -cpe081_2 cpe024_contig_3 12 -cpe081_2 cpe027_3 31 -cpe081_2 cpe040_contig_3 30 -cpe081_2 cpe041_contig_1 20 -cpe081_2 cpe047_4 17 -cpe081_2 cpe049_contig_4 28 -cpe081_2 cpe051_contig_2 23 -cpe081_2 cpe060_3 17 -cpe081_2 cpe067_2 46 -cpe081_2 cpe072_3 32 -cpe081_2 cpe078_contig_2 36 -cpe081_3 cpe020_3 14 -cpe081_3 cpe024_contig_2 5 -cpe081_3 cpe067_3 9 -cpe081_3 cpe078_contig_3 12 -cpe082_2 cpe012_contig_2 37 -cpe082_2 cpe013_4 3 -cpe082_2 cpe020_4 23 -cpe082_2 cpe023_contig_2 28 -cpe082_2 cpe024_contig_3 38 -cpe082_2 cpe027_3 37 -cpe082_2 cpe040_contig_3 31 -cpe082_2 cpe041_contig_1 24 -cpe082_2 cpe047_4 17 -cpe082_2 cpe049_contig_4 32 -cpe082_2 cpe051_contig_2 23 -cpe082_2 cpe060_3 17 -cpe082_2 cpe067_2 31 -cpe082_2 cpe072_3 34 -cpe082_2 cpe078_contig_2 24 -cpe082_2 cpe081_2 36 -cpe083_3 cpe003_contig_4 32 -cpe083_3 cpe004_3 32 -cpe083_3 cpe010_5 31 -cpe083_3 cpe013_3 31 -cpe083_3 cpe013_4 2 -cpe083_3 cpe014_contig_5 31 -cpe083_3 cpe022_contig_3 34 -cpe083_3 cpe027_2 41 -cpe083_3 cpe029_contig_2 26 -cpe083_3 cpe029_contig_4 39 -cpe083_3 cpe034_4 31 -cpe083_3 cpe035_contig_9 33 -cpe083_3 cpe047_3 32 -cpe083_3 cpe049_contig_3 25 -cpe083_3 cpe052_2 24 -cpe083_3 cpe058_contig_3 34 -cpe083_3 cpe059_contig_3 34 -cpe083_3 cpe060_2 41 -cpe083_3 cpe061_contig_3 34 -cpe083_3 cpe070_4 24 -cpe083_3 cpe073_4 25 -cpe083_3 cpe076_3 33 -cpe083_4 cpe027_4 2 -cpe083_4 cpe041_contig_4 0 -cpe083_4 cpe047_6 2 -cpe083_4 cpe051_contig_3 0 -cpe083_4 cpe052_3 2 -cpe083_4 cpe060_5 2 -cpe083_4 cpe067_4 0 -cpe083_4 cpe076_2 7 -cpe084_contig_3 cpe040_contig_6 22 -cpe084_contig_3 cpe041_contig_3 22 -cpe084_contig_3 cpe078_contig_4 27 -cpe084_contig_4 cpe020_3 8 -cpe084_contig_4 cpe024_contig_2 17 -cpe084_contig_4 cpe067_3 15 -cpe084_contig_4 cpe078_contig_3 16 -cpe084_contig_4 cpe081_3 13 -cpe084_contig_5 cpe012_contig_2 48 -cpe084_contig_5 cpe020_4 26 -cpe084_contig_5 cpe023_contig_2 34 -cpe084_contig_5 cpe024_contig_3 46 -cpe084_contig_5 cpe027_3 53 -cpe084_contig_5 cpe040_contig_3 40 -cpe084_contig_5 cpe049_contig_4 40 -cpe084_contig_5 cpe067_2 38 -cpe084_contig_5 cpe072_3 40 -cpe084_contig_5 cpe078_contig_2 26 -cpe084_contig_5 cpe081_2 48 -cpe084_contig_5 cpe082_2 28 -cpe085_2 cpe010_5 17 -cpe085_2 cpe013_3 15 -cpe085_2 cpe014_contig_5 15 -cpe085_2 cpe027_2 7 -cpe085_2 cpe047_3 12 -cpe085_2 cpe052_2 0 -cpe085_2 cpe060_2 11 -cpe085_2 cpe070_4 4 -cpe085_2 cpe073_4 6 -cpe085_2 cpe076_3 8 -cpe085_2 cpe083_3 24 -cpe085_3 cpe027_4 0 -cpe085_3 cpe041_contig_4 2 -cpe085_3 cpe047_6 0 -cpe085_3 cpe051_contig_3 2 -cpe085_3 cpe052_3 0 -cpe085_3 cpe060_5 0 -cpe085_3 cpe067_4 2 -cpe085_3 cpe083_4 2 -cpe086_contig_2 cpe012_contig_2 17 -cpe086_contig_2 cpe020_4 35 -cpe086_contig_2 cpe023_contig_2 36 -cpe086_contig_2 cpe024_contig_3 18 -cpe086_contig_2 cpe027_3 26 -cpe086_contig_2 cpe040_contig_3 22 -cpe086_contig_2 cpe041_contig_1 12 -cpe086_contig_2 cpe047_4 13 -cpe086_contig_2 cpe049_contig_4 37 -cpe086_contig_2 cpe051_contig_2 14 -cpe086_contig_2 cpe060_3 13 -cpe086_contig_2 cpe067_2 39 -cpe086_contig_2 cpe072_3 31 -cpe086_contig_2 cpe078_contig_2 31 -cpe086_contig_2 cpe081_2 17 -cpe086_contig_2 cpe082_2 38 -cpe086_contig_2 cpe084_contig_5 45 -cpe086_contig_3 cpe003_contig_4 19 -cpe086_contig_3 cpe004_3 19 -cpe086_contig_3 cpe010_5 23 -cpe086_contig_3 cpe013_2 27 -cpe086_contig_3 cpe013_3 16 -cpe086_contig_3 cpe014_contig_5 14 -cpe086_contig_3 cpe022_contig_3 22 -cpe086_contig_3 cpe027_2 9 -cpe086_contig_3 cpe029_contig_4 26 -cpe086_contig_3 cpe034_3 23 -cpe086_contig_3 cpe034_4 18 -cpe086_contig_3 cpe035_contig_9 21 -cpe086_contig_3 cpe047_3 8 -cpe086_contig_3 cpe049_contig_3 23 -cpe086_contig_3 cpe052_2 5 -cpe086_contig_3 cpe058_contig_3 22 -cpe086_contig_3 cpe059_contig_3 22 -cpe086_contig_3 cpe060_2 9 -cpe086_contig_3 cpe061_contig_3 22 -cpe086_contig_3 cpe070_2 29 -cpe086_contig_3 cpe070_4 14 -cpe086_contig_3 cpe073_2 29 -cpe086_contig_3 cpe073_4 19 -cpe086_contig_3 cpe076_3 13 -cpe086_contig_3 cpe083_3 28 -cpe086_contig_3 cpe085_2 5 -cpe086_contig_4 cpe027_4 1 -cpe086_contig_4 cpe047_6 1 -cpe086_contig_4 cpe052_3 1 -cpe086_contig_4 cpe060_5 1 -cpe086_contig_4 cpe085_3 1 -cpe086_contig_5 cpe047_5 1 -cpe087_contig_2 cpe012_contig_2 43 -cpe087_contig_2 cpe020_4 29 -cpe087_contig_2 cpe023_contig_2 2 -cpe087_contig_2 cpe024_contig_3 43 -cpe087_contig_2 cpe027_3 48 -cpe087_contig_2 cpe040_contig_3 36 -cpe087_contig_2 cpe041_contig_1 31 -cpe087_contig_2 cpe047_4 16 -cpe087_contig_2 cpe049_contig_4 40 -cpe087_contig_2 cpe051_contig_2 31 -cpe087_contig_2 cpe060_3 16 -cpe087_contig_2 cpe060_4 3 -cpe087_contig_2 cpe067_2 39 -cpe087_contig_2 cpe072_3 40 -cpe087_contig_2 cpe078_contig_2 31 -cpe087_contig_2 cpe081_2 43 -cpe087_contig_2 cpe082_2 28 -cpe087_contig_2 cpe084_contig_5 34 -cpe087_contig_2 cpe086_contig_2 36 -cpe087_contig_3 cpe023_contig_3 0 -cpe088_contig_4 cpe029_contig_4 13 -cpe088_contig_4 cpe049_contig_2 13 -cpe088_contig_4 cpe083_2 10 -cpe088_contig_6 cpe088_contig_4 1 -cpe090_contig_2 cpe010_3 22 -cpe090_contig_2 cpe012_contig_3 16 -cpe090_contig_2 cpe020_2 19 -cpe090_contig_2 cpe042_2 4 -cpe090_contig_2 cpe069_contig_2 17 -cpe090_contig_2 cpe070_3 19 -cpe090_contig_2 cpe072_2 19 -cpe090_contig_2 cpe073_3 19 -cpe092_contig_1 cpe027_4 1 -cpe092_contig_1 cpe047_6 1 -cpe092_contig_1 cpe052_3 1 -cpe092_contig_1 cpe060_5 1 -cpe092_contig_1 cpe085_3 1 -cpe092_contig_1 cpe086_contig_4 2 -cpe092_contig_3 cpe040_contig_6 25 -cpe092_contig_3 cpe041_contig_3 20 -cpe092_contig_3 cpe078_contig_4 19 -cpe092_contig_3 cpe084_contig_3 22 -cpe092_contig_4 cpe023_contig_3 39 -cpe092_contig_4 cpe087_contig_3 39 -cpe092_contig_5 cpe012_contig_2 22 -cpe092_contig_5 cpe013_4 2 -cpe092_contig_5 cpe023_contig_2 20 -cpe092_contig_5 cpe040_contig_3 15 -cpe092_contig_5 cpe041_contig_1 23 -cpe092_contig_5 cpe047_4 12 -cpe092_contig_5 cpe051_contig_2 24 -cpe092_contig_5 cpe060_3 12 -cpe092_contig_5 cpe067_2 7 -cpe092_contig_5 cpe082_2 18 -cpe092_contig_5 cpe087_contig_2 18 -cpe092_contig_6 cpe020_3 13 -cpe092_contig_6 cpe024_contig_2 4 -cpe092_contig_6 cpe067_3 8 -cpe092_contig_6 cpe078_contig_3 12 -cpe092_contig_6 cpe081_3 1 -cpe092_contig_6 cpe084_contig_4 13 -cpe097_contig_2 cpe003_contig_4 34 -cpe097_contig_2 cpe004_3 34 -cpe097_contig_2 cpe010_5 35 -cpe097_contig_2 cpe013_2 37 -cpe097_contig_2 cpe013_3 36 -cpe097_contig_2 cpe014_contig_5 36 -cpe097_contig_2 cpe022_contig_3 34 -cpe097_contig_2 cpe027_2 45 -cpe097_contig_2 cpe029_contig_4 42 -cpe097_contig_2 cpe034_4 33 -cpe097_contig_2 cpe035_contig_9 33 -cpe097_contig_2 cpe049_contig_3 28 -cpe097_contig_2 cpe058_contig_3 34 -cpe097_contig_2 cpe059_contig_3 34 -cpe097_contig_2 cpe060_2 47 -cpe097_contig_2 cpe061_contig_3 34 -cpe097_contig_2 cpe068_contig_2 37 -cpe097_contig_2 cpe070_4 28 -cpe097_contig_2 cpe073_4 33 -cpe097_contig_2 cpe076_3 29 -cpe097_contig_2 cpe083_3 34 -cpe097_contig_2 cpe086_contig_3 27 -cpe097_contig_3 cpe003_contig_3 17 -cpe097_contig_3 cpe004_2 18 -cpe097_contig_3 cpe010_2 25 -cpe097_contig_3 cpe022_contig_2 18 -cpe097_contig_3 cpe034_2 16 -cpe097_contig_3 cpe035_contig_1 20 -cpe097_contig_3 cpe058_contig_2 17 -cpe097_contig_3 cpe059_contig_1 18 -cpe097_contig_3 cpe061_contig_2 21 -cpe098_contig_2 cpe012_contig_2 14 -cpe098_contig_2 cpe023_contig_2 24 -cpe098_contig_2 cpe024_contig_3 17 -cpe098_contig_2 cpe027_3 18 -cpe098_contig_2 cpe040_contig_3 23 -cpe098_contig_2 cpe041_contig_1 3 -cpe098_contig_2 cpe051_contig_2 4 -cpe098_contig_2 cpe060_4 4 -cpe098_contig_2 cpe067_2 30 -cpe098_contig_2 cpe081_2 19 -cpe098_contig_2 cpe082_2 24 -cpe098_contig_2 cpe086_contig_2 13 -cpe098_contig_2 cpe087_contig_2 26 -cpe098_contig_2 cpe092_contig_5 24 -cpe098_contig_3 cpe027_4 2 -cpe098_contig_3 cpe041_contig_4 0 -cpe098_contig_3 cpe047_6 2 -cpe098_contig_3 cpe051_contig_3 0 -cpe098_contig_3 cpe052_3 2 -cpe098_contig_3 cpe060_5 2 -cpe098_contig_3 cpe067_4 0 -cpe098_contig_3 cpe076_2 7 -cpe098_contig_3 cpe083_4 0 -cpe098_contig_3 cpe085_3 2 -cpe099_2 cpe012_contig_2 17 -cpe099_2 cpe023_contig_2 35 -cpe099_2 cpe024_contig_3 18 -cpe099_2 cpe027_3 23 -cpe099_2 cpe040_contig_3 24 -cpe099_2 cpe041_contig_1 13 -cpe099_2 cpe047_4 18 -cpe099_2 cpe049_contig_4 27 -cpe099_2 cpe051_contig_2 14 -cpe099_2 cpe060_3 18 -cpe099_2 cpe067_2 37 -cpe099_2 cpe072_3 26 -cpe099_2 cpe078_contig_2 22 -cpe099_2 cpe081_2 25 -cpe099_2 cpe082_2 28 -cpe099_2 cpe084_contig_5 40 -cpe099_2 cpe086_contig_2 16 -cpe099_2 cpe087_contig_2 31 -cpe099_2 cpe098_contig_2 15 -cpe099_3 cpe020_3 12 -cpe099_3 cpe024_contig_2 3 -cpe099_3 cpe028_contig_3 16 -cpe099_3 cpe067_3 7 -cpe099_3 cpe078_contig_3 12 -cpe099_3 cpe081_3 3 -cpe099_3 cpe084_contig_4 13 -cpe099_3 cpe092_contig_6 2 -cpe099_4 cpe041_contig_4 3 -cpe099_4 cpe051_contig_3 3 -cpe099_4 cpe067_4 3 -cpe099_4 cpe076_2 6 -cpe099_4 cpe083_4 3 -cpe099_4 cpe098_contig_3 3 -cpe102_contig_2 cpe003_contig_4 30 -cpe102_contig_2 cpe004_3 30 -cpe102_contig_2 cpe010_4 24 -cpe102_contig_2 cpe010_5 36 -cpe102_contig_2 cpe013_2 39 -cpe102_contig_2 cpe013_3 36 -cpe102_contig_2 cpe014_contig_5 36 -cpe102_contig_2 cpe022_contig_3 30 -cpe102_contig_2 cpe027_2 38 -cpe102_contig_2 cpe029_contig_4 52 -cpe102_contig_2 cpe034_3 30 -cpe102_contig_2 cpe034_4 30 -cpe102_contig_2 cpe035_contig_3 32 -cpe102_contig_2 cpe035_contig_9 30 -cpe102_contig_2 cpe049_contig_2 37 -cpe102_contig_2 cpe049_contig_3 20 -cpe102_contig_2 cpe058_contig_3 30 -cpe102_contig_2 cpe059_contig_3 31 -cpe102_contig_2 cpe061_contig_3 30 -cpe102_contig_2 cpe068_contig_2 46 -cpe102_contig_2 cpe070_2 45 -cpe102_contig_2 cpe070_4 16 -cpe102_contig_2 cpe073_2 45 -cpe102_contig_2 cpe073_4 20 -cpe102_contig_2 cpe076_2 44 -cpe102_contig_2 cpe076_3 31 -cpe102_contig_2 cpe083_3 43 -cpe102_contig_2 cpe086_contig_3 24 -cpe102_contig_4 cpe003_contig_4 28 -cpe102_contig_4 cpe004_3 28 -cpe102_contig_4 cpe022_contig_3 28 -cpe102_contig_4 cpe034_4 27 -cpe102_contig_4 cpe035_contig_9 29 -cpe102_contig_4 cpe049_contig_3 28 -cpe102_contig_4 cpe058_contig_3 28 -cpe102_contig_4 cpe059_contig_3 28 -cpe102_contig_4 cpe061_contig_3 28 -cpe102_contig_4 cpe083_3 37 -cpe102_contig_4 cpe097_contig_2 38 -cpe102_contig_5 cpe027_4 2 -cpe102_contig_5 cpe041_contig_4 1 -cpe102_contig_5 cpe047_6 2 -cpe102_contig_5 cpe051_contig_3 1 -cpe102_contig_5 cpe052_3 2 -cpe102_contig_5 cpe060_5 2 -cpe102_contig_5 cpe067_4 1 -cpe102_contig_5 cpe076_2 7 -cpe102_contig_5 cpe083_4 2 -cpe102_contig_5 cpe085_3 2 -cpe102_contig_5 cpe098_contig_3 1 -cpe102_contig_5 cpe099_4 3 -cpe104_2 cpe027_4 2 -cpe104_2 cpe041_contig_4 1 -cpe104_2 cpe047_6 2 -cpe104_2 cpe051_contig_3 1 -cpe104_2 cpe052_3 2 -cpe104_2 cpe060_5 2 -cpe104_2 cpe067_4 1 -cpe104_2 cpe076_2 8 -cpe104_2 cpe083_4 2 -cpe104_2 cpe085_3 2 -cpe104_2 cpe098_contig_3 1 -cpe104_2 cpe099_4 4 -cpe104_2 cpe102_contig_5 0 -cpe105_contig_2 cpe076_2 38 -cpe105_contig_3 cpe102_contig_3 2 -cpe105_contig_4 cpe027_4 2 -cpe105_contig_4 cpe041_contig_4 2 -cpe105_contig_4 cpe047_6 2 -cpe105_contig_4 cpe051_contig_3 2 -cpe105_contig_4 cpe052_3 2 -cpe105_contig_4 cpe060_5 2 -cpe105_contig_4 cpe067_4 2 -cpe105_contig_4 cpe076_2 7 -cpe105_contig_4 cpe083_4 3 -cpe105_contig_4 cpe085_3 2 -cpe105_contig_4 cpe098_contig_3 2 -cpe105_contig_4 cpe099_4 4 -cpe105_contig_4 cpe102_contig_5 1 -cpe105_contig_4 cpe104_2 1 -icp157_2 cpe010_3 19 -icp157_2 cpe012_contig_3 11 -icp157_2 cpe020_2 16 -icp157_2 cpe042_2 2 -icp157_2 cpe069_contig_2 11 -icp157_2 cpe070_3 11 -icp157_2 cpe072_2 11 -icp157_2 cpe073_3 11 -icp157_2 cpe090_contig_2 4 -icp157_3 cpe003_contig_3 14 -icp157_3 cpe004_2 14 -icp157_3 cpe022_contig_2 14 -icp157_3 cpe034_2 14 -icp157_3 cpe035_contig_1 15 -icp157_3 cpe043_2 7 -icp157_3 cpe058_contig_2 14 -icp157_3 cpe059_contig_1 15 -icp157_3 cpe061_contig_2 15 -cpe003_contig_3 cpe003_contig_3 0 -cpe003_contig_4 cpe003_contig_4 0 -cpe004_2 cpe004_2 0 -cpe004_3 cpe004_3 0 -cpe005_contig_2 cpe005_contig_2 0 -cpe006_contig_2 cpe006_contig_2 0 -cpe007_contig_3 cpe007_contig_3 0 -cpe008_2 cpe008_2 0 -cpe008_3 cpe008_3 0 -cpe009_contig_2 cpe009_contig_2 0 -cpe009_contig_3 cpe009_contig_3 0 -cpe010_2 cpe010_2 0 -cpe010_3 cpe010_3 0 -cpe010_4 cpe010_4 0 -cpe010_5 cpe010_5 0 -cpe010_6 cpe010_6 0 -cpe010_7 cpe010_7 0 -cpe011_2 cpe011_2 0 -cpe012_contig_2 cpe012_contig_2 0 -cpe012_contig_3 cpe012_contig_3 0 -cpe012_contig_4 cpe012_contig_4 0 -cpe013_2 cpe013_2 0 -cpe013_3 cpe013_3 0 -cpe013_4 cpe013_4 0 -cpe014_contig_1 cpe014_contig_1 0 -cpe014_contig_5 cpe014_contig_5 0 -cpe015_contig_2 cpe015_contig_2 0 -cpe015_contig_3 cpe015_contig_3 0 -cpe015_contig_4 cpe015_contig_4 0 -cpe016_contig_2 cpe016_contig_2 0 -cpe016_contig_4 cpe016_contig_4 0 -cpe016_contig_5 cpe016_contig_5 0 -cpe017_2 cpe017_2 0 -cpe018_contig_2 cpe018_contig_2 0 -cpe018_contig_3 cpe018_contig_3 0 -cpe018_contig_4 cpe018_contig_4 0 -cpe020_2 cpe020_2 0 -cpe020_3 cpe020_3 0 -cpe020_4 cpe020_4 0 -cpe022_contig_2 cpe022_contig_2 0 -cpe022_contig_3 cpe022_contig_3 0 -cpe023_contig_2 cpe023_contig_2 0 -cpe023_contig_3 cpe023_contig_3 0 -cpe024_contig_2 cpe024_contig_2 0 -cpe024_contig_3 cpe024_contig_3 0 -cpe024_contig_4 cpe024_contig_4 0 -cpe024_contig_5 cpe024_contig_5 0 -cpe024_contig_6 cpe024_contig_6 0 -cpe025_contig_2 cpe025_contig_2 0 -cpe025_contig_3 cpe025_contig_3 0 -cpe025_contig_4 cpe025_contig_4 0 -cpe025_contig_6 cpe025_contig_6 0 -cpe027_2 cpe027_2 0 -cpe027_3 cpe027_3 0 -cpe027_4 cpe027_4 0 -cpe028_contig_2 cpe028_contig_2 0 -cpe028_contig_3 cpe028_contig_3 0 -cpe028_contig_4 cpe028_contig_4 0 -cpe029_contig_2 cpe029_contig_2 0 -cpe029_contig_3 cpe029_contig_3 0 -cpe029_contig_4 cpe029_contig_4 0 -cpe029_contig_5 cpe029_contig_5 0 -cpe029_contig_6 cpe029_contig_6 0 -cpe029_contig_8 cpe029_contig_8 0 -cpe034_2 cpe034_2 0 -cpe034_3 cpe034_3 0 -cpe034_4 cpe034_4 0 -cpe035_contig_1 cpe035_contig_1 0 -cpe035_contig_3 cpe035_contig_3 0 -cpe035_contig_9 cpe035_contig_9 0 -cpe037_contig_2 cpe037_contig_2 0 -cpe037_contig_3 cpe037_contig_3 0 -cpe037_contig_4 cpe037_contig_4 0 -cpe037_contig_5 cpe037_contig_5 0 -cpe037_contig_6 cpe037_contig_6 0 -cpe040_contig_2 cpe040_contig_2 0 -cpe040_contig_3 cpe040_contig_3 0 -cpe040_contig_4 cpe040_contig_4 0 -cpe040_contig_5 cpe040_contig_5 0 -cpe040_contig_6 cpe040_contig_6 0 -cpe041_contig_1 cpe041_contig_1 0 -cpe041_contig_3 cpe041_contig_3 0 -cpe041_contig_4 cpe041_contig_4 0 -cpe042_2 cpe042_2 0 -cpe043_2 cpe043_2 0 -cpe043_3 cpe043_3 0 -cpe044_contig_2 cpe044_contig_2 0 -cpe044_contig_3 cpe044_contig_3 0 -cpe044_contig_4 cpe044_contig_4 0 -cpe045_2 cpe045_2 0 -cpe045_3 cpe045_3 0 -cpe047_2 cpe047_2 0 -cpe047_3 cpe047_3 0 -cpe047_4 cpe047_4 0 -cpe047_5 cpe047_5 0 -cpe047_6 cpe047_6 0 -cpe048_2 cpe048_2 0 -cpe049_contig_2 cpe049_contig_2 0 -cpe049_contig_3 cpe049_contig_3 0 -cpe049_contig_4 cpe049_contig_4 0 -cpe049_contig_5 cpe049_contig_5 0 -cpe051_contig_2 cpe051_contig_2 0 -cpe051_contig_3 cpe051_contig_3 0 -cpe052_2 cpe052_2 0 -cpe052_3 cpe052_3 0 -cpe055_2 cpe055_2 0 -cpe058_contig_2 cpe058_contig_2 0 -cpe058_contig_3 cpe058_contig_3 0 -cpe059_contig_1 cpe059_contig_1 0 -cpe059_contig_3 cpe059_contig_3 0 -cpe060_2 cpe060_2 0 -cpe060_3 cpe060_3 0 -cpe060_4 cpe060_4 0 -cpe060_5 cpe060_5 0 -cpe061_contig_2 cpe061_contig_2 0 -cpe061_contig_3 cpe061_contig_3 0 -cpe067_2 cpe067_2 0 -cpe067_3 cpe067_3 0 -cpe067_4 cpe067_4 0 -cpe067_5 cpe067_5 0 -cpe068_contig_2 cpe068_contig_2 0 -cpe068_contig_3 cpe068_contig_3 0 -cpe069_contig_2 cpe069_contig_2 0 -cpe070_2 cpe070_2 0 -cpe070_3 cpe070_3 0 -cpe070_4 cpe070_4 0 -cpe072_2 cpe072_2 0 -cpe072_3 cpe072_3 0 -cpe072_4 cpe072_4 0 -cpe073_2 cpe073_2 0 -cpe073_3 cpe073_3 0 -cpe073_4 cpe073_4 0 -cpe076_2 cpe076_2 0 -cpe076_3 cpe076_3 0 -cpe076_4 cpe076_4 0 -cpe077_2 cpe077_2 0 -cpe078_contig_2 cpe078_contig_2 0 -cpe078_contig_3 cpe078_contig_3 0 -cpe078_contig_4 cpe078_contig_4 0 -cpe079_contig_2 cpe079_contig_2 0 -cpe079_contig_3 cpe079_contig_3 0 -cpe080_contig_2 cpe080_contig_2 0 -cpe080_contig_3 cpe080_contig_3 0 -cpe080_contig_4 cpe080_contig_4 0 -cpe081_2 cpe081_2 0 -cpe081_3 cpe081_3 0 -cpe082_2 cpe082_2 0 -cpe082_3 cpe082_3 0 -cpe083_2 cpe083_2 0 -cpe083_3 cpe083_3 0 -cpe083_4 cpe083_4 0 -cpe084_contig_3 cpe084_contig_3 0 -cpe084_contig_4 cpe084_contig_4 0 -cpe084_contig_5 cpe084_contig_5 0 -cpe085_2 cpe085_2 0 -cpe085_3 cpe085_3 0 -cpe086_contig_2 cpe086_contig_2 0 -cpe086_contig_3 cpe086_contig_3 0 -cpe086_contig_4 cpe086_contig_4 0 -cpe086_contig_5 cpe086_contig_5 0 -cpe087_contig_2 cpe087_contig_2 0 -cpe087_contig_3 cpe087_contig_3 0 -cpe088_contig_4 cpe088_contig_4 0 -cpe088_contig_5 cpe088_contig_5 0 -cpe088_contig_6 cpe088_contig_6 0 -cpe090_contig_2 cpe090_contig_2 0 -cpe090_contig_4 cpe090_contig_4 0 -cpe092_contig_1 cpe092_contig_1 0 -cpe092_contig_3 cpe092_contig_3 0 -cpe092_contig_4 cpe092_contig_4 0 -cpe092_contig_5 cpe092_contig_5 0 -cpe092_contig_6 cpe092_contig_6 0 -cpe093_2 cpe093_2 0 -cpe097_contig_2 cpe097_contig_2 0 -cpe097_contig_3 cpe097_contig_3 0 -cpe098_contig_2 cpe098_contig_2 0 -cpe098_contig_3 cpe098_contig_3 0 -cpe098_contig_4 cpe098_contig_4 0 -cpe099_2 cpe099_2 0 -cpe099_3 cpe099_3 0 -cpe099_4 cpe099_4 0 -cpe102_contig_2 cpe102_contig_2 0 -cpe102_contig_3 cpe102_contig_3 0 -cpe102_contig_4 cpe102_contig_4 0 -cpe102_contig_5 cpe102_contig_5 0 -cpe104_2 cpe104_2 0 -cpe105_contig_2 cpe105_contig_2 0 -cpe105_contig_3 cpe105_contig_3 0 -cpe105_contig_4 cpe105_contig_4 0 -cpe105_contig_5 cpe105_contig_5 0 -cpe105_contig_6 cpe105_contig_6 0 -icp157_2 icp157_2 0 -icp157_3 icp157_3 0 diff --git a/tests/data/blackhole/communities.pkl b/tests/data/blackhole/communities.pkl deleted file mode 100644 index aad7cdd0f53ddfcd441d0252f8b693047b1fc128..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54797 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 Xg@ie7F>~B1fH@wGnL|%7*H-aAF!2^w diff --git a/tests/data/blackhole/truth_typing.tsv b/tests/data/blackhole/truth_typing.tsv deleted file mode 100644 index beb1036..0000000 --- a/tests/data/blackhole/truth_typing.tsv +++ /dev/null @@ -1,193 +0,0 @@ -plasmid type -cpe007_contig_3 community_0_subcommunity_0 -cpe010_2 community_0_subcommunity_1 -cpe010_5 community_0_subcommunity_2 -cpe010_4 community_0_subcommunity_3 -cpe020_4 community_0_subcommunity_4 -cpe020_3 community_0_subcommunity_5 -cpe024_contig_3 community_0_subcommunity_6 -cpe027_2 community_0_subcommunity_7 -cpe027_3 community_0_subcommunity_8 -cpe029_contig_4 community_0_subcommunity_9 -cpe034_3 community_0_subcommunity_10 -cpe035_contig_3 community_0_subcommunity_11 -cpe040_contig_3 community_0_subcommunity_12 -cpe047_3 community_0_subcommunity_13 -cpe049_contig_2 community_0_subcommunity_14 -cpe049_contig_3 community_0_subcommunity_15 -cpe049_contig_4 community_0_subcommunity_16 -cpe060_2 community_0_subcommunity_17 -cpe067_2 community_0_subcommunity_18 -cpe067_3 community_0_subcommunity_19 -cpe072_3 community_0_subcommunity_20 -cpe076_2 community_0_subcommunity_21 -cpe076_3 community_0_subcommunity_22 -cpe078_contig_2 community_0_subcommunity_23 -cpe078_contig_3 community_0_subcommunity_24 -cpe081_2 community_0_subcommunity_25 -cpe029_contig_2 community_0_subcommunity_26 -cpe084_contig_4 community_0_subcommunity_27 -cpe084_contig_5 community_0_subcommunity_28 -cpe086_contig_2 community_0_subcommunity_29 -cpe086_contig_3 community_0_subcommunity_30 -cpe083_2 community_0_subcommunity_31 -cpe097_contig_2 community_0_subcommunity_32 -cpe097_contig_3 community_0_subcommunity_33 -cpe099_2 community_0_subcommunity_34 -cpe028_contig_3 community_0_subcommunity_35 -cpe102_contig_2 community_0_subcommunity_36 -cpe102_contig_4 community_0_subcommunity_37 -cpe105_contig_2 community_0_subcommunity_38 -icp157_3 community_0_subcommunity_39 -cpe043_2 community_0_subcommunity_40 -cpe014_contig_5 community_0_subcommunity_41 -cpe013_3 community_0_subcommunity_41 -cpe087_contig_2 community_0_subcommunity_42 -cpe023_contig_2 community_0_subcommunity_42 -cpe047_4 community_0_subcommunity_43 -cpe060_3 community_0_subcommunity_43 -cpe088_contig_6 community_0_subcommunity_44 -cpe088_contig_4 community_0_subcommunity_44 -cpe010_6 community_0_subcommunity_45 -cpe076_4 community_0_subcommunity_45 -cpe009_contig_2 community_0_subcommunity_45 -cpe051_contig_2 community_0_subcommunity_46 -cpe098_contig_2 community_0_subcommunity_46 -cpe041_contig_1 community_0_subcommunity_46 -cpe024_contig_2 community_0_subcommunity_47 -cpe092_contig_6 community_0_subcommunity_47 -cpe081_3 community_0_subcommunity_47 -cpe099_3 community_0_subcommunity_47 -cpe052_2 community_0_subcommunity_48 -cpe073_4 community_0_subcommunity_48 -cpe085_2 community_0_subcommunity_48 -cpe070_4 community_0_subcommunity_48 -cpe035_contig_1 community_0_subcommunity_49 -cpe003_contig_3 community_0_subcommunity_49 -cpe034_2 community_0_subcommunity_49 -cpe059_contig_1 community_0_subcommunity_49 -cpe058_contig_2 community_0_subcommunity_49 -cpe004_2 community_0_subcommunity_49 -cpe061_contig_2 community_0_subcommunity_49 -cpe022_contig_2 community_0_subcommunity_49 -cpe059_contig_3 community_0_subcommunity_50 -cpe004_3 community_0_subcommunity_50 -cpe061_contig_3 community_0_subcommunity_50 -cpe035_contig_9 community_0_subcommunity_50 -cpe022_contig_3 community_0_subcommunity_50 -cpe003_contig_4 community_0_subcommunity_50 -cpe058_contig_3 community_0_subcommunity_50 -cpe034_4 community_0_subcommunity_50 -cpe092_contig_5 community_0_subcommunity_51 -cpe083_3 community_0_subcommunity_51 -cpe073_2 community_0_subcommunity_51 -cpe068_contig_2 community_0_subcommunity_51 -cpe015_contig_2 community_0_subcommunity_51 -cpe013_2 community_0_subcommunity_51 -cpe013_4 community_0_subcommunity_51 -cpe082_2 community_0_subcommunity_51 -cpe070_2 community_0_subcommunity_51 -cpe012_contig_2 community_0_subcommunity_51 -cpe041_contig_4 community_0_subcommunity_52 -cpe047_6 community_0_subcommunity_52 -cpe052_3 community_0_subcommunity_52 -cpe098_contig_3 community_0_subcommunity_52 -cpe083_4 community_0_subcommunity_52 -cpe067_4 community_0_subcommunity_52 -cpe092_contig_1 community_0_subcommunity_52 -cpe105_contig_4 community_0_subcommunity_52 -cpe051_contig_3 community_0_subcommunity_52 -cpe085_3 community_0_subcommunity_52 -cpe104_2 community_0_subcommunity_52 -cpe086_contig_4 community_0_subcommunity_52 -cpe099_4 community_0_subcommunity_52 -cpe027_4 community_0_subcommunity_52 -cpe102_contig_5 community_0_subcommunity_52 -cpe060_5 community_0_subcommunity_52 -cpe008_2 community_1_subcommunity_0 -cpe006_contig_2 community_1_subcommunity_0 -cpe020_2 community_2_subcommunity_0 -cpe010_3 community_2_subcommunity_0 -cpe042_2 community_2_subcommunity_1 -cpe090_contig_2 community_2_subcommunity_1 -icp157_2 community_2_subcommunity_1 -cpe072_2 community_2_subcommunity_2 -cpe070_3 community_2_subcommunity_2 -cpe012_contig_3 community_2_subcommunity_2 -cpe069_contig_2 community_2_subcommunity_2 -cpe073_3 community_2_subcommunity_2 -cpe017_2 community_3_subcommunity_0 -cpe016_contig_5 community_3_subcommunity_0 -cpe040_contig_4 community_4_subcommunity_0 -cpe043_3 community_4_subcommunity_1 -cpe025_contig_2 community_4_subcommunity_2 -cpe029_contig_5 community_4_subcommunity_2 -cpe028_contig_4 community_4_subcommunity_2 -cpe009_contig_3 community_4_subcommunity_2 -cpe068_contig_3 community_4_subcommunity_2 -cpe015_contig_4 community_5_subcommunity_0 -cpe025_contig_6 community_5_subcommunity_1 -cpe029_contig_3 community_6_subcommunity_0 -cpe028_contig_2 community_6_subcommunity_0 -cpe037_contig_6 community_7_subcommunity_0 -cpe016_contig_2 community_7_subcommunity_1 -cpe040_contig_5 community_8_subcommunity_0 -cpe024_contig_6 community_8_subcommunity_1 -cpe078_contig_4 community_9_subcommunity_0 -cpe040_contig_6 community_9_subcommunity_1 -cpe041_contig_3 community_9_subcommunity_2 -cpe084_contig_3 community_9_subcommunity_3 -cpe092_contig_3 community_9_subcommunity_4 -cpe080_contig_3 community_10_subcommunity_0 -cpe055_2 community_10_subcommunity_0 -cpe045_3 community_10_subcommunity_0 -cpe011_2 community_10_subcommunity_0 -cpe044_contig_4 community_10_subcommunity_0 -cpe077_2 community_10_subcommunity_0 -cpe045_2 community_11_subcommunity_0 -cpe044_contig_2 community_11_subcommunity_1 -cpe086_contig_5 community_12_subcommunity_0 -cpe047_5 community_12_subcommunity_0 -cpe092_contig_4 community_13_subcommunity_0 -cpe087_contig_3 community_13_subcommunity_1 -cpe023_contig_3 community_13_subcommunity_1 -cpe102_contig_3 community_14_subcommunity_0 -cpe105_contig_3 community_14_subcommunity_0 -cpe005_contig_2 community_15_subcommunity_0 -cpe008_3 community_16_subcommunity_0 -cpe010_7 community_17_subcommunity_0 -cpe012_contig_4 community_18_subcommunity_0 -cpe014_contig_1 community_19_subcommunity_0 -cpe015_contig_3 community_20_subcommunity_0 -cpe016_contig_4 community_21_subcommunity_0 -cpe018_contig_2 community_22_subcommunity_0 -cpe018_contig_3 community_23_subcommunity_0 -cpe018_contig_4 community_24_subcommunity_0 -cpe024_contig_4 community_25_subcommunity_0 -cpe024_contig_5 community_26_subcommunity_0 -cpe025_contig_3 community_27_subcommunity_0 -cpe025_contig_4 community_28_subcommunity_0 -cpe029_contig_6 community_29_subcommunity_0 -cpe029_contig_8 community_30_subcommunity_0 -cpe037_contig_2 community_31_subcommunity_0 -cpe037_contig_3 community_32_subcommunity_0 -cpe037_contig_4 community_33_subcommunity_0 -cpe037_contig_5 community_34_subcommunity_0 -cpe040_contig_2 community_35_subcommunity_0 -cpe044_contig_3 community_36_subcommunity_0 -cpe047_2 community_37_subcommunity_0 -cpe048_2 community_38_subcommunity_0 -cpe049_contig_5 community_39_subcommunity_0 -cpe067_5 community_40_subcommunity_0 -cpe072_4 community_41_subcommunity_0 -cpe079_contig_2 community_42_subcommunity_0 -cpe079_contig_3 community_43_subcommunity_0 -cpe080_contig_2 community_44_subcommunity_0 -cpe080_contig_4 community_45_subcommunity_0 -cpe082_3 community_46_subcommunity_0 -cpe088_contig_5 community_47_subcommunity_0 -cpe090_contig_4 community_48_subcommunity_0 -cpe093_2 community_49_subcommunity_0 -cpe098_contig_4 community_50_subcommunity_0 -cpe105_contig_5 community_51_subcommunity_0 -cpe105_contig_6 community_52_subcommunity_0 diff --git a/tests/data/blackhole_2/.gitignore b/tests/data/blackhole_2/.gitignore deleted file mode 100644 index 1fcb152..0000000 --- a/tests/data/blackhole_2/.gitignore +++ /dev/null @@ -1 +0,0 @@ -out diff --git a/tests/data/blackhole_2/communities.pkl b/tests/data/blackhole_2/communities.pkl deleted file mode 100644 index 968e69f0f46034a2b7f97ac50d6ce4bdeb1a1686..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13299 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 PCJA;4Y(ykB9QFSIccp-q diff --git a/tests/test_integration_tests.py b/tests/test_integration_tests.py index a2921a0..cf9505e 100644 --- a/tests/test_integration_tests.py +++ b/tests/test_integration_tests.py @@ -74,45 +74,42 @@ def test_add_sample_hits_command(self) -> None: self.assertEqual(result.exit_code, 0) -class TestRemoveBlackholePlasmids(TestCase): - def test_remove_blackhole_plasmids(self) -> None: +class TestRemoveHubPlasmidsIteratively(TestCase): + def test_remove_hub_plasmids_iteratively(self) -> None: runner = CliRunner() result = runner.invoke( cli, [ - "type", - "tests/data/blackhole/communities.pkl", - "tests/data/blackhole/all_plasmids_distances.tsv", - "tests/data/blackhole/out", + "split", + "tests/data/hub/plasmids.tsv", + "tests/data/hub/all_pairs_jaccard_distance.tsv", + "tests/data/hub/out/split_out", + "--distance-threshold", + "0.6", + "--bh-connectivity", + "10", + "--bh-neighbours-edge-density", + "0.2", + "--output-plasmid-graph", ], ) self.assertEqual(result.exit_code, 0) - self.assertTrue( - check_if_files_are_equal( - Path("tests/data/blackhole/out/objects/typing.tsv"), - Path("tests/data/blackhole/truth_typing.tsv"), - sort=True, - ) - ) - -class TestRemoveBlackholePlasmidsIteratively(TestCase): - def test_remove_blackhole_plasmids_iteratively(self) -> None: - runner = CliRunner() result = runner.invoke( cli, [ "type", - "tests/data/blackhole_2/communities.pkl", - "tests/data/blackhole_2/all_plasmids_distances.tsv", - "tests/data/blackhole_2/out", + "tests/data/hub/out/split_out/objects/communities.pkl", + "tests/data/hub/all_plasmids_distances.tsv", + "tests/data/hub/out/type_out", ], ) self.assertEqual(result.exit_code, 0) + self.assertTrue( check_if_files_are_equal( - Path("tests/data/blackhole_2/out/objects/typing.tsv"), - Path("tests/data/blackhole_2/truth_typing.tsv"), + Path("tests/data/hub/out/type_out/objects/typing.tsv"), + Path("tests/data/hub/truth_typing.tsv"), sort=True, ) )