Browse Source

refactor: use new SubfieldVolumeFile._read_volume_series()

Fabian Peter Hammerle 4 years ago
parent
commit
fd1d0d73e8

+ 11 - 0
freesurfer_volume_reader/__init__.py

@@ -65,3 +65,14 @@ class SubfieldVolumeFile(VolumeFile):
     @abc.abstractmethod
     def read_volumes_dataframe(self) -> pandas.DataFrame:
         raise NotImplementedError()
+
+    def _read_volume_series(self) -> pandas.Series:
+        subfield_volumes = self.read_volumes_mm3()
+        return pandas.Series(
+            data=list(subfield_volumes.values()),
+            name='volume_mm^3',
+            index=pandas.Index(
+                data=subfield_volumes.keys(),
+                name='subfield',
+            ),
+        )

+ 1 - 4
freesurfer_volume_reader/ashs.py

@@ -93,10 +93,7 @@ class HippocampalSubfieldsVolumeFile(freesurfer_volume_reader.SubfieldVolumeFile
         return subfield_volumes
 
     def read_volumes_dataframe(self) -> pandas.DataFrame:
-        volumes_frame = pandas.DataFrame([
-            {'subfield': s, 'volume_mm^3': v}
-            for s, v in self.read_volumes_mm3().items()
-        ])
+        volumes_frame = self._read_volume_series().reset_index()
         volumes_frame['subject'] = self.subject
         volumes_frame['hemisphere'] = self.hemisphere
         volumes_frame['correction'] = self.correction

+ 1 - 4
freesurfer_volume_reader/freesurfer.py

@@ -56,10 +56,7 @@ class HippocampalSubfieldsVolumeFile(freesurfer_volume_reader.SubfieldVolumeFile
         return subfield_volumes
 
     def read_volumes_dataframe(self) -> pandas.DataFrame:
-        volumes_frame = pandas.DataFrame([
-            {'subfield': s, 'volume_mm^3': v}
-            for s, v in self.read_volumes_mm3().items()
-        ])
+        volumes_frame = self._read_volume_series().reset_index()
         volumes_frame['subject'] = self.subject
         volumes_frame['hemisphere'] = self.hemisphere
         # volumes_frame['hemisphere'] = volumes_frame['hemisphere'].astype('category')