[Camino-users] RE: subsetpoints output
Philip A Cook
cookpa at mail.med.upenn.edu
Thu Aug 22 10:11:35 PDT 2013
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