SESAMI APP

SESAMI APP: An Accessible Interface for Surface Area Calculation of Materials from Adsorption Isotherms - Published in JOSS (2023)

https://github.com/hjkgrp/sesami_web

Science Score: 100.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 11 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: acs.org, joss.theoj.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
    Organization hjkgrp has institutional domain (hjkgrp.mit.edu)
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Economics Social Sciences - 63% confidence
Mathematics Computer Science - 42% confidence
Last synced: 4 months ago · JSON representation ·

Repository

The interface to the SESAMI analysis tools

Basic Info
  • Host: GitHub
  • Owner: hjkgrp
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage: https://sesami-web.org
  • Size: 22.5 MB
Statistics
  • Stars: 9
  • Watchers: 5
  • Forks: 3
  • Open Issues: 0
  • Releases: 5
Created over 3 years ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

DOI DOI

Introduction

Forget about using an old excel spreadsheet from your co-workers! On-the-fly, the SESAMI (Script to Estimate the Surface Area of Materials from their Isotherms) website performs Brunauer-Emmett-Teller (BET), BET+Excess Sorption Work (ESW), and Machine Learning (ML) methods for surface area estimation in nanoporous materials. This website allows a user to upload either an Adsorption Information File (AIF) or a Comma Separated-Values (CSV) file.

This website is based on the MOFSimplify website developed by the Kulik Group at MIT.

For additional support, feedback, and inquiry, please raise a GitHub issue in this repo. For specific questions, contact Yongchul Chung at drygchung@gmail.com.

Sample Output

For the downloadable figures generated on the website, a user can adjust the font type, font size, dot-per-inch (dpi), and legend to their liking.

example_input

Website Configuration

The website is powered by Mongo DB 5.3.1 and Google Cloud Run.

Calculation Details

The SESAMI 1 algorithms employed in this code select the linear region from an isotherm and compute the surface area of the corresponding material. A detailed description of the algorithm can be found on page S5 of J. Phys. Chem. C 2019, 123, 33, 20195 - 20209. An excerpt from the SI is provided below for completeness.

BET Areas (SESAMI 1)

We consider the “right-most” region, which is the region having a high-pressure limit at the point where the first maximum of q(1 − p/p0) with respect to p/p0 occurs (q is the loading, p is the vapor pressure, and p0 is the saturation vapor pressure), as per consistency criterion 1, and a low-pressure limit at the lowest pressure point on the isotherm. Next, we consider a region that has the same upper pressure limit but a lower pressure limit that is shifted to the right by one point on the pressure axis. We continue to move the lower pressure limit to the right until we locate a region with 4 consecutive data points. Then, we shift the upper pressure limit to a smaller value by one point, and again move the lower pressure limit to the right as before until we reach another 4-point linear region. The process continues until we reach a 4-point region starting at the lowest pressure point on the isotherm, which we define as the “left-most” region. We select a linear region to compute the BET area that satisfies as many consistency criteria as possible and contains at least 4 points.

Best Region for BET Area Calculation

To select the best region (i.e., the linear region that satisfies the most consistency criteria), we search through all possible “linear” regions. Here, a linear region is a set of 4+ consecutive points having an R2 value greater than 0.998, and fulfilling consistency criteria 1 and 2. We start with the “right-most” region from the isotherm, and check if it is “linear.” If it is, we store it as the “current best region.” If not, we continue to consider subsequent regions until we find one that is “linear.” Then, we move on to other candidate regions at lower pressures.

If a region is not “linear” as judged by R2, it is disregarded. If it is “linear” and satisfies criteria 1 and 2, we check if it satisfies consistency criteria 3 and 4 and has an R2 > 0.9995. The satisfaction of all these conditions indicates that the region is suitable for BET analysis. If all conditions are satisfied, we choose the current region as the “final best region” and the algorithm ends. If not, we check if the current region satisfies more consistency criteria than the “current best region.” If it does, we replace the “current best region” with the current region. This process is repeated until we reach the “left-most” region. At this point, we end the search by choosing the “current best region” as the “final best region.” The final best region is used to compute the BET area for the structure. See the function picklen in betan.py.

The SESAMI 1 algorithm

