1
0
Fork 0
mirror of https://github.com/MillironX/beefblup.git synced 2024-09-20 21:12:03 +00:00
beefblup/README.md

121 lines
5.3 KiB
Markdown
Raw Normal View History

2020-02-16 22:45:39 +00:00
# [:cow:]: beefblup
2018-09-10 23:05:30 +00:00
2020-02-16 22:45:39 +00:00
beefblup is an easy-to-use program for ranchers to calculate expected breeding
values (EBVs) for their own beef cattle. Why? It's part of my effort to
**\#KeepEPDsReal**
2019-09-28 07:20:02 +00:00
2020-02-16 22:45:39 +00:00
> **Notice:** beefblup for MATLAB and beefblup for Python are going away. I'm
> going to make changes here soon that will break the MATLAB version of
> beefblup, and I don't intend to update it anymore. (How many ranchers do you
> know that can afford MATLAB?) As for beefblup for Python, it never really got
> off the ground, and beefblup for Julia has superceded it.
2019-08-03 02:27:05 +00:00
2020-02-16 22:45:39 +00:00
## For Users
### Installation
#### Windows (My Platform)
1. Press the **Windows Key** + **X**, and then press **A**, and select **Yes**
2. [Install Chocolatey](https://chocolatey.org/install) using the PowerShell
window that opened
3. Close PowerShell
4. Press the **Windows Key** + **X**, and then press **A**, and select **Yes**
(Again)
5. Type `choco install Julia -y` into PowerShell and press **Enter**
6. Close PowerShell once Chocolatey has finished
7. Download and unzip beefblup to somewhere you will remember it
8. Hold down the **Shift** key, and **right-click** in a blank space in the
"Julia" folder of beefblup
9. Click **Open PowerShell window here"
10. Type `julia install.jl` into PowerShell and press **Enter**
11. Close PowerShell once Julia has finished
Why do you need Chocolatey? Because it allows you to access Julia (and therefore
beefblup) from the **Shift**+**Right-click** menu directly, without having to
worry about `cd` commands or editing your `%PATH%`. That's good, right?
#### Mac
I don't know. I can't afford one. If any of you super-privileged Apple snobs
out there run beefblup, please add proper instructions here and submit a pull
request.
#### Debian/Ubuntu Linux
TODO: Add instructions here. This is slightly complicated since there is no
Julia package in the main repositories, and I don't use Debian distros enough to
know where to find a third-party repos
#### Fedora Linux
TODO: Add instructions here. I have this info, but it's on the work computer.
2018-09-10 23:05:30 +00:00
## How to Use
2020-02-16 22:45:39 +00:00
1. Choose a spreadsheet appropriate to the trait you want to analyze from the `Excel` folder, and save it to your hard drive
2018-09-10 23:05:30 +00:00
2. Place your data into the structure described by the spreadsheet
2019-09-28 07:20:02 +00:00
3. If you wish to add more contemporary group traits to your analysis, replace or add them to the right of the Purple section
2019-10-18 16:11:03 +00:00
4. Open MATLAB
5. Enter the following lines in the command window:
```
websave('beefblup.zip','https://github.com/MillironX/beefblup/archive/master.zip');
unzip('beefblup.zip');
cd beefblup-master/MATLAB
beefblup
```
2020-02-16 22:45:39 +00:00
2018-09-10 23:05:30 +00:00
6. Select the spreadsheet file you just placed your data into
7. Select a file that you would like to save your results to
8. Breeding values and contemporary group adjustments will be outputted to the file you selected
2020-02-16 22:45:39 +00:00
## For Programmers
### Development Roadmap
2018-09-10 23:05:30 +00:00
2020-02-16 22:45:39 +00:00
| Version | Feature |
| ------- | ------------------------------------------------------------------- |
| v0.1 | Julia port of original MATLAB script |
| v0.2 | Spreadsheet format redesign |
| v0.3 | API rewrite (change to function calls instead of script running) |
| v0.4 | Add GUI for all options |
| v0.5 | Automatically calculated Age-Of-Dam, Year, and Season fixed-effects |
| v0.6 | Repeated measurement BLUP (aka dairyblup) |
| v0.7 | Multiple trait BLUP |
| v0.8 | Maternal effects BLUP |
| v0.9 | Genomic BLUP |
| v0.10 | beefblup binaries |
| v1.0 | [Finally, RELEASE!!!](https://youtu.be/Zd-up5EgoMw?t=5049) |
2018-09-10 23:05:30 +00:00
2020-02-16 22:45:39 +00:00
I will gladly take input on the following:
* Converting MATLAB scripts to Python
2018-09-10 23:05:30 +00:00
* Optimizing code sections
2019-09-28 07:20:02 +00:00
* Use triagonal shortcuts to generate the additive relationship matrix
* Solve implicit forms of the mixed-model equation
* Perform cannonical transformations for missing values
* Other similar improvements that I might not be aware of
* Creation of scripts to handle additional forms of BLUP
* Mult-trait (MBLUP)
* Maternal-trait
* Genomic-enhanced (GBLUP) - this will require the creation of a standard SNP spreadsheet format
* Creation of spreadsheets for additional traits
* Creation of wiki pages to explain what each script does
* The general rule is that **every** wiki page should be understandable to anyone who's passed high school algebra, while still being correct and informative
2020-02-16 22:45:39 +00:00
2019-09-28 07:20:02 +00:00
Note that I intend to implement all of the items above eventually, but progress is slow since I'm learning as I go.
If you are writing code, please keep the code clean:
* Run "Smart Indent" in the MATLAB editor on the entire file before checking it in
* Name variables in full word English using all lowercase, unless the matrix name is generally agreed upon in academic papers (i.e. A is the additive relationship matrix)
2018-09-10 23:05:30 +00:00
* For MATLAB, functions go in a separate file
* Comments go before a code block: no inline comments
## License
2019-08-03 02:27:05 +00:00
Distributed under the 3-Clause BSD License