1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352
|
ChangeLog for ODIN
Version 2.0.5:
--------------
New Features:
- miview now with enhanced mode to mark ROIs (use command-line option '-rois' to activate):
- multiple ROIs per slice
- ROIs as colored overlay
- Default values printed in usage information (if applicable)
- New mask-generating filter 'nonzeromask'
- miconv/micalc/miview: Logging application of filters to cmdline
Internal Changes:
- Improved configure script: Headers will be searched in specific subdirectories of
/usr/include and the argument to '--with-extra-include-base'
- Improved speed of morphological filters 'erode' and 'dilate'
Version 2.0.4:
--------------
New Features:
- center-of-gravity calculation in micalc
- option '-framesplit' in FileIO to force splitting frames with different acquisition
times into separate protocol-data pairs during read
- Morphological filter 'erode' and 'dilate'
- sqrt operation in micalc
- using two-component fit to histogram for better 'automask' filter
Internal Changes:
- Porting to Debian Buster
- Fixed issues with VTK-based magnetization plotter
- Increased efficiency of cluster algorithm
Version 2.0.3:
--------------
New Features:
- Added FilterSphereMask to create spherical ROI
Internal Changes:
- fixes for GCC6
Version 2.0.2:
--------------
New Features:
- Added 'Export->Save Data as ...' menu entry to MiView
- XML-based image format
- XML based protocol format with suffix 'xpro'
- Added read/write of ISMRMRD image data format
Internal Changes:
- renamed fileio_jdx to fileio_ser to deal with both XML- and JCAMP-DX-based image format
Version 2.0.1:
--------------
New Features:
- Support for several image file formats for '-dump' option of miview
Internal Changes:
- Porting to GSL-2
- Support for multiarch-based Qt on Debian during configure
Version 2.0.0:
--------------
API Changes:
- Using LDR (labeled data record) as parameter prefix instead of JDX, e.g. JDXint becomes LDRint
- SeqGradEcho: Partial Fourier in 2nd phase-encoding direction as parameter
- Separate functor 'halffour' in odinreco to deal with half-Fourier acquisition
New Features:
- Added PatientsSize as study parameter
- Added FilterInvert to invert gray scale
- Added ReceiveCoilName as system parameter
- Added freedesktop entries for Odin, Pulsar, MiView
- Implemented partial Fourier in multiple dimensions
- Added reader for ISMRMRD raw data format
Internal Changes:
- Porting to VTK-5.8/VTK-6
- New Allura-based SVN repo at SourceForge
Version 1.8.8:
--------------
New Features:
- Added FilterCluster (-cluster) for clustering of adjacent non-zero voxels
- Added FilterEdit (-edit) to edit single voxel values or range of values
- Added FilterTimeShift
- Storing PatientAge in DICOMs
- miview: Option to export/dump image legend separately to file
- micalc: Added option -histslotmap
Internal Changes:
- Added eventContext::abort to stop a running sequence during execution
Version 1.8.7:
--------------
New Features:
- Implemented on-the-fly drift correction in odinreco
Internal Changes:
- Fixed serious bug in SeqPulsar/SeqPulsarReph which affected
all sequences based on SeqGradEcho (e.g. odingrech, odinfisp)
Version 1.8.6:
--------------
New Features:
- Added DownhillSimplex-based function fit 'FunctionFitDownhillSimplex'
- New FileIO module for simple Interfile format
- Implemented VtkFormat::read()
- Added new filter 'convolve' for spatial convolution with different kernels
- New filter 'slicetime' to correct for different slice acquisition times
API Changes:
- Added interface class 'FunctionFitInterface' and renamed
'FunctionFit' to 'FunctionFitDerivative'
- Removed ModelFunction::fit()
Internal Changes:
- Adapted for blitz-0.10
- Ported to qwt6
- Using filter_slicetime in odinreco/slicetime
- Cleaned up interface of filter: only single header filter.h necessary
to include FilterChain
- Using RescaleSlope/Intercept when writing DICOMs
- Simplified autoscaling: Removed 'noupscale' option, only Boolean
as argument to converter functions, new command-line option
FileWriteOpts::noscale to be used by file writers
Version 1.8.5:
--------------
New Features:
- Writing of multiple VTK files for dynamic data sets
- Storing protocol together with z-maps in miview fMRI
- Added dialect 'tcourse' to ASCII fileio
- SeqSimMonteCarlo now supports multi-threaded simulation
- Added gamma variate fitting function
- Added filter steps 'quantilmask' and 'resample'
- Filter steps 'minip', 'maxip' and 'proj' now with direction argument
- Added option 'weightmask' to micalc
- Added reco step 'qcspike' to detect spikes in signal
- Added reco steps 'driftcalc/driftcorr' for correction of field drift
- Added GSL-based DownhillSimplex optimizer
Internal Changes:
- Added thread-local storage to ThreadedLoop
- Removed usage of liboil
- Removed FileIO of Lipsia/Vista
- Rewrote filter_splice
- Adapted to libpng 1.5.x
- New implementation of unwrap_phase() function with variable startindex
Version 1.8.4:
--------------
New Features:
- Calculating reductions (maximum, minimum and sum projection)
by one filter step
- Added write option 'fnamepar' to create file names of datasets based
on arbitrary protocol parameters
- Added parameter to weight phase by exponent of magnitude when
combining multi-channel data
- Added filter 'automask' to create mask using histogram-based threshold
Internal Changes:
- Fixes for DCMTK 3.6.0
- Combination of files with different bit representations in autoread
- Using presence of DICOM trigger time to set PhysioTrigger
- Accounting for different TRs in gated mode when combining data
Version 1.8.3:
--------------
New Features:
- PhysioTrigger flag in GUI
- Partial Fourier acquisition in readout direction
- Reordering of phase lists
API Changes:
- Changed constructors of SeqAcqRead and SeqGradEcho to allow for
partial Fourier acquisition in readout direction.
Internal Changes:
- Now using PREFIX/share/odin to install sequences, samples and coils
- Constructors of SeqGradTrapez and SeqAcqRead now account
for rastered duration of of constant part
- Taking SeqVecIter objects into account when creating recoInfo
Version 1.8.2:
--------------
New Features:
- Read-only display of parameter blocks by a table
- Support for time varying samples to simulate fMRI, for instance
- (Re-)added SeqMagnReset to reset magnetization in simulation
- New FileIO plugin for ODIN measurement protocols
API Changes:
- Changed parameter order of Sample::resize()
- Removed obsolete B1 map in Sample
- Sample has extra time dimension (frames)
Internal Changes:
- Fixed noise generator of MRI simulator
Version 1.8.1:
--------------
New Features:
- 3D phase encoded PROPELLER sequence
- Support for diffusion tensor imaging
- New parameters for odinreco to fine-tune
odinreco of PROPELLER data
- Added 3D mode to SeqGradEcho
API Changes:
- New operators /= for SeqGradChanParallel
- Moved set_gradrotmatrixvector() from
SeqParallel to SeqObjList
Internal Changes:
- Using userdef dimension for messer/gesse sequence
- Separate functor for phase correction of blades
Version 1.8.0:
--------------
New Features:
- odinprop now possible with ramp sampling
- Dialect 'siemens' for DICOM read/write plugins
Internal Changes:
- Removed scanner-specific drivers from public
distribution.
Version 1.7.3:
--------------
New Features:
- Auto-detecting number of cores for odinreco.
- Added functor 'fmri' to odinreco (fMRI localizer).
- Optimized trapezoidal gradient pulses.
- Added filter 'detrend' to remove slow drift over time.
- Added filter 'merge' to merge datasets into one.
- Added filter 'usemask' to generate 1D array using a mask.
- Multi-threaded simulation of MR signal.
API Changes:
- SeqPulsar::set_rephased() now accepts an optional
argument to set the rephaser strength.
Internal Changes:
- New template class ThreadedLoop for parallelized loops.
Version 1.7.2:
--------------
New Features:
- New sequence 'odinprop' and appropriate reconstruction for PROPPELLER
acquisition.
Internal Changes:
- Auto-generating manpages using 'help2man'.
- Added --enable/disable-<feature> to configure for 3rd part libraries.
Version 1.7.1:
--------------
New Features:
- Added residual-based robustness filter to GRAPPA reconstruction.
- New filter 'align' to register the data of one dataset to the
geometry of another.
Internal Changes:
- Added reverseSlice to Geometry to account for different handness
of coordinate system.
- Removed sonames of libraries.
- Filters now operate on whole maps of protocol-data pairs.
Version 1.7.0:
--------------
New Features:
- Full support for arbitrary oversampling on all platforms.
- Added ScanDate and ScanTime members to Study.
- New filters for intensity masks (genmask) and slice tiling (tile).
- Added SeqHalt for physiological triggering.
API Changes:
- Parameter for oversampling factor can now be specified
in SeqAcq* constructors.
- Removed obsolete 'gradshift' from SeqAcqEPI constructor.
Internal Changes:
- Added configure option --enable-debug, release mode is now the default
Version 1.6.9:
--------------
New Features:
- Added common method SeqFreqChanInterface::set_phasespoiling() for RF
spoiling.
- Added code for iterative GRAPPA interpolation in two phase encoding
directions.
- New file formats in FileIO: 3db (Iris3D binary data), png (PNG image),
reg (Ansoft HFSS ASCII).
API Changes:
- Removed obsolete get/set_attenuation() of pulse classes.
- Renamed SeqPulsNdim::get/set_wave() -> SeqPulsNdim::get/set_rfwave()
and SeqPulsNdim::get/set_Gx/y/z() -> SeqPulsNdim::get/set_gradwave()
- Merged enums read/phase/sliceChannel and read/phase/sliceDirection
into read/phase/sliceDirection
- New member 'methpars' in Protocol to accomodate custom sequence
parameters.
Internal Changes:
- The protocol is now embedded in recoInfo instead of a separate
file on disk.
- Using Siemens Ice(Configurator) to store raw data on disk.
Version 1.6.8:
--------------
New Features:
- Most of the tracing is now displayed directly in the messages
window of Odin instead of the console.
API Changes:
- Replaced Debug module (in files tjutils/tjdebug*)
by Log module (in files tjutils/tjlog*)
Internal Changes:
- Replaced most of uses of cout/cerr by using new Log module
Version 1.6.7:
--------------
New Features:
- Ported to Siemens IDEA VB15
- odinreco can reconstruct Twix-exported raw data from some
Siemens sequences (EPI, FLASH)
Internal Changes:
- New ostringstream-based debugging framework which now supports
standard ostream output to be redirected to the debug object
Version 1.6.6:
--------------
New Features:
- New class SeqGradPhaseEncFlowComp for 1st order flow-compensated
phase encoding.
- Implemented 3D mode for SeqFieldMap.
- New framework for filter steps operating on datasets-protocols pairs
in odindata/filter*.
Internal Changes:
- Added libodinreco in order to support external recos with a custom reader.
- Common template base classes for filter and reco steps in odindata/step.*.
Version 1.6.5:
--------------
New Features:
- Support for GNU-Zip compressed files in FileIO, e.g. files ending with nii.gz
can be read directly.
- Oscilloscope in sequence plotter.
- New Mode 'B1' in odinquant and functor b1fit to produce B1 maps.
- Added true half fourier reco to odinreco/homodyne.*
- Ported to Siemens Numaris4 VB12
API Changes:
- JDXyesno renamed to JDXbool.
Internal Changes:
- Uniform handling of arguments and options of reco steps (functors) via a
single set of parameters per step.
- Storing and using ReadoutShape instead of RegridMatrix for ramp-sampling
correction.
- Using MinGW patch so that ODIN can be used on Windows Vista.
- Using name 'odindebug' as a uniform name for all local Debug objects.
- Renamed SeqMethodInterface/SeqPlatformInterface to SeqMethodProxy/SeqPlatformProxy.
- Extra configure option to include/exclude unit test.
- New simple list-based memory manager for custom heap.
Version 1.6.4:
--------------
New Features:
- Monte-Carlo simulator 'SeqSimMonteCarlo' to simulate diffusional
averaging. Both simulators, 'SeqSimMagsi' and 'SeqSimMonteCarlo', are
now accessible via a common interface 'SeqSimAbstract'.
- New sequence 'odinswi' and reco functor 'swi' for susceptibilty weighted imaging.
- New reco functor 'filter' and 'zerofill' for k-space filtering and
zero filling.
- Input/output plugin for the Matlab ASCII file format in FileIO module.
- Improved Vista input/output plugin which is now compatible with Lipsia.
- Improved NIFTI input/output which now supports different data representation
types and correctly handles slice orientations.
- New LAPACK-based linear algebra functions 'pseudo_inverse' and 'eigenvalues'
in odindata/linalg.h.
- More filter plugins for JDXfilter
API Changes:
- Renamed header seqmagn.h to seqsim.h and class 'SeqMagn' to 'SeqSimMagsi'.
- Data::convert_to() has more convenient autoscaleOption instead of scale/offset.
- New parameter RFSpoiling in commonPars
Internal Changes:
- Increased efficiency of the tokenizer and STL replacement.
- Using liboil when available for array conversion.
Version 1.6.3:
--------------
New Features:
- Direct FT with conjugate-phase reconstruction for spiral imaging.
- Yet another optimized spiral trajectory (BoernertSpiral) as described in
Boernert et al, MAGMA 9:29-41(1999).
- Support for NIFTI file format.
Internal Changes:
- Collected common code of different spirals into base class ArchimedianSpiral.
- Simplified interface to Paravision: A scan can now be started directly
from the ODIN GUI. Communication between ODIN and Paravision is now
bases solely on pvcmd.
Version 1.6.2:
--------------
New Features:
- Experimental support for VB* on Siemens.
- Slice ordering of Sinc and Gauss pulses is now interleaved
by default.
- Added slice-time correction functor to odinreco.
API Changes:
- Now, the class SeqAcqEPI has an extra parameter 'reduction'
in the constructor to realize GRAPPA encoding directly in the
the SeqAcqEPI class in order to combine segmentation and parallel
imaging of EPI.
Version 1.6.1:
--------------
New Features:
- Graphical installer to install ODIN on IDEA.
- Implemented partial Fourier acquisition: New sequence parameter
'PartialFourier', added support for partial Fourier acquisition in
SeqGradPhaseEnc/SeqGradEcho and homodyne reconstruction in odinreco.
API Changes:
- Overloading SeqMethod::method_reco() to perform method-specific reconstruction
is no longer supported. Instead, each method can register a set of functors
via RecoPars::set_Recipe() and RecoPars::set_PostProc3D().
Internal Changes:
- No longer providing Debian packages because of a bug in Blitz++, see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=369753 for details.
Version 1.6.0:
--------------
New Features:
- New multi-threaded pipeline-based reconstruction 'odinreco' which replaces
good old 'autoreco' as the image reconstruction framework within ODIN.
- Added components for multi-threading in tjutils/tjthread.h.
- New class SeqVecIter to iterate manually through vectors (e.g. phaselists).
API Changes:
- Removed Nyquist correction for EPI in favour of simple 1D phase correction.
Internal Changes:
- Renamed library for data processing from 'odinreco' to 'odindata'.
Version 1.5.1:
--------------
New Features:
- The FileIO module and the tools based on it (miconv,miview) now support
datasets with differing protocols. These protocol-data pairs are now
processed simultaneously. They are read from and written to a single file
if the file format supports this option (e.g. Vista).
- Spiral trajectories with a free parameter can be optimized for minimum
readout length using downhill simplex optimization.
- Various improvements to spiral reco: Faster k-space gridding, magnitude
correction, optional reco by matrix inversion, ...
API Changes:
- Added ramp steepness as parameter to SeqGradTrapez and SeqAcqEPI.
- Restructured FileIO functionality: Instea of separate 'read/write_*_file'
functions for each file format, the class Data now has single functions
'autoread/autowrite' to import/export data from different file formats.
- The FileIO module now handles lists of protocol-data pairs: Data
with differing protocols can be read in and written out simultaneously.
- New gridding and coodinate transform functors 'Gridding' and
'CoordTransformation' which are nitialized once and can be applied
multiple times.
Internal Changes:
- Using fast(!) LAPACK routines for SVD instead of those of GSL
if LAPACK is available.
Version 1.5.0:
--------------
New Features:
- Added new sequence parameter GradientIntro which will
automatically generate a 'tok tok tok' sound prior to
the actual sequence if activated.
- New encodind scheme 'maxDistEncoding' which creates
max distance between consecutive elements of a vector,
e.g. for multi-slice excitation with minimum overlap.
- New class 'Study' and sub-object 'study' in class
'Protocol' to hold info about current study, i.e. patient
info, study name, etc.
- Fully standard-compliant DICOM export.
- To allow off-center FOV in read direction, oversampling
will now be used to create a shift in autoreco before
the FOV-band filter is applied.
Internal Changes:
- Migrated to subversion source code control
- Renamed internal interface classes of sequence objects
from <SomeSeqClass>Abstract to <SomeSeqClass>Interface
- All Seq*Interface now implement automatic marshalling
of virtual functions if a marshall is specified with
set_marshall().
- Restructured type interface for amd64 bit compatability:
Possible integer types are now s8bit, u8bit, s16bit, u16bit,
s32bit, u32bit and will be mapped to the appropriate C types
during './configure'.
Version 1.4.3:
--------------
API Changes:
- Argument for direction of ComplexData::fft(...) changed to bool value
- The function do_autoreco() is obsolete, autoreco is always performed
prior to calling sequence-specific method_reco().
New Features:
- Added SeqPulsar::get_reph_gradintegral() to obtain rephasing integrals
without creating a new gradient object.
- Ported ODIN to Windows using MinGW.
Internal Changes:
- Using GSL FFT instead of FFTW -> No more FFTW dependency
Version 1.4.2:
--------------
API Changes:
- Removed obsolete flag 'templateScan' from constructor of SeqAcqEPI
New Features:
- Added optimization code for RF pulses
- New constructor flag 'rephase' for SeqAcqDeph to create post-acquisition
rephasing gradients.
Internal Changes:
- Many bug fixes
Version 1.4.1:
--------------
API Changes:
- Memory mapping of complex raw data has changed: The block
can be reshaped at each load_block.
New Features:
- The EPI module now supports multiple echoes for each line
in k-space. This is useful for field-map scans.
- Added EPI-based module for field-map pre-scan to odinspir
sequence.
Internal Changes:
- Better integration into the Paravision PVM framework.
- Tagging of dimensions for reco is now performed mainly
in autoreco for better performance.
Version 1.4.0:
--------------
New Features:
- Added support for multi-shot (segmented) EPI.
- Parallel imaging using GRAPPA. A new parameter
'ReductionFactor' can be used to specify an acceleration
factor and the class 'SeqGradPhaseEnc' is able to
create undersampled phase encoding with auto-calibration
lines.
- Embedded 1D plots (e.g. in Pulsar) can be detached
by an entry in their context menu.
API Changes:
- The sub-elements of the Protocol class (system, geometry and seqpars)
are no longer pointers, but actual objects.
- All 'set_*_vector' member functions of SeqAcqAbstract derived
classes are now replaced by a single function 'set_reco_vector'
which takes the desired dimension as its first argument via a
'recoDim' parameter.
- The simple macro ODINMETHOD_ENTRY_POINT is now used in every sequence
file/module instead of the old ODINMAIN function code.
- Changed constructor of SeqAcqEPI to support multi-shot (segmented) EPI
- Changed constructor of 2D SeqGradEcho: More convenient constructor
with matrix sizes and FOVs instead of gradient strengths.
- Changed constructor of 'SeqGradPhaseEnc' to support parallel
imaging.
- Removed property digitizerMode from the API, i.e. from all
constructors of SeqAcq* objects.
Internal Changes:
- Removed tjview
- Using PVM instead of IMND interface on Paravision/Bruker.
- Various changes to use optimum filter/digitizer settings
on Paravision/Bruker.
Version 1.3.2:
--------------
New Features:
- Added scale to all 2D plots
Internal Changes:
- Unit test of components is now handled by UnitTest and
derived classes
- Fixed broken Debian package.
Version 1.3.1:
--------------
API Changes:
- Argument to get/set_spatial_offset of OdinPulse/SeqPulsarPinWheel
is now channelNo enum instead of axis enum.
- Moved image.h/image.cpp from odinreco to odinpara lib.
- Renamed SeqRotMatrix to RotMatrix
- The argument to set_gradrotmatrix() is now RotMatrix, instead
of a 3x3 float array
- Renamed set_mode/get_mode of JDX classes to
set_compat_mode/get_compat_mode
- The default compatability mode of parameters is now
'notBroken' instead of 'bruker'
- The pre-defined frequency list 'pl90' is obsolete,
use 'set_phase(90.0)' instead.
New Features:
- Multiple test cases are now supported for each sequence
to cover more use cases during sequence test.
- ODIN image file format now contains additional information
about the slice geometry.
- Added new program 'miview' which will eventually replace
the good old, but messy 'tjview'
- It is now possible to display images as color map
in tjview/miview via the '-color' command-line option.
- Any ImageSet (image.jdx) can be used as a background in geoedit
Internal Changes:
- Ported to Qt4 and Qwt5
- Ported to MacOS
- The class name of a sequences/methods is now set
by the define METHOD_CLASS in the method code to change
the class name dynamically, which is required on MacOS.
- Improved DICOM im/export
- Navigator data set is now stored in ImageSet instead
of obsolete PilotScan
- The global parameter 'EchoTime' is now a vector of doubles
internally to support multi-echo sequences. However, in
the UI it still appears as a scalar parameter.
- The sum immages of autoreco are now produced by
averaging complex images instead of image magnitudes
for better noise compensation.
Version 1.3.0:
--------------
API Changes:
- Location and name of headers have changed:
tjutils/tjdx*.h -> odinpara/jdx*
tjutils/tjreco.h -> odinpara/reco.h
odinseq/seqgeo.h -> odinpara/geometry.h
odinseq/seqsys.h -> odinpara/system.h
odinseq/seqpars.h -> odinpara/seqpars.h
- Renamed classes:
SeqGeo -> Geometry
SeqSys -> System
SeqReco -> RecoPars
- Splitted SeqMagn into two separate classes
Sample (in odinpara/sample.h) and
SeqMagn (in odinseq/seqmagn.h) to separate
the logic of sample properties and magnetization
- Changed member functions of PilotScan: Now
only one function with an enum 'sliceOrientation'
as first argument instead of 3 functions
- Constructor and redim functions of tjarray
changed: Giving a dim parameter as first arg
is no longer necessary, dim is determined from
the number of args
New Features:
- A debugger can be attached to the running or newly started
Odin process in order to debug sequences. It can be switched
on/off under Preferences->Settings->AttachDebugger
- DICOM support added via dcmtk: reading/writing of DICOM
files is now possible within the Data class
- new input/output functions autoread/autowrite in odinreco/fileio.h
which detect the file format automatically according to the
file extension
- rawcalc/micalc now handles a variety of file formats
- tjview is now capable of displaying DICOM files
- Added new class Protocol which is used to hold the
whole protocol of one experiment
- Introduced new cmdline program 'miconv' which
replaces the functionality of raw2vista, raw2vtk,
vistasplit, etc. The file types are recognized
according to file extension
- Simulation of MR sequences can now be done via
cmdline-action 'simulate'
- Started work on drivers for GE (code generator
for EPIC), drivers will be compiled in by default
- Added write support for MetaImage (mhd) file format
to FileIO::autowrite
Internal Changes:
- New library odinpara which holds JCAMP-DX implementation
and parameter classes for the MR protocol (geometry, system,
sequence parameters)
- Added support for new version (3.x) of FFTW
- Removed obsolete intermediate class SeqClassSys
Misc:
- Windows version of tjview no longer available
- The parameters in ODIN user interface are now
separated: commonPars and methodPars both have
their own widget
- The sequence-label prefix is removed from parameter
names in commonPars when written to disk
(e.g. odinepi_FlipAngle is now simply FlipAngle)
- renamed command-line utilities:
genphantom -> gensample
rawcalc -> micalc
Version 1.2.2:
--------------
New Features:
- rawcalc/micalc: It is now possible to use numbers instead of
arrays to perform arithmetics with scalar numbers and arrays
- Added RandomDist, a class to calculate random number
distributions.
- New header 'odinreco/linalg.h' and function 'solve_linear'
to solve sets of linear equations using the singular value
decomposition of GSL
- New function polynomial_fit in header 'odinreco/fitting.h'
to fit polynomes at each point of an array
- New function transform in header 'odinreco/gridding.h'
to perform coordinate transformation of Arrays
(i.e. rotation, flipping, scaling, shifting)
- Made sequence plotting more convenient: Empty channels
are discarded and signal curves are displayed right after
simulation
- It is now possible to specify coil sensitivities for
transmission and acquisition
Internal Changes:
- Now ComplexData::fft swaps quadrants before and after fftw
(to obtain smooth phasemaps in the image)
- Automated test of autoreco
- Added unit tests for components in odinreco (gridding, fitting,
statistics, fft)
Version 1.2.1:
--------------
New Features:
- Improved simulation of intra-voxel dephasing by using
intra-voxel magnetization gradients
- Added vtk-support (writing 3D files)
- New cmdline util raw2vtk to convert raw data to vtk files
- Added TrueFISP sequence odinfisp
- Improved plotting/printing of sequences: Thicker lines
while printing, wheels for y-axes to select y-range
- Added indication of x/y position when drawing profiles
in tjview
- The home page now contains a list of avaiable sequences
together with their descritions. This list is automatically
generated from the source code files in the sequences dir.
Internal Changes:
- Fixed resizing/margins of JDX widgets on newer Qt versions
- Automated release and test procedure (make release / make test)
Version 1.2.0:
--------------
API Changes:
- replaced value 'paravision1_1' of enum 'odinPlatform' by
'paravision' to indicate support of (hopefully) all
Paravision versions.
New Features:
- Adapted ODIN to Paravision 3
- It is now possible to iterate through a list of flip angles
via the set_flipangles() and get_flipangle_vector()
functions of SeqPulsAbstract (and its derived classes)
- Added horizontal/vertical-only zoom tool to sequence plot
- Increased max number of pulses on Paravision from 16 to 32
- Printing of sequence plot is now black on white
- Added Settings to sequence plot to select whether
axes, grid, markers should be plotted
Internal Changes:
- Removed Qwt source code -> Qwt widget library has to
be installed separately.
- Debian Sarge is now the reference platform on Linux.
Version 1.1.0:
--------------
API Changes:
- rewrote fitting framework in odinreco: Better usability
with custom model functions via virtual functions instead
of template classes
New Features:
- New class Image to handle image data. Data is stored
on disk in compressed JCAMP-DX format. It is produced
by 'autoreco' or by 'raw2image' and can be viewed with
'tjview'.
- All parameters which are relevant for the measurement
(systemInfo, geometryInfo, sequencePars) are now stored
together with the raw data in a single file 'protocol'.
The old files systemInfo, geometryInfo, and sequencePars
are still available.
- Added integration.* in odinreco for easy integration of
functions using the GSL
- New files utils.* in odinreco to hold spezialized utility
functions for reconstruction
Internal Changes:
- Moved platform-specific processing of cmdline options
to platform drivers
- New class OdinProcess to encapsulate platform-specific
process creation/execution
- Singletons are now managed by SingletonHandler template
class to solve problems with DLLs on windows
- New class OdinConf to hold/manage platform-specific
configuration options
Version 1.0.0:
--------------
- small bug fixes
- Fixed geometry handling on IDEA
- improved geoedit GUI
- added Store/Load-Buttons to store ODIN protocols on Paravision
- added -s to rels action on Paravision to set parameters via
the command line
Version 0.9.9:
--------------
- cleaned up Paravision interface of ODIN
- adaption of ODIN to NUMARIS VA25
- fixed calculation of composite pulses
- added calculation of eddy currents to plotting module
- added SeqSnapshot sequence object to dump magnetization
at a specified point in time during simulation
Version 0.9.8:
--------------
- bug fixes
- moved saturation pulse into separate files seqsat.*
- new virtual samples for quality phantom
- different modes for geometry: slicepack and 3Dvoxel
- new Nyquist correction for EPI scans
Version 0.9.7:
--------------
- bug fixes
Version 0.9.6:
--------------
- Refectored magnetization class SeqSimMagn and its simulation.
- Implemented new sequence plotting/simulation framework in
the ODIN GUI.
- Removed obsolete SeqDigitised class and audiofile generation
which were formerly used to display sequences.
Version 0.9.5:
--------------
- Modified tjview so that it can be compiled for Windows
- New plotting facility to visualize sequences using a new StandAlone
platform and the QwtPlot class
- Every platform has now its own systemInfo struct, but the interface
does not change: systemInfo-> will be relayed to the particular
systemInfo of the current platform.
- Refactored reorder vector: SeqVector now contains a pointer to
its reordering vector so that every vector class can now be
reordered.
Version 0.9.4:
--------------
- Cleaned up stream replacement and debugging facility
- Decreased memory usage of recoInfo structure
- Support for multi-channel acquisition (phased-array coils) added
- Cleaned up JCAMP-DX implementation
- Replaced tjstring by STD_string, which is simply a macro for std::string
on platforms with a working STL
- Replaced tjcomplex by STD_complex, which is simply a macro for std::complex<float>
on platforms with a working STL
Version 0.9.3:
--------------
- Moved C-standard-header includes into a single new file tjcstd.h
- Fixed performance problem when dealing with recoInfo of many-repetition scans
Version 0.9.2:
--------------
- Added recoInfo data structure to store reconstruction parameters
- Added autoreco executable to perform an automatic reconstruction based on recoInfo
- Improved STL-replacement: now true doubly linked list, list::sort() and list::unique() implemented
- Fully implemented hardware drivers (SeqGradTrapez and SeqGradChanParallel)
Version 0.9.1:
--------------
- Implemented hardware drivers by pure virtual driver base
classes and their derivations for each platform
- Removed obsolete class SeqGradObjList and SeqGradObjLoop
Version 0.9.0:
--------------
- Added User Manual for ODIN user interface
- Now using Qwt for plotting 1D-graphs
- Improved handling of different nuclei, fixed decoupling class
- Added interpolation function to Data class
Version 0.8.4:
--------------
- Improved ODIN user interface
- Even more bug fixes
Version 0.8.3:
--------------
- Bug fixes!
Version 0.8.2:
--------------
- Improved release generation
Version 0.8.1:
--------------
- Bug fixes
- Improved fMRI analysis in tjview
Version 0.8.0:
--------------
- Restructured source code tree
- compilation for IDEA now uses autoconf/automake
- new library odinreco instead of recopp_blitz
Version 0.7.1:
--------------
- improved ODIN GUI: k-space display, etc.
- rewrote framework for JDXfunctions for minimal memory usage
- accelerated performance in the Siemens enviroment
- SeqRotMatrixVector now coupled to SeqParallel to be used with IDEA
- Started spiral sequence
Version 0.7.0:
--------------
- ODIN now contains a nice GUI for interactive sequence design
- complete rewrite of audio file generation
Version 0.6.2:
--------------
- Better integration of ODIN into Siemens GUI (TE/TR feedback)
- Now using release compilation on Siemens host/mpcu to decrease library size
- Added fMRI analysis to tjview
Version 0.6.1:
--------------
- Added custom memory manager for real time OS to avoid memory leaks
- Finished implementation of rotation matrix vector
- Reworked EPI implementation: different drivers for different platforms
- EPI reco now in separate function
Version 0.6.0:
--------------
- Improved automatic reconstruction via ICE
- Reworked implementation of reordering schemes for Bruker
- Fixed serious bug in frequency list generation
Version 0.5.3:
--------------
- Reordering schemes introduced
- Added code to ODIN that allows automatic reconstruction via the ICE framework
- bug fixes
Version 0.5.2:
--------------
- Improved method interface
- bug fixes
Version 0.5.1:
--------------
- New root classes SeqIdea and SeqParavision added that deal with the different scanner hardware
- bug fixes
- Partial fourier added to EPI module
- Program 'genmakefile' added that creates Makefiles for the methods on different platforms
- ICE program added that writes raw data to disk
Version 0.5.0:
--------------
- ODIN works together with IDEA!
- bug fixes
- global object 'commonPars' added that contains parameters found in nearly every sequence (TE,TR,..)
Version 0.4.9:
--------------
- ODIN now compiles with GCC3.2
- Various bug fixes
Version 0.4.8:
--------------
- Improved Pulsar
Version 0.4.6:
--------------
- Added ramp sampling for EPI
Version 0.4.4:
--------------
- Bug fixes for previous version
Version 0.4.3:
--------------
- Improved manual
- Added more stuff for IDEA support
Version 0.4.2:
--------------
- subsystem for gradient channel handling replaced: gradient
channel objects can now be played out asynchroniously
- Improved EPI reco
- Predefined fat saturation pulse added
Version 0.4.1:
--------------
- Support for import/export of Vista files added.
- Frequency and delay lists for Bruker are now calculated
by iterating through the sequence and retrieving their values.
- Gradient waveforms and gradient vectors (phase encoding) are
now copied to the PARX parameter space via a predefined list
of float arrays to minimise IMND compilation.
- Predefined sinc and Gauss pulse added.
Version 0.4.0:
--------------
- Support for IDEA added. ODIN now compiles with VC++ and the VxWorks
cross-compiler.
- Added a rough but working STL replacement for platforms where STL is
broken (VxWorks).
- ODIN Homepage improved: Download section now contains binaries for
different platforms.
- IDE for this release was KDevelop 2.1
Version 0.3.3:
--------------
- Various bug fixes
- Documentation updated
- Composite pulses added to OdinPulse/Pulsar
Version 0.3.2:
--------------
- Simulation of sequences is now possible by using the 'simulate' option
on the command line
- Sequences can now be stored as 6 channel AIFF files by using the 'audio'
command line switch
- The command line switches 'events' and 'tree' for sequences print the
events along the time axis or the hierachical sequence tree.
- Added variable delay vector SeqDelayVector
- renamed method tj_read_d to odingrech (basic gradient echo sequence)
Version 0.3.1:
--------------
- New debugging framework. Functions are debugged by generating a local
Debug object. Additional messages can be emitted by a stream-like syntax.
- The sequence library is distributed over a whole bunch of new files
- The static members systemInfo and geometryInfo are now pointers due to
problems in initialising the libraries when they are loaded
- Added new program JdxEdit, an interactive editor for JCAMP-DX files
Version 0.3.0:
--------------
- Advanced pulses are now managed by a new class OdinPulse which allows adding new
pulse shape, trajectory and filter functions via a plug-in style mechanism.
- The Pulsar user interface has been completely rewritten to make use of the OdinPulse class
and of new mechanism of automatically building a widget from a given JCAMP-DX parameter set.
- Simulation of a sequence is now handled by two classes: SeqDigitised represents the
digitised RF and gradient waveforms of the sequence and SeqSimMagn holds the magnetisation
array. Both are then connected by a simulate function.
- The simulation of relaxation effects (T1,T2) were added by Robert Trampel
- The following methods are now part of ODIN:
-odinmdeft : MDEFT sequence
-odinonep : onepulse experiment
- IDE for this release was KDevelop 2.1
|