BET + ESW Areas (SESAMI 1)

The BET + ESW areas are computed in the same way as the BET areas except that the algorithm is forced to include the first (lowest loading) ESW minimum in the selected region. Thus, the chosen region must satisfy consistency criteria 1 and 2 and have an R2 > 0.998, and include the relative pressure corresponding to the first ESW minimum point. The correct calculation of the BET + ESW areas depends on the correct identification of the ESW minimum. If the ESW minimum is wrongly identified, the BET + ESW area will also be wrong. Thus, we recommend that users ensure that the first minimum is correctly identified.

ML Areas (SESAMI 2)

The machine learning areas are computed using a Lasso linear regression model that takes as input the mean loading values of seven logarithmically divided pressure subregions. The model is trained on GCMC-calculated argon isotherms at 87 K. For more information, see Beyond the BET Analysis: The Surface Area Prediction of Nanoporous Materials Using a Machine Learning Method and SESAMI_2.py.

Preparing Input Files

A user can provide an adsorption isotherm to the website as either an AIF file or a CSV file.

Use https://clownfish-app-lzoex.ondigitalocean.app/ to convert instrument output to AIF file ormat. - Details on AIF file formatting can be found in this repository. The website https://adsorptioninformationformat.com/ will reflect changes as they occur.

For inputting isotherm data as a CSV file, see this example.

Hosting Site on Your Computer

  1. Download and activate the required packages used by SESAMI web. This can be done in two ways:
    • Option 1: Make and activate a Conda environment using environment.yml. See this resource for more information.
    • Option 2: Install Python dependencies without Conda, referring to environment.txt for versioning information. These were the package versions used by the developers on macOS Ventura 13.3.1, on a 2020 MacBook Pro (non-M1).
  2. Use the following command in the terminal to run: python app.py
  3. Upload AIF or CSV formatted data.
  4. Click Run calculation and wait a few seconds.

Note, the front end of the website is index.html and the backend is app.py. The backend makes use of routines in the folder SESAMI, which contains the SESAMI 1 and 2 code.

When running the site locally, one should disable the "Share data with developers" option.

References

Authors

  • Gianmarco G. Terrones (SESAMI web interface development)
  • Archit Datar (SESAMI python code development)
  • Yongchul G. Chung (project supervision, Mongo DB Atlas and Google Cloud integration)

JOSS Paper Supplementary Files

Files used for software performance benchmarking can be found here.

Note: In the benchmarking of the JOSS paper, an older version of BETSI was used. The newer version has implemented bug fixes and makes successful predictions where the previous version did not. The updated BETSI results, corresponding to Tables 1-3 of the paper, are here and here.

Funding Acknowledgements

  • Gianmarco G. Terrones was supported by the Government of Portugal through the Portuguese Foundation for International Cooperation in Science, Technology and Higher Education and through the MIT Portugal Program.
  • Software and website development was supported by the Office of Naval Research under grant number N00014-20-1-2150, as well as by the National Research Foundation of Korea (NRF) under grant number 2020R1C1C1010373 funded by the government of Korea (MSIT).
  • Gianmarco G. Terrones was partially supported by an Alfred P. Sloan Foundation Scholarship (Grant Number G-2020-14067).

Owner

  • Name: Kulik Group
  • Login: hjkgrp
  • Kind: organization
  • Location: Cambridge, MA

Heather Kulik research group

JOSS Publication

SESAMI APP: An Accessible Interface for Surface Area Calculation of Materials from Adsorption Isotherms
Published
June 09, 2023
Volume 8, Issue 86, Page 5429
Authors
Gianmarco G. Terrones ORCID
Department of Chemical Engineering, Massachusetts Institute of Technology, Cambridge, MA, United States of America
Yu Chen ORCID
School of Chemical Engineering, Pusan National University, Busan, South Korea
Archit Datar ORCID
William G. Lowrie Department of Chemical and Biomolecular Engineering, The Ohio State University, Columbus, OH, United States of America
Li-Chiang Lin ORCID
Department of Chemical Engineering, National Taiwan University, Taipei, Taiwan
Heather J. Kulik ORCID
Department of Chemical Engineering, Massachusetts Institute of Technology, Cambridge, MA, United States of America, Department of Chemistry, Massachusetts Institute of Technology, Cambridge, MA, United States of America
Yongchul G. Chung ORCID
School of Chemical Engineering, Pusan National University, Busan, South Korea
Editor
David Hagan ORCID
Tags
SESAMI surface area isotherm BET BET+ESW machine learning

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- family-names: Terrones
  given-names: Gianmarco G.
  orcid: "https://orcid.org/0000-0001-5360-165X"
