{'fraction_non_alphanumeric': 0.03546099290780142, 'fraction_numerical': 0.0070921985815602835, 'mean_word_length': 4.673366834170854, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Branch-and-Prune trees with bounded width

The Molecular Distance Geometry Problem, which asks to find the embedding in R of a given weighted undirected graph, is a good model for determining the structure of proteins given a set of inter-atomic distances [6,4]. Its generalization to R is called Distance Geometry Problem (DGP), which has applications in wireless sensor networks [2] and graph drawing. In general, the MDGP and DGP implicitly require a search in a continuous Euclidean space. Proteins, however, have further structural properties that can be exploited to define subclasses of instances of the MDGP and DGP whose solution set is finite [5]. These instances can be solved with an algorithmic framework called Branch-and-Prune (BP) [3,5]: this is an iterative algorithm where the i-th atom of the protein can be embedded in R using distances to at least three preceding atoms. Since the intersection of three 3D spheres contains in general two points, the BP gives rise to a binary search tree. In the worst case, the BP is an exponential time algorithm, which is fitting because the MDGP and DGP are NP-hard [9].