Structure_threader

Description

A program to parallelize and automate the runs of Structure, fastStructure, MavericK and ALStructure software.

Requirements

Python 3. The main program only uses modules from the standard library. In order to draw the plots, matplotlib >= 1.4 is required. To run "fastChooseK.py" (fastStructure wrapper only), numpy is also required. In order to use "ALStructure", you need to have R installed too.

Where to get it

Contents

A word of caution

Structure_threader can be quite useful in automating and speeding up your analyses, however, in order to use it effectively you really should learn and understand how the wrapped programs work. It is highly recommended that you first learn to use the wrapped programs in their default implementations. And by "learning", we don't just mean "I know how to make it run.", but rather "I understand what each of the chosen parameters does, and why I selected each of them.". The paper An overview of STRUCTURE: applications, parameter settings, and supporting software is an excellent guide for understanding the parameterization of STRUCTURE. We do not know of a good "tutorial" for learning about fastStructure, and as such, the original research paper (paywalled), albeit a bit dense, is still the best place to learn about it. The documentation for MavericK, for instance, is quite comprehensive and a great resource to learn to use MavericK and consequently about the importance of proper MCMC chain mixing.

Other works

The script "fastChooseK.py" was taken from the original fastStructure repository, ported to python 3, largely modified to work as a module for the main script and re-licensed as GPLv3.

The scripts "harvesterCore.py" and "structureHarvester.py" were taken from the original structureHarverster repository, ported to python 3, and slightly modified to work as a module for the main script. Please see the "Citation" part of the README to know what to cite, should you use this module.

Binaries for fastStructure, STRUCTURE and MavericK are distributed in the pypi hosted version.

Bug reporting

Found a bug or would like a feature added? Or maybe drop some feedback? Just open a new issue on gitlab or on github.

License

GPLv3