- family-names: Chen
  given-names: Yu
  orcid: "https://orcid.org/0000-0002-6530-0974"
- family-names: Datar
  given-names: Archit
  orcid: "https://orcid.org/0000-0002-5276-0103"
- family-names: Lin
  given-names: Li-Chiang
  orcid: "https://orcid.org/0000-0002-2821-9501"
- family-names: Kulik
  given-names: Heather J.
  orcid: "https://orcid.org/0000-0001-9342-0191"
- family-names: Chung
  given-names: Yongchul G.
  orcid: "https://orcid.org/0000-0002-7756-0589"
contact:
- family-names: Chung
  given-names: Yongchul G.
  orcid: "https://orcid.org/0000-0002-7756-0589"
doi: 10.5281/zenodo.7953483
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Terrones
    given-names: Gianmarco G.
    orcid: "https://orcid.org/0000-0001-5360-165X"
  - family-names: Chen
    given-names: Yu
    orcid: "https://orcid.org/0000-0002-6530-0974"
  - family-names: Datar
    given-names: Archit
    orcid: "https://orcid.org/0000-0002-5276-0103"
  - family-names: Lin
    given-names: Li-Chiang
    orcid: "https://orcid.org/0000-0002-2821-9501"
  - family-names: Kulik
    given-names: Heather J.
    orcid: "https://orcid.org/0000-0001-9342-0191"
  - family-names: Chung
    given-names: Yongchul G.
    orcid: "https://orcid.org/0000-0002-7756-0589"
  date-published: 2023-06-09
  doi: 10.21105/joss.05429
  issn: 2475-9066
  issue: 86
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 5429
  title: "SESAMI APP: An Accessible Interface for Surface Area
    Calculation of Materials from Adsorption Isotherms"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.05429"
  volume: 8
title: "SESAMI APP: An Accessible Interface for Surface Area Calculation
  of Materials from Adsorption Isotherms"

GitHub Events

Total
  • Create event: 2
  • Issues event: 1
  • Release event: 2
  • Watch event: 3
  • Push event: 7
Last Year
  • Create event: 2
  • Issues event: 1
  • Release event: 2
  • Watch event: 3
  • Push event: 7

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 298
  • Total Committers: 2
  • Avg Commits per committer: 149.0
  • Development Distribution Score (DDS): 0.279
Past Year
  • Commits: 7
  • Committers: 1
  • Avg Commits per committer: 7.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Gianmarco g****s@g****m 215
Yongchul Chung d****g@g****m 83

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 2
  • Total pull requests: 26
  • Average time to close issues: 25 days
  • Average time to close pull requests: 11 minutes
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 26
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: about 2 months
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • GaillardTom (1)
  • yangmr04 (1)
Pull Request Authors
  • mtap-research (25)
  • gianmarco-terrones (1)
Top Labels
Issue Labels
Pull Request Labels
enhancement (1) help wanted (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 20 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 5
  • Total maintainers: 1
pypi.org: sesami

Characterization Tools for Porous Materials Using Nitrogen/Argon Adsorption

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 20 Last month
Rankings
Dependent packages count: 10.3%
Average: 34.3%
Dependent repos count: 58.2%
Maintainers (1)
Last synced: 4 months ago

Dependencies

requirements.txt pypi
  • flask *
  • matplotlib *
  • pandas *
  • pymongo ==4.1.1
  • scipy *
  • sklearn *
  • statsmodels *
.github/workflows/CI.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • conda-incubator/setup-miniconda v2 composite
  • josStorer/get-current-time v2.0.2 composite
Dockerfile docker
  • python 3.10-slim build
.github/workflows/draft-pdf.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v1 composite
  • openjournals/openjournals-draft-action master composite
environment.yml pypi