nanojava
Java library for descriptor calculation for (nano)materials.
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
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
Metadata Files
README.md
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
Make sure that Docker is installed and ready to go (https://docs.docker.com/)
Clone the current repository
Enter the repository with "cd" command
bash
cd nanojava
- Run the following command:
bash
docker build -t nanojava .
- 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.
Make sure that JDK 11 and Maven 3.x are installed and ready to go
Clone the current repository
Enter the repository with "cd" command
bash
cd nanojava
- Run the following command:
bash
mvn package
- Now, you will have the standalone jar file in the "target" folder named:
nanojava-2.0.4-SNAPSHOT-jar-with-dependencies.jar
- 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
- Website: http://enanomapper.net/
- Repositories: 33
- Profile: https://github.com/enanomapper
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
Pull Request Labels
Dependencies
- 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
- actions/checkout v2 composite
- actions/setup-java v1 composite
- maven 3-jdk-8-alpine build
- openjdk 8-jre-alpine build