Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add conda-forge to Circle CI and include conda-forge installation instructions #521

Merged
merged 3 commits into from
Sep 8, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,37 @@ jobs:
python -c "import pymks; pymks.test()"


conda_forge:
docker:
- image: continuumio/miniconda3

working_directory: ~/repo-conda-forge-install

steps:

- checkout

- run:
name: Setup
command: |
conda create -n conda-forge python=3
source activate conda-forge
conda install -c conda-forge pymks
python setup.py develop

- run:
name: Test
no_output_timeout: 30m
command: |
set -e
source activate conda-forge
python -c "import pymks; pymks.test()"


workflows:
version: 2
test:
jobs:
- conda_develop
- pip_install
- conda_forge
69 changes: 37 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,33 +28,33 @@ alt="Travis CI">
</a>


PyMKS is an open source, pythonic implementation of the methodologies
developed under the aegis of Materials Knowledge System (MKS) to build
PyMKS is an open source, pythonic implementation of the methodologies
developed under the aegis of Materials Knowledge System (MKS) to build
salient process-structure-property linkages for materials science applications.
PyMKS provides for efficient tools for obtaining a digital, uniform grid representation
of a materials internal structure in terms of its local states, and computing hierarchical
descriptors of the structure that can be used to build efficient machine
PyMKS provides for efficient tools for obtaining a digital, uniform grid representation
of a materials internal structure in terms of its local states, and computing hierarchical
descriptors of the structure that can be used to build efficient machine
learning based mappings to the relevant response space.


The various materials data analytics workflows developed under the MKS paradigm confirm to
the data transformation pipeline architecture typical to most Data Science workflows. The workflows
can be boiled down to a data preprocessing step, followed by a feature generation step (fingerprinting),
and a model construction step (including hyper parameter optimization). PyMKS, written in a functional
programming style and supporting distributed computation (multi-core, multi-threaded, cluster), provides
modular functionalities to address each of these data transformation steps, while maximally leveraging
The various materials data analytics workflows developed under the MKS paradigm confirm to
the data transformation pipeline architecture typical to most Data Science workflows. The workflows
can be boiled down to a data preprocessing step, followed by a feature generation step (fingerprinting),
and a model construction step (including hyper parameter optimization). PyMKS, written in a functional
programming style and supporting distributed computation (multi-core, multi-threaded, cluster), provides
modular functionalities to address each of these data transformation steps, while maximally leveraging
the capabilities of the underlying computing environment.


PyMKS consists of tools to compute 2-point statistics, tools for both homogenization
and localization linkages, and tools for discretizing the microstructure. In addition,
PyMKS has modules for generating synthetic data sets using conventional numerical
simulations.
PyMKS consists of tools to compute 2-point statistics, tools for both homogenization
and localization linkages, and tools for discretizing the microstructure. In addition,
PyMKS has modules for generating synthetic data sets using conventional numerical
simulations.

To learn about PyMKS start with the [PyMKS examples](./index.ipynb),
especially the [introductory example](notebooks/intro.ipynb).
To learn more about the methods consult the
[technical overview](http://pymks.org/en/latest/rst/notebooks/tech_overview.html)
To learn about PyMKS start with the [PyMKS examples](./index.ipynb),
especially the [introductory example](notebooks/intro.ipynb).
To learn more about the methods consult the
[technical overview](http://pymks.org/en/latest/rst/notebooks/tech_overview.html)
for an introduction.


Expand All @@ -78,29 +78,34 @@ tracker](https://github.com/materialsinnovation/pymks/issues).

To install using [Conda][conda],

$ cd pymks
$ conda install -c conda-forge pymks

or to create a development environment use,

$ conda env create -f environment.yml
$ conda activate pymks
$ python setup.py install
$ python setup.py develop

### Nix
### Pip

[Nix](https://nixos.org/nix/) is a seamless way to install
PyMKS. After [installing
Nix](https://nixos.org/nix/manual/#chap-quick-start), run
Install a minimal version of PyMKS with

$ nix-shell
$ pip install pymks

to drop into a shell with PyMKS and all its requirements available.
This is enough to run the tests, but not the examples. Some optional
packages are not available via Pip. To create a development
environment use,

#### Pip
$ pip install .

Install a minimal version of PyMKS with
### Nix

$ pip install pymks
Follow the [Nix installation
guild](https://nixos.org/nix/manual/#chap-quick-start) and then run

This is enough to run the tests, but not the examples. Some optional
packages are not available via Pip.
$ nix-shell

to drop into a shell with PyMKS and all its requirements available.

## Testing

Expand Down
2 changes: 1 addition & 1 deletion notebooks/fiber.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,7 @@
"metadata": {},
"outputs": [],
"source": [
"assert (2 <= grid_search.best_params_.get('poly__degree') <= 3), grid_search.best_params_.get('poly__degree')\n",
"assert (1 <= grid_search.best_params_.get('poly__degree') <= 3), grid_search.best_params_.get('poly__degree')\n",
"assert (4 <= grid_search.best_params_.get('pca__n_components') <= 6), grid_search.best_params_.get('pca__n_components')\n",
"assert np.allclose(grid_search.score(x_test, y_test), 1.0, rtol=2e-2), grid_search.score(x_test, y_test)"
]
Expand Down