Re: [odin-devel] RE: Seq Compile/Link Problem
develop, simulate and run magnetic resonance sequences
Brought to you by:
wodan
From: Thies J. <th...@jo...> - 2006-03-26 07:50:20
|
Gordon, > Tested odin_quat method on the scanner. It ran fine. Some parameter > causes scan crash, but that's ok. I can't find IceOdin program though, > nor the Ice subdirectory mentioned in the /platforms/IDEA_n4/HOWTO. > Maybe you turned the "include_reco" flag, etc... off because of the > overhaul of the whole reco codes. If that's the case, I will wait for > the next release. I just checked: Under platforms/IDEA_n4/Ice in the odin directory tree, there should be the files IceOdin.cpp IceOdin.h MakeDebug.X86 MakeRelease.X86 necessary to build the reco on the scanner. Please let me know if you still can't find them, and what you see instead in this location. > Here's a general, though I think important, question about ODIN. I > understand that in order to keep ODIN platform independent, a high > degree of abstraction is necessary. Hence the backbone style of the > current odin methods (a.k.a sequences). This is ok, actually very good, > for rapid prototyping. However, it lacks a bunch of nice features > offered in the native dev environment. If sequence prototyping is the > goal of ODIN, this's fine. However, do you expect ODIN to compete with > or to replace the native dev environment for production quality > sequences? If that's the holy grail of ODIN, I think there need to be a > middle step to patch the native env features into the current backbone > ODIN sequence. Do you have any thoughts along that line? Thank you for your invaluable feedback on this! My 0.02$: It would be too ambitous to try to replace the product sequences/applications on each platform for the everyday radiologist. Instead, Odin focuses on the MR researcher who wants to try things quickly, independent of the platform and with the possibilty to simulate the whole process. For example, I'm currently developing/testing the GRAPPA reconstruction using a synthetic MR signal generated by ODIN. And because the simulator as a virtual platform is on equal footing with the other platforms, it is very likely that this will work on the actual scanners 'out of the box'. I think this orthogonality (the sequences/reconstruction on one axis and the platforms on the other axis) is the mayor strength of Odin. Thus, instead of competing with native stuff from each vendor, I see Odin as a supplement available to the MR researcher. I'm not sure what you mean by features of the native environment. Are you, for example, thinking about something like real-time support? Instead of using a quick hack to support this on a certain platform, I would rather want to add this feature in a general way, for example by a trigger object in the sequence and an additional member function of the sequence class where you can change the sequence 'on the fly' depending on the MR signal just acquired. I think this would be a portable way to add this feature on platforms which support real-time feedback. However, in the past, I made good experience with the strategy 'Add something only if you really need it' so I'm hesitant to add new features 'in stock' because extra code means extra maintenance, testing, etc. But I'm certainly interested in which features you're specifically missing... > My programming experience is mainly on Siemens IDEA with a little on > Varian. I doubt I can contribute much to the project now. But let me > know if I can be of any help? Documentations? Anything... And I'm > eager to learn how everything falls together. You are already doing a great job by reporting errors, problems and giving feedback. If you want to learn more about the internals: Read the publications on Odin (provided on the home page) and read the draft tutorial (which is under development) by changing to the directoy docs/tutorials and doing a 'make main.pdf' (youl'll need the gs-common and tetex-* packages on Debian for this). The generated main.pdf is short tutorial for an FSE sequence. Also, you could look at the code of one of the basic sequence objects, e.g. SeqAcq or SeqPuls (in odinseq/seqacq.* or odinseq/seqpuls.*) and look at their corresponding drivers for IDEA in platforms/IDEA_n4/odinseq_idea/seqacq_idea.* and platforms/IDEA_n4/odinseq_idea/seqpuls_idea.* how everything works together. > To support Varian system, I'll try to compile ODIN under SUN Sparc > first. Next, I guess sequence compilation process of the Varian system > is similar to that of the Bruker system. Any pointers of where to start > learning the implementation (which source codes to read?) would be > appreciated. Then I'll look up the UI correspondence. Unfortunately, I have no idea how sequence programming works on Varian. Do you have, similar to Bruker, a procedural 'pulse program' in some custom language to be executed by the scanner? If so, look at the code mentioned, alternatively at the Bruker/Paravision drivers under platforms/Paravision/odinseq_paravision/seqacq_paravision.* and platforms/Paravision/odinseq_paravision/seqpuls_paravision.* to get a feeling what has to be done. I would be happy to gain a new developer for Odin ;-) If you are ready, I can add you as a developer to the Odin project, you'll need a sourceforge account for this. To add a new platform for Varian, I suggest add the drivers of a template platform with documentation what each class/function is supposed to do. You could then copy this code and add the Varian-specific stuff... Thies |