nanojava

Java library for descriptor calculation for (nano)materials.

https://github.com/enanomapper/nanojava

Science Score: 54.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
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Java library for descriptor calculation for (nano)materials.

Basic Info
  • Host: GitHub
  • Owner: enanomapper
  • License: lgpl-2.1
  • Language: Java
  • Default Branch: main
  • Size: 933 KB
Statistics
  • Stars: 2
  • Watchers: 13
  • Forks: 2
  • Open Issues: 4
  • Releases: 5
Created about 12 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

build codecov DOI Maven Central

nanojava

Java library for descriptor calculation for (nano)materials.

The library can be used either as a JAR file or through Docker. It can also either print the calculated descriptors to the terminal or write them to a file using TSV format (tab-separated file).

It is also available on DockerHub (https://hub.docker.com/r/aammar/nano-java) for direct usage without compilation or Docker build!!

Build with Docker

  1. Make sure that Docker is installed and ready to go (https://docs.docker.com/)

  2. Clone the current repository

  3. Enter the repository with "cd" command

bash cd nanojava

  1. Run the following command:

bash docker build -t nanojava .

  1. Now, you can use the library through Docker as in the Usage section (use "docker run nanojava" instead of "docker run aammar/nano-java" in this case).

Build with maven

If you do not have Docker or if it is an overhead for your use case, you can bundle nanojava library as a standalone jar file.

  1. Make sure that JDK 11 and Maven 3.x are installed and ready to go

  2. Clone the current repository

  3. Enter the repository with "cd" command

bash cd nanojava

  1. Run the following command:

bash mvn package

  1. Now, you will have the standalone jar file in the "target" folder named:

nanojava-2.0.4-SNAPSHOT-jar-with-dependencies.jar

  1. The JAR file is used in the same way as the Docker image in the "Usage" section with replacing:

"docker run" with "java -jar nanojava-2.0.4-SNAPSHOT-jar-with-dependencies.jar"

and make sure you provide the absolute paths for your files in this case.

Usage

NOTE: descriptor names are the class names of the descriptors available under the package io.github.egonw.nanojava.descriptor:

  • ParticleSizeDescriptor
  • MetalElementMassDescriptor
  • ZetaPotentialDescriptor
  • MetalAtomCountDescriptor
  • MetalGroupDescriptor
  • EnergyBandDescriptor
  • HeatOfFormationMopac2012Descriptor
  • MolecularWeightDescriptor
  • MetalPeriodDescriptor
  • HeatOfFormationDescriptor
  • OxygenAtomCountDescriptor

Example 1: Calculate a single descriptor for a nano material formula provided through command line, and output the results to the terminal.

bash docker run aammar/nano-java -d OxygenAtomCountDescriptor -m Al2O3

Output:

| Nano Material | OxygenAtomCountDescriptor | | ------------- | ------------------------- | | Al2O3 | 3 |


Example 2: Calculate all available descriptors in nanojava library for a nano material formula provided through command line, and output the results to the terminal.

bash docker run aammar/nano-java -d all -m Al2O3


Example 3: Calculate a single descriptor for all nano materials provided as an XML file (you can find an example of that in this repository "materials.xml") , and output the results to the terminal. Pay attention to the volume mapping between the folder on your PC where the XML file resides and the a path of your choice inside the Docker container!!

bash docker run -v XML_PATH_ON_YOUR_PC:/data aammar/nano-java -d OxygenAtomCountDescriptor -f /data/materials.xml

Output:

| Nano Material | OxygenAtomCountDescriptor | | ------------- | ------------------------- | | Al2O3 | 3 | | CeO2 | 2 | | CoO | 1 | | Co3O4 | 4 | | Cr2O3 | 3 | | CuO | 1 | | Fe2O3 | 3 | | Fe3O4 | 4 | | Gd2O3 | 3 | | HfO2 | 2 | | In2O3 | 3 |


Example 4: Calculate all available descriptors in nanojava library for all nano materials provided as an XML file (you can find an example of that in this repository "materials.xml") , and output the results to the terminal. Pay attention to the volume mapping between the folder on your PC where the XML file resides and the a path of your choice inside the Docker container!!

bash docker run -v XML_PATH_ON_YOUR_PC:/data aammar/nano-java -d all -f /data/materials.xml


Example 5: If you want to write the descriptors calculation results as a TSV file, add the argument "-o OUTPUTFILEABSOLUTE_PATH". For the following examples, the output file path will be used "/data/descriptors.tsv"

That results the following commands for the previous examples:

```bash docker run aammar/nano-java -d OxygenAtomCountDescriptor -m Al2O3 -o /data/descriptors.tsv

docker run aammar/nano-java -d all -m Al2O3 -o /data/descriptors.tsv

docker run -v XMLPATHONYOURPC:/data aammar/nano-java -d OxygenAtomCountDescriptor -f /data/materials.xml -o /data/descriptors.tsv

docker run -v XMLPATHONYOURPC:/data aammar/nano-java -d all -f /data/materials.xml -o /data/descriptors.tsv ```

Owner

  • Name: eNanoMapper
  • Login: enanomapper
  • Kind: organization
  • Location: Europe

Funded from the European Union’s FP7 for research, technological development and demonstration under grant agreement no 604134.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Willighagen
    given-names: Egon
    orcid: https://orcid.org/0000-0001-7542-0286
  - family-names: Jealiazkova
    given-names: Nina
    orcid: https://orcid.org/0000-0002-4322-6179
  - family-names: Ammar
    given-names: Ammar
    orcid: https://orcid.org/0000-0002-8399-8990
title: NanoJava
version: 2.0.5
date-released: 2025-08-16
doi: 10.5281/zenodo.6984324
url: "https://github.com/enanomapper/nanojava"

GitHub Events

Total
  • Create event: 3
  • Issues event: 1
  • Release event: 2
  • Push event: 10
  • Pull request event: 5
Last Year
  • Create event: 3
  • Issues event: 1
  • Release event: 2
  • Push event: 10
  • Pull request event: 5

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 7
  • Total pull requests: 10
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 19 days
  • Total issue authors: 2
  • Total pull request authors: 3
  • Average comments per issue: 0.86
  • Average comments per pull request: 0.4
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 4
  • Average time to close issues: N/A
  • Average time to close pull requests: about 4 hours
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • egonw (5)
  • ammar257ammar (2)
Pull Request Authors
  • egonw (7)
  • ammar257ammar (2)
  • dependabot[bot] (1)
Top Labels
Issue Labels
enhancement (2)
Pull Request Labels
dependencies (1)

Dependencies

pom.xml maven
  • com.github.egonw:jqudt 1.5.0
  • info.picocli:picocli 3.1.0
  • org.blueobelisk:cmlxom 4.3
  • org.openscience.cdk:cdk-formula 2.7.1
  • org.openscience.cdk:cdk-inchi 2.7.1
  • org.openscience.cdk:cdk-libiocml 2.7.1
  • org.openscience.cdk:cdk-silent 2.7.1
  • org.openscience.cdk:cdk-smiles 2.7.1
  • com.github.stefanbirkner:system-rules 1.19.0 test
  • junit:junit 4.13.2 test
.github/workflows/maven.yml actions
  • actions/checkout v2 composite
  • actions/setup-java v1 composite
Dockerfile docker
  • maven 3-jdk-8-alpine build
  • openjdk 8-jre-alpine build