Beauchamp:SurfDist: Difference between revisions

From OpenWetWare
Jump to navigationJump to search
No edit summary
No edit summary
Line 49: Line 49:
       41  -4.324205  -102.659935  4.546391  0
       41  -4.324205  -102.659935  4.546391  0


The first number, 41, is the line number in the file with the smallest y-value. The numbering is slightly off. If you subtract three, this will give you the actual node number. i.e. node number = 38. Three must be subtracted because the first two lines of the surface file are header information, and then node numbering begins at "0". (Bonus points if you construct a UNIX command to subtract three automatically!)
Verify that the chosen node number is the most posterior, and has the specified x,y,z co-ordinates, in SUMA to make sure.
Node that the most posterior node will vary a tiny bit depending on which version of the surface you examine. It should probably be the same surface used for other computations, such as mapping the electrodes to.
Node that the most posterior node will vary a tiny bit depending on which version of the surface you examine. It should probably be the same surface used for other computations, such as mapping the electrodes to.





Revision as of 10:15, 12 February 2008

Brain picture
Beauchamp Lab Notebook






We may wish to find the distance between two points on the cortical surface. The AFNI program to do this is SurfDist, e.g.

 echo 500 1000 > test.1D
 SurfDist -i lh.inflated.asc -input test.1D

Gives the result

 Note SUMA_LoadNimlDset: ./test.1D has no element and no group. 
 Perhaps it is a .1D read in as a niml dset.
 #Internodal distance along graph of surface lh.inflated.asc
 #A distance of -1 indicates an error of sorts.
 #From   to     Dist. 
 500    1000   26.91

In SUMA, we may open the same surface, open a surface controller, and type the node number into the node window to see the node on the surface. This also gives the x,y,z, co-ordinate. e.g. for nodes 1000 and 500

 26.8501, -134.36, -61.247
 29.5528, -137.10, -35.658

The Cartesian distance between these points is SQRT( (A1-A2)^2 + (B1-B2)^2 + (C1-C2)^2 ) = 25.87 This makes sense because the distance along the surface will always be longer than the distance through space. In this case the distance isn't too much because the inflated surface is fairly flat already. In contrast, if we examine the distance between the same nodes on the folded pial surface, it is considerably longer.

 SurfDist -i lh.white.asc -input test.1D
 Note SUMA_LoadNimlDset: ./test.1D has no element and no group. 
 Perhaps it is a .1D read in as a niml dset.
 #Internodal distance along graph of surface lh.white.asc
 #A distance of -1 indicates an error of sorts.
 #From   to     Dist. 
 500    1000   28.58


To find the distance from a cardinal point, like the back of the brain, we must first find the node number of the desired point. This can be done manually by clicking in SUMA. For this surface, manual clicking gives node 62, -2.3346, -102.37, 1.18054 A more automated way is to sort the node-cordinates by their y-position. The most posterior point will have the most negative y-coordinate.

 sort -n --key=2 lh.white.asc | more

returns

  -4.324205  -102.659935  4.546391  0
  -4.107368  -102.637810  5.588718  0
  etc.

To find the node number for this co-ordinate, we first need to number the lines in the file. Then we can sort by the y-position (now it is field number 3). This will show all nodes:

 cat -n lh.white.asc | sort -n --key=3 -| more

To find only the posterior node, we can use the head command

 cat -n lh.white.asc | sort -n --key=3 - | more | head -1

returns

     41  -4.324205  -102.659935  4.546391  0

The first number, 41, is the line number in the file with the smallest y-value. The numbering is slightly off. If you subtract three, this will give you the actual node number. i.e. node number = 38. Three must be subtracted because the first two lines of the surface file are header information, and then node numbering begins at "0". (Bonus points if you construct a UNIX command to subtract three automatically!)

Verify that the chosen node number is the most posterior, and has the specified x,y,z co-ordinates, in SUMA to make sure.

Node that the most posterior node will vary a tiny bit depending on which version of the surface you examine. It should probably be the same surface used for other computations, such as mapping the electrodes to.




sort -n --key=2 lh.white.asc | cat -n | more