https://github.com/arklumpus/smap
Evolution of Independent, Dependent and Conditioned Discrete Characters in a Bayesian Framework
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.1%) to scientific vocabulary
Repository
Evolution of Independent, Dependent and Conditioned Discrete Characters in a Bayesian Framework
Basic Info
- Host: GitHub
- Owner: arklumpus
- License: gpl-3.0
- Language: C#
- Default Branch: master
- Size: 55.9 MB
Statistics
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 1
- Releases: 8
Metadata Files
Readme.md
sMap: Evolution of Independent, Dependent and Conditioned Discrete Characters in a Bayesian Framework
Introduction
sMap is a program to perform stochastic mapping (Nielsen, 2002; Huelsenbeck, Nielsen and Bollback, 2003) analyses on discrete characters. This kind of analysis involves estimating substitution parameters, reconstructing ancestral states and simulating histories, in order to study the evolution of multiple types of discrete characters (e.g. morphological features, presence of genes, habitats...), without necessarily relying on a single phylogenetic tree.
sMap is written using .NET Core, and is available for Windows, macOS and Linux operating systems; the main program is a command-line utility, but a graphical front-end (sMap-GUI) is also provided. sMap is licensed under a GPLv3 license.
The sMap manual holds a detailed description of the programs and multiple tutorials. These are written mostly with the command-line version of sMap in mind, but it should be reasonably easy to follow them using the GUI version too.
Installing sMap
The easiest way to start using sMap is to install the program using the installer for your operating system.
Windows
First, please uninstall any previous versions of sMap.
Download sMap-win-x64.msi and double click it. The installer will guide you to the process, and will do three main things:
1. Copy the program files (by default in C:\Program Files).
2. Add the installation path to the PATH environment variable (so that you can recall sMap from the command line, wherever you are located).
3. Add a shortcut to sMap-GUI to the Start Menu.
Of course, 2 and 3 are optional, and you can decide to skip these steps during the installation.
You can now run the GUI version of sMap by using the shortcut and the command-line version by typing sMap in the command line (which you can open by pressing Win+R on your keyboard, typing cmd and pressing Enter).
macOS
Download sMap-mac-x64.pkg and double click it. The installer will guide you to the process, and will do two main things:
1. Copy the sMap app to the /Applications folder.
2. Create symlinks to the sMap executables (Blend-sMap, ChainMonitor, Merge-sMap, NodeInfo, Plot-sMap, Script-sMap, sMap, sMap-GUI, Stat-sMap) in the /usr/local/bin folder.
You can now run the GUI version of sMap by opening the app in your Applications folder and the command-line version by typing sMap in a terminal window.
Linux
sMap is officially supported on Debian bullseye+, Ubuntu 20.04.3+, Fedora 34+, and CentOS 7+. An automatic installer is available, which may also work on other distributions.
Open a terminal window. Download the installer using wget or curl (whichever you prefer/have available):
wget https://github.com/arklumpus/sMap/releases/latest/download/sMap-linux-x64.run
(To use curl, replace wget with curl -LO). Make the downloaded file executable and execute it as root:
chmod +x sMap-linux-x64.run
su -c "./sMap-linux-x64.run"
You should be prompted for the super-user password. The installer will:
- Copy the sMap files to
/usr/lib/sMap(this can be changed). - Create symlinks to the executables (
Blend-sMap,ChainMonitor,Merge-sMap,NodeInfo,Plot-sMap,Script-sMap,sMap,sMap-GUI,Stat-sMap) in/usr/bin(this step can be skipped).
You can now run the command-line version of sMap by typing sMap in the command line and (if you are using a desktop environment) the GUI version by typing sMap-GUI. You may wish to create a desktop shortcut to sMap-GUI using your distribution's tools.
Checking that everything works
After having installed sMap, you can run a simple analysis to confirm that everything works as it should. Here are separate instructions for the command-line and GUI version of sMap; ideally you should test both.
Command-line version (any OS)
Download Test-analysis.zip and save it in a location where you have write permissions (e.g. your Documents or Desktop folder).
Open a command-line window and navigate to that folder. Assuming that you have created symlinks/added sMap to the PATH environment variable, you can then type:
mkdir test-output
sMap -a Test-analysis.zip -o test-output/analysis
This will create a folder called test-output and run a quick Maximum-Likelihood analysis on the Cerataphidini dataset (Stern, 1998) that is also used for the tutorials in the sMap manual. The program should exit without error messages, and multiple files should appear in the test-output folder.
GUI version (any OS)
Download Cerataphidini.txt and Cerataphidini.tre. Open sMap-GUI and start the sMap Wizard. Choose Cerataphidini.txt as data file and Cerataphidini.tre as tree file; leave all other settings to default and click Confirm twice, then Run analysis.
Once the analysis finishes, close the dialog and the analysis window, then click on the Plot set 0... button and on Plot preview.... You should now see a plot of the analysis. If you do, congratulations: you have correctly installed sMap!
Alternative palettes and colour blindness
The plots produced by sMap convey information primarily through colour. The default palette used by sMap is not colour-blind safe; however, it is possible to enable alternative colour palettes that are colour-blind safe either during the sMap installation process, or afterwards, following the instructions in Resources/Palettes.
Manual installation
If you wish to have more control over the installation process, you can manually install sMap following these instructions.
Windows
Download the sMap-win-x64.zip archive, which contains the binaries and libraries for sMap on Windows. Extract the compressed folder somewhere. You can now start the GUI version of sMap by double clicking the sMap-GUI.exe executable, or the command-line version by opening a command line window in the extracted folder and typing sMap.
If you wish, you can also add the folder where the sMap executables are located to the PATH environment variable:
- Press Win+R on the keyboard to bring up the "Run" window, and enter SystemPropertiesAdvanced, then press Enter.
- Click on the Environment Variables... button in the bottom-right corner.
- Double click on the Path entry in the User variables section.
- Double click on the first empty line and enter the path of the folder where you have extracted the sMap executables.
- Click OK three times.
macOS
Download the sMap-mac-x64.dmg disk image file and double click to mount it. Open the sMap disk that should have appeared on your desktop and drag the sMap app to the Applications folder. You can now start the GUI version of sMap using the icon in your applications and the command-line version by opening a terminal and typing:
/Applications/sMap.app/Contents/sMap/sMap
You can also create symlinks to the sMap executables in a folder that is included in your PATH (such as /usr/bin): open a terminal and type:
ln -s /Applications/sMap.app/Contents/sMap/Blend-sMap /Applications/sMap.app/Contents/sMap/ChainMonitor /Applications/sMap.app/Contents/sMap/Merge-sMap /Applications/sMap.app/Contents/sMap/NodeInfo /Applications/sMap.app/Contents/sMap/Plot-sMap /Applications/sMap.app/Contents/sMap/Script-sMap /Applications/sMap.app/Contents/sMap/sMap /Applications/sMap.app/Contents/sMap/sMap-GUI /Applications/sMap.app/Contents/sMap/Stat-sMap /usr/bin/
This will allow you to run sMap from the command line in any folder.
Linux
All distributions
Download the sMap-linux-x64.tar.gz archive and extract it:
wget https://github.com/arklumpus/sMap/releases/latest/download/sMap-linux-x64.tar.gz
tar -xzf sMap-linux-x64.tar.gz
rm sMap-linux-x64.tar.gz
Depending on your system, you may want to replace wget with curl -LO. This will create a folder called sMap-linux-x64, which contains the sMap executables. You can now run sMap by typing sMap-linux-x64/sMap and the GUI version by typing sMap-linux-x64/sMap-GUI.
You can also create symlinks to the sMap executables in a folder that is included in your PATH (such as /usr/bin). To do this, open a terminal and type:
ln -s "$(pwd)"/sMap-linux-x64/Blend-sMap "$(pwd)"/sMap-linux-x64/ChainMonitor "$(pwd)"/sMap-linux-x64/Merge-sMap "$(pwd)"/sMap-linux-x64/NodeInfo sMap-linux-x64/Plot-sMap sMap-linux-x64/Script-sMap "$(pwd)"/sMap-linux-x64/sMap "$(pwd)"/sMap-linux-x64/sMap-GUI "$(pwd)"/sMap-linux-x64/Stat-sMap /usr/bin/
If you wish, you can create a desktop shortcut to sMap-GUI using your distribution's tools.
Compiling sMap from source
To be able to compile sMap from source, you will need to install the .NET Core 6 SDK for your operating system.
You can use Microsoft Visual Studio to compile the program. The following instructions will cover compiling sMap from the command line, instead.
First of all, you will need to download the sMap source code: sMap-1.0.7.tar.gz and extract it somewhere.
Windows
Open a command-line window in the folder where you have extracted the source code, and type:
BuildAll <Target>
Where <Target> can be one of Win-x64, Linux-x64 or Mac-x64 depending on which platform you wish to generate executables for.
In the Release folder and in the appropriate subfolder for the target platform you selected, you will find the compiled program.
macOS and Linux
Open a terminal in the folder where you have extracted the source code, and type:
./BuildAll.sh <Target>
Where <Target> can be one of Win-x64, Linux-x64 or Mac-x64 depending on which platform you wish to generate executables for.
In the Release folder and in the appropriate subfolder for the target platform you selected, you will find the compiled program.
If you receive an error about permissions being denied, try typing chmod +x BuildAll.sh first.
Creating the installers
To create the installers, you will need a Windows machine with Visual Studio to create the Windows and Linux packages, and a macOS machine to create the macOS package.
After building the sMap release, open a Developer Command Prompt in the sMap source code folder, and type:
BuildBinaries-Win-x64 "path/to/certificate.pfx" "certificate_password"
bash -c ./BuildBinaries-Linux-x64.sh
These commands will create the installer for Windows and Linux, which will be placed in the Binary folder. To create the Windows installer, you need to supply a code-signing certificate in PFX or P12 format, together with the associated password. Such a certificate can be obtained (for a fee) from a certificate authority or can be a self-signed certificate.
You should now move to the macOS machine. To sign the app and the installer on macOS, you will need an Apple "Developer ID Application" certificate and a "Developer ID Installer" certificate, as well as an Apple ID and an app-specific password (which can be generated from the Apple ID page).
On the macOS machine, open a terminal in the folder where you have extracted the sMap source code and type:
./BuildBinaries-Mac-x64.sh "<Developer ID Application Identity>" "<Developer ID Installer Identity>" "<Apple ID>" "<app-specific password>"
Where <Developer ID Application Identity> and <Developer ID Installer Identity> are the names of the certificates in your keychain (e.g. "Developer ID Application: John Smith"). This should create, sign and notarize the installers for macOS in the Binary folder.
Licence
See the sMap manual for licensing information.
Owner
- Name: Giorgio Bianchini
- Login: arklumpus
- Kind: user
- Company: University of Bristol
- Website: https://giorgiobianchini.com
- Repositories: 8
- Profile: https://github.com/arklumpus
GitHub Events
Total
- Push event: 1
Last Year
- Push event: 1
Issues and Pull Requests
Last synced: over 1 year ago
All Time
- Total issues: 1
- Total pull requests: 2
- Average time to close issues: about 2 months
- Average time to close pull requests: 6 months
- Total issue authors: 1
- Total pull request authors: 1
- Average comments per issue: 3.0
- Average comments per pull request: 0.5
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 2
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- jezierskim (1)
Pull Request Authors
- dependabot[bot] (2)