Note
This tool was built for Scoary2!
This is a simple, static HTML/JS data exploration that allows you to explore the results of mGWAS software, particularly large phenotypic datasets.
The app produces two types of HTML files that can be opened in any browser:
overview.html
: A simple overview of all traits in the dataset.trait.html
: A more detailed view of a single trait.
The usage of this app is described on the Scoary2 wiki.
- Using pip:
pip install mgwas-data-exploration-app
- Using docker:
docker pull troder/scoary-2
The app expects the following folder structure:
.
└── workdir
├── summary.tsv
├── traits.tsv
├── tree.nwk
├── isolate_info.tsv (optional)
└── traits
├── trait1
│ ├── coverage-matrix.tsv
│ ├── meta.json
│ ├── result.tsv
│ └── values.tsv
├── trait2
│ └── ...
└── ...
summary_df
: A table with the results of the mGWAS analysis. Rows: traits; columns: genes. (Separator: tab)traits_df
: A table with the metadata of the traits. Rows: traits; columns: metadata. (Separator: tab)workdir
: Folder where the mGWAS output must be located, exepect to find a folder 'traits' with subfolders for each trait.is_numeric
: Whether the data is numeric or binary.app_config
: A JSON file that overwrites the default app config. See the default config.json. (Optional)distance_metric
: The distance metric for the clustering of binary data. See the scipy documentation. (Binary data only; default: jaccard)linkage_method
: The linkage method for the clustering. One of [single, complete, average, weighted, ward, centroid, median]. (Default: ward)optimal_ordering
: Whether to use optimal ordering. See scipy.cluster.hierarchy.linkage (Default: True)corr_scale
: Whether to scale numeric data before clustering. (Numeric data only; default: True)corr_method
: The correlation method for numeric data. One of [pearson, kendall, spearman]. (Numeric data only; default: pearson)dendrogram_x_scale
: The x-axis scale for the dendrogram. One of [linear, squareroot, log, symlog, logit]. (Default: linear)scores_x_scale
: The x-axis scale for the scores plot. One of [linear, manhattan]. (Default: linear)
Get help with mgwas-data-exploration-app --help
or reading the docstring of main.py.
Python
Click here to expand.
from mgwas_data_exploration_app.main import mgwas_app
mgwas_app(
summary_df="summary.tsv", # or a pandas.DataFrame
traits_df="traits.tsv", # or a pandas.DataFrame
workdir="out",
is_numeric=False,
app_config="app_config.json", # or dict
distance_metric="jaccard",
linkage_method="ward",
optimal_ordering=True,
corr_scale=True,
corr_method="pearson",
dendrogram_x_scale="linear",
scores_x_scale="linear",
)
Command line
Click here to expand.
mgwas-data-exploration-app \
--summary summary.tsv \
--traits traits.tsv \
--workdir out \
--is-numeric False \
--app-config None \
--distance-metric jaccard \
--linkage-method ward \
--optimal-ordering True \
--corr-scale True \
--corr-method pearson \
--dendrogram-x-scale linear \
--scores-x-scale linear
This project is built using the following libraries:
- PapaParse for parsing the CSV files
- Bootstrap for the layout
- SlimSelect for the dropdowns
- DataTables and jQuery for the tables
- Plotly for the plots
- Phylocanvas for the phylogenetic trees
- Chroma.js for the color scales
- Popper.js for the tooltips