* fixed faked non-const return type (let clients do the cast if needed)
12 lines of code changed in 3 files:
* slight refactoring in gb_search
* added tests creating containers on the fly
25 lines of code changed in 1 file:
* added some checks for link-syntax (not using links)
8 lines of code changed in 1 file:
* fix ".." in GB_search; added several tests
* replaced TEST_ASSERT_NULL by TEST_ASSERT_NORESULT!__NOERROREXPORTED for those function where NULL just means "not found"
77 lines of code changed in 2 files:
* added tests covering search functionality in adquery.cxx
- covers most code in server-side searches
- documented some crashes + wrong behavior
* tweaked unit-tester
- optionally check content of exported error
- make GBDATA* comparable
- added TEST_ASSERT_NOTNULL + !__BROKEN versions
283 lines of code changed in 3 files:
* renames
61 lines of code changed in 1 file:
* next neighbour search can report errors to client
- reports error if oligo len < 1
44 lines of code changed in 3 files:
* scaling of relative scores in 'Next neighbour search' can be configured now
- scale vs source or target POC (or min/max of both)
- added toggles to 'Search next neighbours of ...'
- added tests
* help (score/scaling)
- describe new options
- fix wrong facts
168 lines of code changed in 11 files:
* fixed absolute score limit (17.5 was interpreted as 17.0)
7 lines of code changed in 2 files:
* simplified TEST_SLOW_PT_FamilyFinder
- tested too many cases
- effects of single parameters were obscured
68 lines of code changed in 1 file:
* fix for [8531] (link header)
1 lines of code changed in 1 file:
* added header with global defines for ptserver and its clients
- moved enum FF_complement there and use it in ptserver
40 lines of code changed in 8 files:
* ptserver now can filter found relatives by minimum score
- allow to use that feature from 'Next Neighbours of Selected'
- also use from 'Next Neighbours of Listed' (which did client-side filtering)
- added tests
- updated window layout and help
* renamed awars to make clearer which belong to which window and which are shared
* fixed wrong calculation of display width (when there where no hits or hits were limited)
* added @@@-comments to aligner (who could also use filtering by score)
304 lines of code changed in 10 files:
* GB_atof accepts "" and interprets it as 0.0
6 lines of code changed in 1 file:
* sort equally scored relatives by pt-server-internal species-index (needed for tests)
22 lines of code changed in 2 files:
* Next relatives of selected
- added button to mark species listed in hitlist (w/o indirection via query box)
- added toggles to
* auto-mark after search
* auto-search on selection change
- request tree refresh when hitlist was updated
- access query and selection list via globals [sic]
* Next relatives of selected
- warn if no results in query
215 lines of code changed in 3 files:
* optimized limiting multi-hits (as introduced in [8519])
- instead of doing final loop over all species in PT-Server, limit on-the-fly
- scales better for pt-servers with more species and bigger used oligo-sizes
40 lines of code changed in 1 file:
* fixed button in 'mark relatives of listed'
* added assertion vs create_autosize_button when to-position was defined in xfig
35 lines of code changed in 2 files:
* fixed progress in arb_pars/add_marked
7 lines of code changed in 1 file:
* again fixed relative score calculation (see [8520])
- now uses '''maximum''' basecount of source/target, i.e. two species with significant different amount of bases will never be nearly related
10 lines of code changed in 3 files:
* updated help for next relative search
18 lines of code changed in 1 file:
* fixed wrong relative score calculation
- if the source sequence contained less bases than the target sequence, the score was too high
- now it is only scaled versus the base-count of the target sequence
31 lines of code changed in 2 files:
* next-relative-search
- collect all occurring oligos
- perform only one traversal for each oligo (eliminates duplicate hits caused by source). improves speed for small oligo-sizes
- after collecting matches for one oligo, limit hit-increment to number of occurrances in source (eliminates duplicate hits caused by target)
106 lines of code changed in 2 files:
* allow oligo-length=1 for next-relative-search
- regardless whether this makes sense or not, the restriction was an artifical one (i guess optimization regarding PT-traversal)
12 lines of code changed in 2 files:
* added next-relative-search-tests for short oligos (occurring repeatedly in source and/or target seq)
65 lines of code changed in 1 file:
* replace other uses of literal main-container-names
* arb_gene_probe generates species_data with correct protection
- updated test result
* fixed locals in arb_prm_read()
84 lines of code changed in 11 files:
* replace now inlined code by function calls. see [8514]
15 lines of code changed in 3 files:
* create main containers with delete protection (only affects new DBs)
6 lines of code changed in 7 files:
* like [8511] for "tree_data"
18 lines of code changed in 5 files:
* like [8511] for "presets"
14 lines of code changed in 7 files:
* use GBT_get_species_data instead of inlined code
- replaced all occurrances where
* either code was identical
* or search mode was GB_FIND instead of GB_CREATE_CONTAINER, but following code assumed that the container was found
48 lines of code changed in 27 files:
* slight optimization of GB_test_transaction
15 lines of code changed in 3 files:
* update TAGS on change only
1 lines of code changed in 1 file:
* NJ-bootstrapping
- calculated one tree less than specified (fixed)
- skip one superfluous matrix calculation (in 1st loop)
- delete partly calculated matrix on abort
* progress bars with auto-counter increased the counter up to maxcount+1 (fixed)
- fixes #181
6 lines of code changed in 2 files:
* use double for weights ([0..1] instead of [0..10000])
* added tests using weights != 1
- fixed weight/length calculation to make generated consense tree independent from used weight (as long as the same weight is used for all added trees)
* no longer generates zero-bootstrap at root
- strictly speaking it is wrong now (since the edge from virtual root to tree cant exist, ergo it's probability should be zero)
- practically
* that zero probability would be a special case (and is an error at all other edges)
* a probability of 100% is used (which gets skipped when saving the tree)
90 lines of code changed in 14 files:
* correctly round branch probabilities
43 lines of code changed in 2 files:
* replaced hash+list by set+vector
* weight parts via ctor
153 lines of code changed in 10 files:
* tweaked tree copy/rename
- DRYed window and callback code
- better error messages
- added two buttons
* one shows current tree name and copies the name to the input-field
* one makes the tree name unique by applying numbered suffixes
97 lines of code changed in 1 file:
* fix x-attaching input field with label to right border
7 lines of code changed in 1 file:
* rename
35 lines of code changed in 2 files:
* DRYed several Xt-calls using argument lists (aw_xargs)
193 lines of code changed in 6 files:
* if awar-srt changes awar on update, reset changer of variable (as done for float/int ranges) to force instant update of widget
30 lines of code changed in 1 file:
* several changes to quark-functions
- split GB_key_2_quark into GB_find_existing_quark + GB_find_or_create_quark
- replaced weird gb_key_2_quark
* by gb_find_or_create_NULL_quark (one occurrance)
* by gb_find_or_create_quark
- several functions unnecessarily created new quarks
* gb_find_internal (when searching for non-existing keys)
* GB_first_marked/GB_following_marked (when iterating over non-existant keys)
* GB_has_key (when checking for non-existant key)
* updated some binary test-databases (patch slighty changed order of system keys)
62 lines of code changed in 15 files:
* dont misuse gb_write_key
6 lines of code changed in 1 file:
- failed to distinguish between filenames where one is a suffix of another
1 lines of code changed in 1 file:
- allow to print char==0 (happens e.g. in memdump)
- print ASCII 0-31 as !^@, !^A, ...
1 lines of code changed in 1 file:
* propagate error on invalid key from search tool
21 lines of code changed in 1 file:
- use current pid in logfilenames (when logging external commands)
* concurrent tests interfered and one of them failed randomly
11 lines of code changed in 1 file:
* rename
15 lines of code changed in 7 files:
- automatically update list of source files if necessary
5 lines of code changed in 1 file:
* expand incomplete filenames in unit-test output (but not in logs)
- occurred e.g. when an assertion failed
58 lines of code changed in 1 file:
* elim last global from CT_rbtree.cxx
- now multiple !ConsensusTree can be used at the same time
40 lines of code changed in 7 files:
* moved globals from CT_hash.cxx into class !PartRegistry
* increased hash size
52 lines of code changed in 5 files:
* move globals from CT_part.cxx into class !PartitionSize
* class PART
- private member variables
- moved many global methods into
- stores und updates member-count
339 lines of code changed in 10 files:
* reuse !MatrixOrder (approx. 10x faster than b4 [8485])
11 lines of code changed in 1 file:
* pull !MatrixOrder to caller side
* dont try to load tree if no sort_tree_name given (avoids exported error)
* allow to get_index if no sort-tree
52 lines of code changed in 2 files:
* simplified DI_MATRIX::load
- create a !MatrixOrder object and use it to sort species in matrix
- only sort affected species (not all species in sort-tree).
* this speeds up sorting for big sort-trees ("big" compared to number of affected species)
- e.g. 59 species, sort-tree containing 8000 species, approx. 6 times faster
- no longer warn if sort-tree contains species which are not in DB
121 lines of code changed in 2 files:
* rename
2 lines of code changed in 1 file:
* make more clear what "size of tree" means
13 lines of code changed in 1 file:
* new class !ConsensusTree
- moved globals from CT_ctree.cxx there
- clients use class !ConsensusTree
61 lines of code changed in 7 files:
* define a strict order on partitions. criteria are
- partition-freq / "leaf-edgeness"
- min. edge->tip distance
- branchlen to subtree
- unique partition id
* insert partitions in that order + strictly sort sons at furcations
- generated trees no longer depend on hashkey, hence it no longer depends on names-order
- removed code to sort names before tree-generation
- removed code to sort trees afterwards
* insert leaf-edges as final step (they always fit)
* do not insert root-edge as final-step (often a leaf edge was used)
- instead insert it as first step (using the most-probable non-leaf-edge as root-edge)
* updated test-results
* removed ARB-legend from help
- there never was any smart method which removed "wandering" species from consensus trees, it just was an ancient bug
794 lines of code changed in 17 files:
* document lengthsum for tree1
12 lines of code changed in 1 file:
* calculating bootstrap-trees with active filter
- now bootstraps filtered positions
- before it did bootstrap X random positions from the unfiltered alignment (with X=size of filter). That was more jackknifing than bootstrapping.
33 lines of code changed in 5 files:
* avoid crash @calcbootstraptree when no species were marked (but 'marked' is selected)
1 lines of code changed in 1 file:
* toggle to update test results
20 lines of code changed in 1 file:
* fix for NDEBUG mode (broken by [8473])
10 lines of code changed in 1 file:
* insert all childs at multifurcations with more than 2 subtrees
- now consense trees always contain all species of all input trees (fixes #182)
- generates multifurcations in tree
* update test-results
- since species were added to test-trees 2+3, their intree distances have grown
199 lines of code changed in 7 files:
* test intree-distances of generated trees
13 lines of code changed in 1 file:
* minor refactorings
62 lines of code changed in 3 files:
* partition tree now fulfills stricter requirements:
- tree is complete (each father partition is the sum of its child partitions)
- all leaf partitions are single species
4 lines of code changed in 1 file:
* part_key generated negative hash keys
- that caused several lost partitions, resulting in invalid trees under certain circumstances
- fix changes test-results (tree generation depends on hash-keys)
493 lines of code changed in 7 files:
* various refactorings (performed while digging for non-determinism)
- use references to pointers for functions which transfer ownership (and NULL the originating pointer). done in hash_insert, part_free, new_ntnode, ins_ntree, insert_ntree
- removed unused 'ntree_count'
* fixed a bug in part_size
224 lines of code changed in 10 files:
* added test which generates an invalid tree (as intended by [8455])
1195 lines of code changed in 5 files:
* branch-order (but not topology) of CONSENSUS_TREE depends on the order of the names passed to ctree_init [sic]
- the order of the names defines which species corresponds to which bit in partitions; these bits go into hash key which influences the order in which subtrees are added
- workaround: for tests, sort names before calling ctree_init => behaves deterministic
* !OccurCount was broken (same species in different input trees were handles as separate species)
* reactivated all tests
- updated expected results
- test-data no longer generates an invalid tree (as intended by [8455])
* arb_consensus_tree logs how many species have been inserted into the output tree
* use copies for save/expected name (behaved different in NDEBUG mode)
233 lines of code changed in 6 files:
- helper class to calculate checksums for complex custom data structures
80 lines of code changed in 2 files:
- make tools depend on CONSENSUS_TREE/CONSENSUS_TREE.a
1 lines of code changed in 1 file:
* added most simple test (create consensus tree of 1 tree)
- deactivated other tests
- reactivated assertions marking the 2 known bugs (they do not occur in this example)
107 lines of code changed in 3 files:
- only unlink saved consensus-tree if the file exists (failed in some nightly builds)
4 lines of code changed in 1 file:
* made PART-params const AFAP
* renamed part-query-functions
* check partition-tree is well-formed
78 lines of code changed in 5 files:
* always run both tests via CLI
11 lines of code changed in 1 file:
* do not use 0 as value in Name_hash (did not harm)
* moved debug flags into one header
* print_ntree prints partitions aligned or indented
* DRYed inlined part_invert()-code
127 lines of code changed in 8 files:
* added explicit init/cleanup functions for each module in CONSENSUS_TREE
- assertions against wrong use
- added missing cleanup calls
* moved visible globals into CT_ctree.cxx
* part_init(): dump globals + assert no space wasted
* added test for part_init()
188 lines of code changed in 16 files:
* add debug code dumping drops
38 lines of code changed in 3 files:
* added second test (which drops some tree nodes)
- deactivated 1st test (due to non-deterministic behavior)
- DRYed both tests
931 lines of code changed in 7 files:
- document that consensus tree generation is non-deterministic (succeeding test fails when run again)
5 lines of code changed in 1 file:
- unit-test macros to document unwanted crashes/assertion failures
48 lines of code changed in 1 file:
* document a case where CONSENSUS_TREE generates an invalid tree (one inner-node has only one child)
Note: see also [8468] and [8469]
34 lines of code changed in 2 files:
- fix memleak
1 lines of code changed in 1 file:
* added new tool arb_consensus_tree
- merges multiple trees into a consensus tree (like done for ARB-NJ-Bootstrap-Tree)
* use a stable sort on generated trees to make them comparable for unit-tests
- added test merging 4 trees into one consensus tree
568 lines of code changed in 12 files:
* adds test data for consense tree
335 lines of code changed in 5 files:
* added GBT_is_invalid (check tree and return error if invalid)
* check generated NJ tree for validity
* CONSENSUS_TREE
- fixed several remarks
- slight refactorings
- added assertion where invalid NJ-trees are generated (inner node with 1 son)
79 lines of code changed in 9 files:
* moved DI_MATRIX::ROOT into own class DI_GLOBAL_MATRIX
- create one instance GLOBAL_MATRIX
- can callback on change (used to hide matrix window)
* avoid recalculation of matrix when building NJ tree
73 lines of code changed in 3 files:
- added static methods to DI_MATRIX for deleting/replacing ROOT matrix
34 lines of code changed in 2 files:
* store current modal dialog in AW_root
- raise it whenever some disabled callback is suppressed
- position it under mouse for most callback (do not change pos for focus, expose, resize, help and close callbacks)
35 lines of code changed in 5 files:
* added function to test for global/window-local focus-callbacks
- handle window-local focus-callbacks in a list
41 lines of code changed in 5 files:
- fixed incomplete dependencies for AW_window_ogl.o
8 lines of code changed in 1 file:
- 'make clean' did not work, when gcc-version changed on non-clean source-dir
2 lines of code changed in 1 file: