Difference between revisions of "Neighborhood analysis"

From Dynamo
Jump to navigation Jump to search
Line 11: Line 11:
  
  
[[File:neigh_fig1.png|centre|thumb|400px| Simplified example. We have three particles i,j,k with each their aligned position and orientation. While the tomogram has a global reference system, each particle express its own implicit reference system (red lines). Particles i, j and k are close to each other and so will be tanke as neighbors of each other.]]
+
[[File:neigh_fig1.png|centre|thumb|400px| Simplified example. We have three particles i,j,k with each their aligned position and orientation. While the tomogram has a global reference system, each particle express its own implicit reference system (red lines). Particles i, j and k are close to each other and so will be taken as neighbors of each other.]]
[[File:neigh_fig2.png|centre|thumb|400px| Since particle defines its own reference system, that can be used to express the other particles. Here particle i "sees" its neighbors as in the right graphs. As such, the pair (i,j) and (i,k) are noted in the neighbohood analysis plot.]]
+
[[File:neigh_fig2.png|centre|thumb|400px| Since particle defines its own reference system, that can be used to express the other particles. Here particle i "sees" its neighbors j and k. As such, the pair (i,j) and (i,k) are noted in the neighbohood analysis plot.]]
[[File:neigh_fig3.png|centre|thumb|400px| We can do the same with particle j]]
+
[[File:neigh_fig3.png|centre|thumb|400px| We can do the same with particle j. The new pairs will be (j,i) and (j,k).]]
[[File:neigh_fig4.png|centre|thumb|400px| And with particle k]]
+
[[File:neigh_fig4.png|centre|thumb|400px| And with particle k. The new pairs will be (k,i) and (k,j).]]
 
[[File:neigh_fig5.png|centre|thumb|400px| If there is a repeating geometric relationship between close particles, then this would be reflected by the presence concentrations points in the right neighborhood plot.]]
 
[[File:neigh_fig5.png|centre|thumb|400px| If there is a repeating geometric relationship between close particles, then this would be reflected by the presence concentrations points in the right neighborhood plot.]]
  

Revision as of 10:09, 27 March 2024

Concept

The neighborhood analysis is a tool available in Dynamo that is meant to help describe the local spatial relationships of particles, especially after STA. As such, it is implemented in Dynamo as a function that analyses particles through their alignment tables.


Aligned particles are described by their euler angles and their aligned position. If two particles are close enough to be considered neighbors, they form a pair. The computation of the relative geometries of all pairs in a table is the neighborhood analysis.


A simplified 2D example with only three particles is presented with the following figure. The left parts of the figures represent the real space in the tomogram, while the right graph present the neighborhood analysis space.


Simplified example. We have three particles i,j,k with each their aligned position and orientation. While the tomogram has a global reference system, each particle express its own implicit reference system (red lines). Particles i, j and k are close to each other and so will be taken as neighbors of each other.
Since particle defines its own reference system, that can be used to express the other particles. Here particle i "sees" its neighbors j and k. As such, the pair (i,j) and (i,k) are noted in the neighbohood analysis plot.
We can do the same with particle j. The new pairs will be (j,i) and (j,k).
And with particle k. The new pairs will be (k,i) and (k,j).
If there is a repeating geometric relationship between close particles, then this would be reflected by the presence concentrations points in the right neighborhood plot.

Function call

The most basic way to call the neighborhood analysis function is:
analysisOfmyTable = dpktbl.neighborhood.analize(myTable)

Where myTable is the table describing the set of aligned particle in the usual Dynamo format.

dpktbl.neighborhood.analize has a set of optional parameters:

  1. distance: this is the maximal allowed distance between particles to still be analysed. The distance is measured in pixels between the centers of the particles after alignment. The default value is 5 pixels. This value should be kept reasonably small, so as to highlight short-range repeating spatial relationships as well as to reduce computing time.
  2. modelColumn: this indicates which column of the table is used to separate the particles into groups. Particles in different groups cannot be considered as neighbors. The default column is 21 ("reg").
  3. secondTable: this options changes the behaviour of the function. If this option is active, the distribution of particles defined in the second table will be analysed as seen from the particles in the original table. This option is deactivated by default.
  4. indices: this options allows for the analysis of only a subset of the groups defined by modelColumn. By default all groups are analysed.


The output analysisOfmyTable is a structure. It contains three main fields: .originalTable, .coupleTable and .couples. .originalTable is merely a copy of the input table. .coupleTable is the table that records the geometric relationships between pairs of particles, in particular the distance vector is recordes in columns 24, 25 and 26 (x,y,z following the Dynamo table conventions). .couples records the indexes of the particles that make a pair in the original table. As such, .coupleTable will have the same number of rows as .couples.tbl.

Visualization