{"id":32175297,"url":"https://github.com/materialsinnovation/pymks","last_synced_at":"2026-02-22T14:43:41.901Z","repository":{"id":37623039,"uuid":"14182212","full_name":"materialsinnovation/pymks","owner":"materialsinnovation","description":"Materials Knowledge System in Python","archived":false,"fork":false,"pushed_at":"2023-01-12T21:28:25.000Z","size":263278,"stargazers_count":118,"open_issues_count":34,"forks_count":79,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-10-21T19:39:09.871Z","etag":null,"topics":["data-science","machine-learning","materials-science","python"],"latest_commit_sha":null,"homepage":"https://pymks.readthedocs.io/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/materialsinnovation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.md","codeowners":null,"security":null,"support":null}},"created_at":"2013-11-06T18:55:00.000Z","updated_at":"2025-07-10T22:36:09.000Z","dependencies_parsed_at":"2023-02-09T13:31:31.231Z","dependency_job_id":null,"html_url":"https://github.com/materialsinnovation/pymks","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/materialsinnovation/pymks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/materialsinnovation%2Fpymks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/materialsinnovation%2Fpymks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/materialsinnovation%2Fpymks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/materialsinnovation%2Fpymks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/materialsinnovation","download_url":"https://codeload.github.com/materialsinnovation/pymks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/materialsinnovation%2Fpymks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29716358,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T13:30:57.152Z","status":"ssl_error","status_checked_at":"2026-02-22T13:30:28.561Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-science","machine-learning","materials-science","python"],"created_at":"2025-10-21T19:31:38.023Z","updated_at":"2026-02-22T14:43:41.892Z","avatar_url":"https://github.com/materialsinnovation.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PyMKS Overview\n\n\u003ca href=\"https://travis-ci.org/materialsinnovation/pymks\" target=\"_blank\"\u003e\n\u003cimg src=\"https://api.travis-ci.org/materialsinnovation/pymks.svg\"\nalt=\"Travis CI\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/materialsinnovation/pymks/blob/master/LICENSE.md\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/license-mit-blue.svg\" alt=\"License\" height=\"18\"\u003e\n\u003c/a\u003e\n\u003ca href=\"http://pymks.readthedocs.io/\"\u003e\n\u003cimg src=\"https://readthedocs.org/projects/pymks/badge/?version=latest\" alt=\"Documentation Status\" height=\"18\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://pypi.python.org/pypi/pymks\"\u003e\n\u003cimg src=\"https://badge.fury.io/py/pymks.svg\" alt=\"PyPI version\" height=\"18\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://circleci.com/gh/materialsinnovation/pymks\"\u003e\n\u003cimg src=\"https://circleci.com/gh/materialsinnovation/pymks.svg?style=shield\" alt=\"Circle CI\" height=\"18\"\u003e\n\u003c/a\u003e\n\nPyMKS is an open source, Pythonic implementation of the methodologies\ndeveloped under the aegis of Materials Knowledge System (MKS) to build\nsalient process-structure-property linkages for materials science\napplications.  PyMKS provides for efficient tools for obtaining a\ndigital, uniform grid representation of a materials internal structure\nin terms of its local states, and computing hierarchical descriptors\nof the structure that can be used to build efficient machine learning\nbased mappings to the relevant response space.\n\nThe various materials data analytics workflows developed under the MKS\nparadigm confirm to the data transformation pipeline architecture\ntypical to most Data Science workflows. The workflows can be boiled\ndown to a data preprocessing step, followed by a feature generation\nstep (fingerprinting), and a model construction step (including hyper\nparameter optimization). PyMKS, written in a functional programming\nstyle and supporting distributed computation (multi-core,\nmulti-threaded, cluster), provides modular functionalities to address\neach of these data transformation steps, while maximally leveraging\nthe capabilities of the underlying computing environment.\n\nPyMKS consists of tools to compute 2-point statistics, tools for both homogenization\nand localization linkages, and tools for discretizing the microstructure. In addition,\nPyMKS has modules for generating synthetic data sets using conventional numerical\nsimulations.\n\nTo learn about PyMKS start with the [PyMKS examples][EXAMPLES], especially the\n[introductory example](notebooks/intro.ipynb). To learn more about the\nmethods consult the [technical overview](notebooks/tech_overview.ipynb)\nfor an introduction.\n\nThe two principle objects that PyMKS provides are the\n[TwoPointCorrelation][TwoPointCorrelation]\ntransformer and the\n[LocalizationRegressor][LocalizationRegressor]\nwhich provide the homogenization and localization functionality. The\nobjects provided by PyMKS all work as either transformers or\nregressors in a Scikit-Learn pipeline and use both Numpy and Dask\narrays for out-of-memory, distributed or parallel computations. The\nout-of-memory computations are still in an experimental stage as of\nversion 0.4 and some issues still need to be resolved.\n\nThis effort has been supported with grants from NIST and the Vannevar Bush Fellowship to Professor Kalidindi at Georgia Tech.\n\n\n\n## Feedback\n\nPlease submit questions and issues on the [GitHub issue\ntracker](https://github.com/materialsinnovation/pymks/issues).\n\n## Installation\n\n### Conda\n\nTo install using [Conda][conda],\n\n    $ conda install -c conda-forge pymks\n\nTo create a development environment clone this repository and run\n\n    $ conda env create -f environment.yml\n    $ conda activate pymks\n    $ python setup.py develop\n\nin the base directory.\n\n### Pip\n\nInstall a minimal version of PyMKS with\n\n    $ pip install pymks\n\nThis is enough to run the tests, but not the examples. Some optional\npackages are not available via Pip. To create a development\nenvironment clone this repository and run\n\n    $ pip install .\n\nin the base directory.\n\n### Nix\n\nFollow the [Nix installation\nguide](https://nixos.org/nix/manual/#chap-quick-start) and then run\n\n    $ export NIX_VERSION=21.05\n    $ export PYMKS_VERSION=0.4.1\n    $ nix-shell \\\n        -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/${NIX_VERSION}.tar.gz \\\n        -I pymks=https://github.com/materialsinnovation/pymks/archive/refs/tags/v${PYMKS_VERSION}.tar.gz \\\n        -E 'with (import \u003cnixpkgs\u003e {}); mkShell { buildInputs = [ (python3Packages.callPackage \u003cpymks\u003e { graspi = null; }) ]; }'\n\nto drop into a shell with PyMKS and all its requirements available. To\ncreate a development environment with Nix clone this repository and\nrun\n\n    $ nix-shell\n\nin the base directory.\n\n### Docker\n\nPyMKS has a docker image avilable via\n[docker.io](https://hub.docker.com/repository/docker/wd15/pymks). Assuming\nthat you have a working version of Docker, use\n\n    $ docker pull docker.io/wd15/pymks\n    $ docker run -i -t -p 8888:8888 wd15/fipy:latest\n    # jupyter notebook --ip 0.0.0.0 --no-browser\n\nThe PyMKS example notebooks are available inside the image after\nopening the Jupyter notebook from http://127.0.0.1:8888. See\n[DOCKER.md](./DOCKER.md) for more details.\n\n## Optional Packages\n\nPackages that are optional when using PyMKS.\n\n### Sfepy\n\n[Sfepy](http://sfepy.org/doc-devel/index.html) is a python based\nfinite element solver. It's useful for generating data for PyMKS to\nuse for machine learning tasks. It's used in quite a few tests, but it\nisn't strictly necessary to use PyMKS.  Sfepy will automatically\ninstall when using Nix or Conda, but not when using Pip. See the\n[Sfepy installation\ninstructions](http://sfepy.org/doc-devel/installation.html) to install\nin your environment.\n\n### GraSPI\n\nGraSPI is a C++ library with a Python interface for creating materials\ndescriptors using graph theory. See the [API documentation][GRAPH]\nfor more details. Currently, only the Nix installation builds with\nGraSPI by default To switch off GraSPI when using Nix use,\n\n    $ nix-shell --arg withGraspi false\n\n## Testing\n\nTo test a PyMKS installation use\n\n    $ python -c \"import pymks; pymks.test()\"\n\n## Citing\n\nPlease cite the following if you happen to use PyMKS for a\npublication.\n\n - Brough, D.B., Wheeler, D. \u0026 Kalidindi, S.R. Materials Knowledge\n   Systems in Python—a Data Science Framework for Accelerated\n   Development of Hierarchical Materials. Integr Mater Manuf Innov 6,\n   36–53 (2017). https://doi.org/10.1007/s40192-017-0089-0\n   \n\n[conda]: https://docs.conda.io/en/latest/\n[EXAMPLES]: https://pymks.readthedocs.io/en/stable/EXAMPLES.html\n[TwoPointCorrelation]: http://pymks.readthedocs.io/en/stable/API.html#pymks.TwoPointCorrelation\n[LocalizationRegressor]: http://pymks.readthedocs.io/en/stable/API.html#pymks.LocalizationRegressor\n[GRAPH]: http://pymks.readthedocs.io/en/stable/API.html#pymks.graph_descriptors\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaterialsinnovation%2Fpymks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaterialsinnovation%2Fpymks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaterialsinnovation%2Fpymks/lists"}