Perform analysis and generate charts on professional Go games
Requirements:
-
Python, tested in 2.7
-
Bash, for auxiliary scripts
-
Git, to handle the repository
-
Pip, to install some of the modules
Python modules:
To install GOAT and all requirements and modules in Debian/Ubuntu:
Install prerequisites:
sudo apt-get install git python-pip liblzma-dev
Install python modules:
sudo apt-get install python-{progressbar,numpy,scipy,matplotlib}
sudo pip install gomill backports.lzma
Checkout the source code:
git clone https://github.com/MestreLion/goat.git
Import:
Decompress the pre-built library in games/library/library.tar.bz2
to ~/.local/share/goat/library
-
You can also manually rebuild the library using the games in
games/sources
, a collection of nearly 280 thousand games in SGF format. Out of those, around 30 thousand games meet the default criteria for goat analysis:./run.py import games/sources --games 30000
The library itself takes 57MB of disk space, and the import will take around 1h40m. This will also pre-render the games' boards and save them to ~/.local/share/goat/boards
. This takes around 3.6GB of disk space!
Analysis
./run.py compute [--games NUM]
This will run the full analysis suite. It will store data in ~/.local/share/goat/hooks
. Use the optional --games
to limit the number of games processed. Computing the whole library takes around 30 minutes.
Display
./run.py display
Generate charts on data generated by a previous run of compute
. This takes less than a minute once library is pre-computed.
Results
Results from all steps, import, compute and display, are saved to ~/goat
. Each run creates a new subfolder with a timestamp to store the results of that run. Charts are saved in PNG, SVG and EPS format, and data for auditing purposes are saved in JSON format.