- Notifications
You must be signed in to change notification settings - Fork269
Reading freesurfer stats files correctly#1152
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:master
Are you sure you want to change the base?
Uh oh!
There was an error while loading.Please reload this page.
Conversation
there was a problem with reading the stats files
A couple thoughts:
|
The code has been revised regard to your comments |
codecovbot commentedDec 10, 2022 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@## master #1152 +/- ##==========================================- Coverage 95.36% 95.33% -0.03%========================================== Files 207 207 Lines 29680 29694 +14 Branches 4992 4996 +4 ==========================================+ Hits 28305 28310 +5- Misses 935 944 +9 Partials 440 440 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Thanks for this. I've made a couple comments.
A larger question is whether this is intended to be for any stats files in FreeSurfer, or just the ones generated bymris_anatomical_stats? We might want to do some detecting of the kind of stats in order to correctly build a dtype. I imagine a column header -> dtype lookup table would not be too difficult to construct.
What do you think?
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
| Examples | ||
| -------- | ||
| >>> stats_a2009, column_names = read_stats_file(r'lh.aparc.a2009s.stats') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
If we're going to have example code, it needs to run. We could drop an example file innibabel/tests/data/ and access it with
fromnibabel.testingimporttest_datastats_a2009=read_stats_file(test_data(fname='lh.aparc.a2009s.stats'))
Co-authored-by: Chris Markiewicz <effigies@gmail.com>
Co-authored-by: Chris Markiewicz <effigies@gmail.com>
| stats_left,columns_left=read_stats_file(file_path.replace('rh','lh')) | ||
| stats_right,columns_right=read_stats_file(file_path.replace('lh','rh')) | ||
| stats_both_hemispheres=np.concatenate((stats_left,stats_right[:,1:]),axis=1) | ||
| column_names= [col_name+'_left'forcol_nameincolumns_left]+ [col_name+'_right'forcol_namein | ||
| columns_right[1:]] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
You're no longer returning column names. I think you can usenumpy.lib.recfunctions.join_by to do what you want.
I would also use the following pattern for doctests:
..testsetup:: >>>import os >>>from nibabel.testingimport get_test_data >>>cwd= os.getcwd() >>>os.chdir(get_test_data()) >>>stats_a2009= read_stats_file_both_hemispheres(r'lh.aparc.a2009s.stats') ..testcleanup:: >>>os.chdir(cwd)
@simkarwin Sorry about the long radio silence. Any interest in finishing this up? |
No description provided.