Commit d23d746c authored by Alfredo Di Napoli's avatar Alfredo Di Napoli

Use Discrimination nub on relatedComponents

parent b48af3e4
Pipeline #5660 failed with stages
in 89 minutes and 25 seconds
...@@ -16,18 +16,19 @@ Portability : POSIX ...@@ -16,18 +16,19 @@ Portability : POSIX
module Gargantext.Core.Viz.Phylo.PhyloTools where module Gargantext.Core.Viz.Phylo.PhyloTools where
import Control.Lens hiding (Level) import Control.Lens hiding (Level)
import Data.List (union, nub, init, tail, partition, nubBy, (!!)) import Data.Discrimination qualified as D
import Data.List qualified as List import Data.List qualified as List
import Data.List (union, nub, init, tail, partition, nubBy, (!!))
import Data.Map (elems, empty, fromList, findWithDefault, unionWith, keys, member, (!), filterWithKey, fromListWith, restrictKeys) import Data.Map (elems, empty, fromList, findWithDefault, unionWith, keys, member, (!), filterWithKey, fromListWith, restrictKeys)
import Data.Map qualified as Map import Data.Map qualified as Map
import Data.Maybe (fromJust) import Data.Maybe (fromJust)
import Data.Set (disjoint) import Data.Set (disjoint)
import Data.Set qualified as Set import Data.Set qualified as Set
import Data.String (String) import Data.String (String)
import Data.Text (unpack)
import Data.Text qualified as Text import Data.Text qualified as Text
import Data.Vector (Vector, elemIndex) import Data.Text (unpack)
import Data.Vector qualified as Vector import Data.Vector qualified as Vector
import Data.Vector (Vector, elemIndex)
import Gargantext.Core.Viz.Phylo import Gargantext.Core.Viz.Phylo
import Gargantext.Prelude hiding (empty) import Gargantext.Prelude hiding (empty)
import Prelude (read) import Prelude (read)
...@@ -693,13 +694,13 @@ groupsToBranches' groups = ...@@ -693,13 +694,13 @@ groupsToBranches' groups =
in map (\g -> g & phylo_groupBranchId %~ (\(lvl,_) -> (lvl,bId))) groups') graph in map (\g -> g & phylo_groupBranchId %~ (\(lvl,_) -> (lvl,bId))) groups') graph
relatedComponents :: Ord a => [[a]] -> [[a]] relatedComponents :: (D.Grouping a, Ord a) => [[a]] -> [[a]]
relatedComponents graph = foldl' (\branches groups -> relatedComponents graph = foldl' (\branches groups ->
if (null branches) if (null branches)
then branches ++ [groups] then branches ++ [groups]
else else
let branchPart = partition (\branch -> disjoint (Set.fromList branch) (Set.fromList groups)) branches let branchPart = partition (\branch -> disjoint (Set.fromList branch) (Set.fromList groups)) branches
in (fst branchPart) ++ [nub $ concat $ (snd branchPart) ++ [groups]]) [] graph in (fst branchPart) ++ [D.nub $ concat $ (snd branchPart) ++ [groups]]) [] graph
toRelatedComponents :: [PhyloGroup] -> [((PhyloGroup,PhyloGroup),Double)] -> [[PhyloGroup]] toRelatedComponents :: [PhyloGroup] -> [((PhyloGroup,PhyloGroup),Double)] -> [[PhyloGroup]]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment