Last week I asked the question below about normalizing gait data. Here are the replies. I want to thank every who replied and I agree with Dr. George about ansemble averaging not being the best solution. However, I am trying to get a program up and running to yield the same time base 1st. I'll worry about the ansemble averaging problem once I get the data to all have the same time base. To date I have incorporated Dr. Sanders Fortran subroutine into a program. The normalized wave form is off somewhat though. I think it is because I do not have any data before & after the frames I want to standardize to. His routine requires 3 frames of data on both ends so I padded the ends with the 1st & last frames. I have also down loaded the Excel add-in template called XLmath as mentioned by Dr. Sinclair. I have not tried it yet though because my pkunzip program will not unzip the file & I run Excel on a Mac. I have just finished incorporating the Quick Basic spline subprogram sent to me from Dr. Ingram into a program & seems to work very well so far. I have printed graphic data out from 1 file (time in % cycle - 59 frames of data) and the splined data (time in % cycle with 101 - frames of data and they line up almost identically. I did not try the C program sent by Dr. McFadyen (of the 3 programs sent to me, "C" is my worst programing language). Thanks again for all of your help. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Original Question: I need to either write or purchase a program to average multiple trials of gait data (i.e. knee angle, knee moment, knee power). Does anyone know of a cheap program that will do this? Otherwise I will need to write a program to standardize the data to percent cycle (easy), spline all data to have exactly same time base (hard part), then output an averaged data set +/- SD (easy). I am told that one of Herman's library functions should fit my needs, but I have not had any luck determining which one... Thanks for your help & have a great holiday season... gsrash01@ulkyvm.louisville.edu +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Replies ========================================================================= From: hurmuzlu@seas.smu.edu (Dr. Yildirim Hurmuzlu) Subject: Normalize waveforms for averaging To: GSRASH01@ULKYVM.LOUISVILLE.EDU Date: Thu, 21 Dec 1995 11:54:25 -0600 (CST) We have used Igor on Macintosh by WaveMetrics. It is under $500.00 and it is ideal to process gait data. Their phone # is :(503) 620-3001 Dr. Yildirim Hurmuzlu Associate Professor of Mechanical Engineering Southern Methodist University Dallas, TX 75275 Phone : (214) 768-3498 Fax : (214) 768-1473 e-mail : hurmuzlu@seas.smu.edu ======================================================================== From: "Ross Sanders"Date: Fri, 22 Dec 1995 08:57:49 GMT+1200 G'day Greg, I have attached a Fortran subroutine (normal) that I have been using for several years to normalise data to a common time base - usually percentiles. I have found it to be very reliable. If you do not have a fortran compiler let me know and I will send you the executable version. The file is in text format. Good luck with it. Ross Sanders PhD +++++++++++++++++++++++++++++++++++++++++++++++ Program Cut - Contact Dr. Sanders if interested +++++++++++++++++++++++++++++++++++++++++++++++ =================================================================== Date: Thu, 21 Dec 1995 12:37:26 -0800 (PST) From: MSO@shcc.org Buy a VICON system and link vicon clinical manager to Excel. So what if it costs $300,000. Michael Orendurff mso@shcc.org =================================================================== From: p.sinclair@cchs.su.edu.au (Peter Sinclair) Dear Greg, A couple of months ago Jim Martin from the University of Texas posted a message about performing spline interpolations. Jim performed these in Excel using an add-in template called XLmath. XLmath v3.0 is share ware and can be down loaded from any number of CICA bulletin boards. Try: ftp://ftp.cica.indiana.edu The directory for windows was:/pub/pc/win3/excel/ The file is: xlmth30.zip I have since downloaded this program and find it very easy to use for time normalising data. Being free is also a significant advantage. Cheers, Peter Sinclair Division of Biomechanics E-mail: p.sinclair@cchs.su.edu.au Faculty of Health Sciences Phone: (02) 646 6137 The University of Sydney Fax: (02) 646 6520 East St Lidcombe NSW 2141 Australia ========================================================================= Date: Thu, 21 Dec 1995 22:45:15 -0500 (EST) From: Nat Ordway - Orthopedics SUNY Syracuse Hello! I did a similar sort of thing. Using LabView, I wrote a program to interpolate the data and find a point every 2% of the gait cycle. Then I was able to average sets of data. Let me know if you would like more details. Nat Ordway Dept of Orthopedic Surgery SUNY Syracuse ordwayn@vax.cs.hscsyr.edu ======================================================================== Date: Fri, 22 Dec 1995 09:20:19 +0000 From: Christopher.Johnston@ah.slu.se (Christopher Johnston) Dear Gregory We do this type of normalizing here at the equine lab. We use two programs depending on what the data is and how to trigger strides or stance etc... The easier is a product by DSP Development Corp. out of Boston Mass. called DADiSP. It costs about 2000 US. It is nice because of the multiple window function and allows easy experimentation of values with direct results. All the necessary functions are incorporated in the software for your work. The other is LabView which is intuitively not as nice, but excellent when the data is synchronized and the variables are known. This program allows almost real time analysis. LabView is a product of National Instruments Corp. out of Austin TX: Software is available for this type of work on the Biomech-L, the Ohio server I believe, as well as Ton van Bogert has modified Hermans routine to do this or has developed another. Additionally, I know that the Calgary Lab has developed this type of software for their system. Regards Chris Chris Johnston, DVM Equine Biomechanics Lab. School of Veterinary Medicine P O Box 7011 750 07 Uppsala, Sweden Christopher.Johnston@ah.slu.se ========================================================================= Date: Fri, 22 Dec 1995 13:51:28 +0000 From: Dirk Twisk Yes, to spline and interpolate you need Woltring's GCV routine. It can be found in NETLIB. I could also send a copy to you, but our program has been modified slightly to suit our needs. I have converted the source code to C, and the original is in Fortran. Let me know. Dirk Twisk ========================================================================= Date: Fri, 22 Dec 95 15:01:06 +0100 From: jharlaar@cca.vu.nl (Jaap Harlaar) Hi, if you consider the splining of the data as the hardest part of the ensemble-averaging, you should look at the signal processing toolbox of Borlands' Turbo-Pascal. They include some very nice procedures, which will make it easy to do. Success! Jaap Harlaar Mr. Jaap Harlaar, MSc, biom.eng. tel. +31 20 444 0773 Dept. Rehabilitation Medicine fax. +31 20 444 0787 University Hospital "Vrije Universiteit" De Boelelaan 1117 NL 1081 HV Amsterdam email: jharlaar@cca.vu.nl The Netherlands ======================================================================== From: "George, Terrence E." Date: Fri, 22 Dec 95 09:26:00 EST Mr. Rash, a couple other things to consider in your averaging: 1) the baseline level (dc, offset) can vary by several degrees (angles) both between subjects and between different experiments (diff. marker placements, individually calibrated) on the same subject. This doesn't matter if you're only looking at the change in joint angles. 2) the % of gait cycle between landmarks of the cycle can vary, and simply averaging trials at every increment of the overall cycle can (probably will) produce a curve which does not actually represent the family of curves. Here is an simple example of imaginary data which can be applied to more complicated cases: trial 1: :10 0 0 0 10 20 10 0 10 trial 2: :10 0 10 20 10 0 0 0 10 average::10 0 5 10 10 10 5 0 10 better: :10 0 0 10 20 10 0 0 10. The 'better' curve is a more accurate representation of the family of curves and the peak height relative to other landmarks of the curve than the 'average' curve. I hope this gets the idea across. The 'better' representation might be obtained by averaging fractions of a cycle together, ie, heel stike to peak pressure, peak to toe off, toe off to heel strike. I once found a situation where to maintain the proper shape of a family of curves, I had to average the derivatives of the curves and then integrate that average (the slope of y at all values of x was the variable being sought). Good Luck and Merry Christmas Terry Terrence E. George, Rehabilitation Research Engineer Assistive Technology Research Center National Rehabilitation Hospital 102 Irving Street NW Washington, DC 20010 202-877-1963 Fax: 202-723-0628 E'mail: teg2@mhg.edu ======================================================================== From: MCFADYEN BRAD Dear Gregory, Here is code (written in C) for a module I use to rubberband (with linear interpolation) my timebase. It has worked fine for me. It also will fix a point like toe-off at a percentage of the cycle. Hope it makes sense as it is even more convoluted in the transfer and with comments (I am not a programmer you should realize..but you are welcome to use it). Good luck Brad McFadyen, Bradford J. McFadyen, Ph.D. Email:brad.mcfadyen@pht.ulaval.ca (r10510@er.uqam.ca --- until January 1st) Departement de Physiotherapie Institute Francois-Charon Faculte de Medecine 525, boul. Wilfrid-Hamel est Pavillion Ferdinand-Vandry Quebec, PQ Universite Laval G1M 2S8 Quebec, PQ Tel: 418-529-9141 G1K 7P4 Fax: 418-529-3699 Tel: 418-656-7935 Fax: 418-656-5476 ++++++++++++++++++++++++++++++++++++++++++++++++ Program Cut - Contact Dr. McFadyen if interested ++++++++++++++++++++++++++++++++++++++++++++++++ ======================================================================== From: jharlaar@cca.vu.nl (Jaap Harlaar) Hi, if you consider the splining of the data as the hardest part of the ensemble- averaging, you should look at the signal processing toolbox of Borlands' Turbo-Pascal. They include some very nice procedures, which will make it easy to do. Success! Jaap Harlaar ============================================================================= Greg, Hi, I don't know if you remember, but we met at the NACOB meeting in Chicago a few years back. At the time I was with the Texas Sports Science Institute. I saw your message on the Biomech-L about normalizing data in gait studies. I have a cubic spline written in Quick Basic that will do what you want in a fairly straight forward manner. It is easy to understand and use and is written as a subroutine that can be incorporated into a data analysis program. If you want it I'll send it to you. Another program that I have started using over the last few months is MatLab. It is an extreemly powerful matrix based math program for which you can by tool kits for doing signal processing including splines and interpolations. The cost is high (over a thousand) but it is very versital. I am in the process of moveing my office so my e-mail will take a while to get to me. If you are in a hurry you can call me direct at (713) 483-3730. Let me know if you think you can use what I have. Have a great holiday season, Steve Ingram, Krug Life Science @ Johnson Space Center, NASA ++++++++++++++++++++++++++++++++++++++++++++++ Program Cut - Contact Dr. Ingram if interested ++++++++++++++++++++++++++++++++++++++++++++++
Want to know more? Email the CGA list! [n/a]