Skip to content
Snippets Groups Projects
Commit f4df578c authored by Marmaduke Woodman's avatar Marmaduke Woodman
Browse files

initial idea of freesurfer analyzer, lacks adapter

I want to start adding funcitonality
parent 3a77e83f
No related branches found
No related tags found
No related merge requests found
import os.path
import subprocess
from tvb.datatypes.volumes import Volume, VolumeInFile, FreeSurferSubject
from tvb.basic.neotraits.api import HasTraits, Attr
class FreeSurferRun(HasTraits):
input_T1 = Volume(label="Input T1.")
def evaluate(self):
vol: VolumeInFile = VolumeInFile.from_volume(self.input_T1)
path = vol.file_path
tmp_dir = '/tmp/tvb-fs'
cmd = 'freesurfer -i {} -all -s {}'
proc = subprocess.Popen(
cmd.format(path, 'tvb').split(),
env={'SUBJECTS_DIR': tmp_dir},
stderr=subprocess.STDIN,
stdin=subprocess.PIPE,
)
proc.wait()
return FreeSurferSubject(
subject_folder=os.path.join(tmp_dir, 'tvb'))
\ No newline at end of file
......@@ -53,3 +53,21 @@ class Volume(HasTraits):
"Voxel size": self.voxel_size,
"Units": self.voxel_unit
}
class VolumeInFile(Volume):
"""
Volume in a file.
"""
file_path = Attr(str, label="Path to data files.")
@classmethod
def from_volume(self, vol: Volume):
raise NotImplemented
class FreeSurferSubject(HasTraits):
"""
Analysis of volume by FreeSurfer
"""
subject_folder = Volume(label="Input data for analysis.")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment