Comments (4)
Hi @lundnguy,
Typically the descriptors also take the chemical species into account. In the case of SOAP, the geometrical features for each species are written into different "channels" in the output. This is why there is a difference between your structures. If you want to only compare the geometry and ignore the species, just set all of your species e.g. to 'H' in the original structures that you feed into soap.create
.
Hope this helps
from dscribe.
Hi @lauri-codes
Thank you.
I further calculated the similarities between H2O and H2Pb, between H2S and H2Pb. It appeared that they are the same as that between H2O and H2S (0.777). (Again, all molecules have exactly the same geometry, the difference is the chemical species O, S, Pb). Is there any reason why this happened?
The input file is provided below.
Thanks,
Lund
from dscribe.descriptors import SOAP
from dscribe.kernels import AverageKernel
from ase import io
a=io.read('H2O.xyz', index=':')
b=io.read('H2S.xyz', index=':')
c=io.read('H2Pb.xyz', index=':')
desc=SOAP(species=["H","O","S","Pb"], rcut=6.0, nmax=15, lmax=12, sigma=0.01, periodic=False, crossover=True, sparse=False)
a_features = desc.create(a)
b_features = desc.create(b)
c_features = desc.create(c)
re_ave = AverageKernel(metric="linear")
print('O & S:', re_ave.create([a_features[0], b_features[0]])[0,1])
print('O & Pb:', re_ave.create([a_features[0],c_features[0]])[0,1])
print('S & Pb:', re_ave.create([b_features[0],c_features[0]])[0,1])
from dscribe.
Hi @lundnguy,
The distance measure you are using (metric="linear" is essentially the dot product between two vectors) does not have a special notion of chemical distances between elements. It is simply a linear metric in a space where all species live in different dimensions (= different parts of the output).
There is no "universal distance" between chemical elements as any useful distance is application specific. This is typically where some form of machine learning comes into play, e.g. a neural network may have a latent space that can be seen as an application-specific distance metric between inputs that is trained during the training. Alternatively, you can hand-craft your own chemical distance metric by providing a custom function in the metric
argument.
from dscribe.
Thank you!
from dscribe.
Related Issues (20)
- Is it possible to parallelize `lmbtr.create` when working on one `ase.Atoms` object? HOT 3
- Error with np.str (NumPy >= 1.24) HOT 1
- Descriptor that recognizes each atom of the same species differently HOT 1
- The example in README.md is not correct HOT 1
- [Bug] Error in SOAP derivatives when using weighting. HOT 2
- API compatibility is broken since 0696656 HOT 1
- ACSF.create cannot accept cartesian positions as "centers" parameter HOT 2
- Numpy operations on sparsed derivatives HOT 5
- Similarity based on Average kernel obtain deferent value between each atom and its replica atoms. HOT 1
- Similarity value is different between equivalent atoms HOT 5
- Segmentation fault in SOAP for l_max > 9 HOT 2
- Analytic Integral of SH expansion coefficients HOT 2
- SOAP polynomial RBF error HOT 3
- issue with "species" HOT 2
- MBTR HOT 3
- Naming incosistency of rcut in SOAP and MBTR HOT 2
- Potential memory leak in MBTR HOT 2
- Analytical derivatives of SOAP HOT 4
- Numerical SOAP derivatives for periodic systems HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dscribe.