-
-
Notifications
You must be signed in to change notification settings - Fork 60
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
Classification of atoms using categories #689
Comments
the question, I guess, is more whether we want a new Also, what should happen when I.e. catA = ...
catB = ...
geometry.classify((catA, catB, catA | catB)) Consider more the case when users creates the last It seems to me the functionality could be simple enough: result = geometry.categorize(catA | catB | catC)
catA in result[0] wouldn't this work equivalently? |
Or perhaps |
From what I see in the example by Pol, I understand that the implementation you are thinking about would require each atom to be uniquely associated to one category, right? |
Yes, and I think that can be surprising to end users when that isn't the case. Then I guess it would be better to return the category that matches any of them. |
If the goal is to classify, yes :) Maybe it would be best to have a separate thing for classifying. So So perhaps it could be worth it to implement |
But can we do without? The problem is that distinguishing between |
Why isn't it obvious? A category just determines whether an atom fulfills or not a certain criteria, and a classifier groups atoms based on properties. The grouping might even have thresholds to tweak how many groups you want to create, for example, which are not so easy to determine by hand. An example that is impossible (or I wouldn't know how to do it) to implement with categories: I once had a box of water molecules and I wanted to determine which atoms belonged to the same molecule, so that I could plot the PDOS per water molecule. I used some |
This I would argue aims at us changing what the categories can do. Meaning, that possibly a category should be able to contain more content, and not just index like. I am primarily worried about the implications on documenting |
Hmm yeah that's true, a category is kind of a classifier with just two groups. As I said in the other issue, I'm too busy to think about anything useful now, so I'll continue this discussion next week 😅 |
Just one question for me to follow... What is the difference between classifier and categorize? |
currently we don't have a |
Ok, thanks Nick. I will try to read your various issues commenting on this topic early next week - so that I have a better overall picture. For me it is hard to see how classifier/category could be used to classify atoms in different hexagons within, say, a GNR - specially because such hexagons would have common (sharing) atoms.. But there might be the way to do this. |
The idea here, would be to fundamentally restructure the |
We have too many |
Following discussion in #688
I think it would be nice that categories facilitated classification. Imagine you have three categories
cat1
,cat2
andcat3
. There could be a nice way of grouping atoms based on whether they belong to those categories or not. I.e. if I have a geometry, I could do something like:And I would get an array saying to which group each atom belongs:
This I think is basically what the "Or" category does, but returning indices instead of the categories themselves.
Another thing that would be useful for classification is to provide some property and ask for the creation of groups based on that property:
and you get maybe a tuple with the group indices and the meaning of each group:
The text was updated successfully, but these errors were encountered: