ourMELONS/TODO.md

47 lines
3.1 KiB
Markdown
Raw Normal View History

2019-12-16 18:42:50 +01:00
# Roadmap for next stable release
## Minimum requirements
2019-12-16 17:47:25 +01:00
2019-12-12 14:58:39 +01:00
For the first stable release of rBAPS, the following features should be implemented:
2019-12-13 17:33:11 +01:00
- [ ] Clustering of populations (import `greedyPoPMix.m` from BAPS)
- [ ] Clustering of individuals (import `greedyMix.m` from BAPS)
- [ ] Spatial clustering of populations (import `spatialPoPMixture.m` from BAPS)
- [ ] Spatial clustering of individuals (import `spatialMixture.m` from BAPS)
- [ ] Admixture analysis (import `admix1.m` from BAPS)
2019-12-12 14:58:39 +01:00
2019-12-13 17:33:11 +01:00
Note to contributors: as tasks get finished, please update this file with an `x` and keep it there. This should help us fill out a changelog for an eventual stable release.
2019-12-16 17:47:25 +01:00
2019-12-16 18:42:50 +01:00
## Wishlist
The list below contains non-essential but nice-to-have tasks for the next stable release.
2020-03-24 15:54:48 +01:00
- [ ] Implement sparse matrix optimizations from [`fastbaps`](https://github.com/gtonkinhill/fastbaps)
- [ ] Implement plotting functionality from [`starmie`](https://github.com/sa-lee/starmie)
2020-01-15 15:30:22 +01:00
- [ ] Standardize capitalization of function names
- [ ] Standardize capitalization of function arguments
2019-12-17 15:36:20 +01:00
- [ ] Replace redundant functions (ex.: `randga`)
2019-12-16 18:42:50 +01:00
2019-12-16 17:47:25 +01:00
# Known pitfalls
2020-01-15 17:05:45 +01:00
The following behavioral differences have been detected between the Matlab functions and their R counterparts. In order to save time, these differences will not be addressed, since they could require extensive reworking of a function. However, such differences may very well cause unexpected problems in some situations, which is why compiling this list is so important. The tables below might provide a good starting point for identifying and fixing bugs.
As general remarks, one should keep in mind that:
- For compliance with IEC 60559, the `round` in base R rounds .5 to the nearest even integer, whereas the homonym function in Matlab rounds up (or down, if negative).
- Some clobal variables have been added as a new (last) argument to the function they appear in.
- When a function is defined on Matlab with multiple outputs, as in `[y1, y2] = f(x)`, it will output only `y1` if called without assignment, as in `f(3)`, or if called with a one-length assignment, as in `a = f(3)`. In order to receive the full output, one must assign two variables to the left side of the assignment operator, as in `[a, b] = f(3)`. rBAPS Functions that might be affected by this behavior include `etsiParas`.
## Functional differences in rBAPS functions
2019-12-16 17:47:25 +01:00
2020-01-14 16:37:00 +01:00
| Function | Argument | Value | Matlab output | R output |
| ----------------- | ------------------ | -------------- | --------------------- | ------------------------------- |
| `ownNum2Str` | `number` | `NaN` | `'NAN'` | error |
| `ownNum2Str` | `number` | `<vector>` | `'<vector elements>'` | `'<vector elements>'` + warning |
| `repmat` | `length(n)` | `> 2` | > 2D matrix | 2D matrix |
2019-12-17 16:38:55 +01:00
2020-01-15 17:05:45 +01:00
## Functional differences in base Matlab functions
2019-12-17 16:38:55 +01:00
2020-01-15 17:05:45 +01:00
Function | Matlab output | R output
-------- | ------------- | --------
`max` | Can handle complex numbers | Cannot handle complex numbers