[Camino-users] RE: subsetpoints output

Philip A Cook cookpa at mail.med.upenn.edu
Thu Aug 22 12:05:28 PDT 2013


It's always possible that subsetpoints doesn't find the global minimum. 

I might add something to compute condition number along with energy for an arbitrary point set, to help evaluate these results.

Meanwhile, if you'd like to see the influence these numbers might have on the distribution of tensor statistics, you can try the orientbiasmap program

http://cmic.cs.ucl.ac.uk/camino//index.php?n=Man.Orientbiasmap


On Aug 22, 2013, at 1:57 PM, Grussu, Francesco wrote:

> Dear Philip,
> thank you very much indeed for your comments. 
> 
> To reply to you:
> 1) you are right, the file   orderedPoints.dat     was something I generated as a mistake and I forgot doing, sorry about that;
> 
> 2) I took the subset of first 30 directions of the new list produced by subsetpoints as you suggest doing. 
> However, I noticed that if I calculate the condition number as shown in (Skare S et al, JMR 147, 340-352, year 2000, "Condition number as a measure of noise performance of diffusion tensor data acquisition schemes with MRI") for that subset of first 30 directions, I get a number slightly higher compared to the condition number I get for the second subset of 30 directions returned  by subsetpoints (1.61 against 1.60, with an ideal case of 1).
> 
> I see that minimum electrostatic energy doesn't imply necessarily minimum condition number, so unless you tell me that you find this weird and you have any comments about that I would go on with my analysis being satisfied by the subset Camino extracted... 
> 
> Thank you very much indeed,
> all the best
> 
> Francesco
> ________________________________________
> From: Philip A Cook [cookpa at mail.med.upenn.edu]
> Sent: 22 August 2013 18:11
> To: Ferizi, Uran
> Cc: Grussu, Francesco; camino-users at www.nitrc.org
> Subject: Re: [Camino-users] RE: subsetpoints output
> 
> Late to this thread,
> 
> subsetpoints and orderpoints do different things.
> 
> orderpoints orders the points so that the scan is minimally disturbed from isotropic coverage. The idea being that you can get something from an interrupted scan because even if you get the first 29 directions, they'll be close to isotropic.
> 
> subsetpoints divides a pointset into a discrete number of subsets. It tries to make each subset isotropic. So if you have 60 points and you want three sets of 20, you can run subsetpoints and it will try to find 3 more or less isotropic subsets. But it doesn't care about partial scans, so the ordering WITHIN subsets is not optimized. It's just a way of splitting up the DWI data in a more or less unbiased way.
> 
> I think Francesco is trying to run subsetpoints to get 30 out of his 60 directions. He is trying to get a subset of existing directions, which is why he can't just use Elec030, he needs 30 from his 60, not a general set of 30.
> 
> So subsetpoints is the way to go.
> 
>> cat inputDirs.bvec | subsetpoints -singlesubset 30 -savestate myCurrentState > outputdirs.bvec
> 
> This looks right to me.
> 
> I don't know where orderedPoints.dat is coming from but I don't think it is from Camino.
> 
> outputdirs should be inputdirs, but re-ordered such that the first 30 are the subset you want. If that's not the case then please send me a reproducible example (with the directions) and I'll look into it.
> 
> It runs for a long time because it uses simulated annealing. Computing the energy configuration of all 10^17 possible subsets would probably be slower still. But it can be sped up by adjusting the annealing parameters. I chose the default parameters to err on the side of longer computation. There are also various other methods out there that use more efficient optimization routines for different things, there's been a few papers on it.
> 
> On Aug 20, 2013, at 4:36 AM, Ferizi, Uran wrote:
> 
>> Until you get a better answer ...
>> 
>> 1) whatever subset you get out of Camino, it will not be a unique one (depending on the first direction that you pick; in fact, there may be 60_Choose_30 subset combinations of directions --- this is important if, say, you want to keep the signal in the z-axis ...); or,
>> 
>> 2) the first 30 directions in the list may actually be the ones you're after --- I believe they are listed so that if a scan is interrupted, the sampled directions would form a self-contained shell; or,
>> 
>> 3) you can design your very own shell of 30 dirs. by picking the first direction you like from the 60-shell, and eliminating its closest vector, then pick the next closest and eliminate its neighbour, and so on (via arccos of the dot product --- this is after all Coulomb's law, which is how the "minimisation of electrostatic repulsion" is based on, no?);
>> --- or you could even employ the 30 directions from Camino's PointSet, and find the closest vector of the 60-shell to each of the 30-shell (again, two loops on Matlab?).
>> 
>> Uran
>> PS: But it sounds a little dodgy that all that calculation is taking 5h ... even if it churned out all the subset combinations, it should be faster.
>> 
>> 
>> 
>> From: Grussu, Francesco
>> Sent: 19 August 2013 7:59 PM
>> To: Ferizi, Uran; camino-users at www.nitrc.org
>> Subject: RE: subsetpoints output
>> 
>> Thanks for that.
>> 
>> However my directions do have to be part of the initial 60 direction set, regardless how  good or not it is.
>> This initial 60 direction set is something I was given with and I have real measures associated to it. Therefore I cannot change those.
>> 
>> I just wondered how to interpret the outputs of subsetpoints .
>> 
>> Regards
>> Francesco
>> 
>> From: Ferizi, Uran
>> Sent: 19 August 2013 19:48
>> To: Grussu, Francesco; camino-users at www.nitrc.org
>> Subject: RE: subsetpoints output
>> 
>> Use Camino's point sets --- you have all the directions (well, from 3 to 256, and 755) ready for you. T
>> In a terminal window, do:
>> ls -l camino/PointSets (to obtain the full list Elec003.txt and so on).
>> 
>> Is this what you wanted?
>> 
>> From: camino-users-bounces at www.nitrc.org [camino-users-bounces at www.nitrc.org] on behalf of Grussu, Francesco [francesco.grussu.12 at ucl.ac.uk]
>> Sent: 19 August 2013 7:34 PM
>> To: camino-users at www.nitrc.org
>> Subject: [Camino-users] subsetpoints output
>> 
>> Dear Camino team,
>> I am currently trying to select a subset of 30 directions from a set of 60 directions. I would like to get the combination of 30 out of 60 directions which is the most uniform possible. Therefore,  I adopted the command subsetpoints.
>> 
>> My code, which I run on the input file inputDirs.bvec (a text file with 60 rows, 3 colums, one row per direction)  is something like
>> 
>> 
>> cat inputDirs.bvec | subsetpoints -singlesubset 30 -savestate myCurrentState > outputdirs.bvec
>> 
>> 
>> and after  ~ 5hours of processing, it returns the output outputdirs.bvec and a second file called orderedPoints.dat .
>> 
>> For what I understood from the guide, I think that both first 30 rows of orderedPoints.dat  and rows from the 2nd to 31st of outputdirs.bvec are the subset of directions I am looking for. Can you confirm this?
>> 
>> Overall, first 30 rows of orderedPoints.dat  and rows from the 2nd to 31st of outputdirs.bvec are the same points but ordered differently. What's the difference between the two orders?
>> 
>> Thanks a lot for helping me out,
>> all the best
>> 
>> Francesco
>> 
>> 
>> _______________________________________________
>> Camino-users mailing list
>> Camino-users at www.nitrc.org
>> http://www.nitrc.org/mailman/listinfo/camino-users
> 
> 
> 



More information about the Camino-users mailing list