python库以freesurfer的triangularsurface格式读取和写入曲面文件
freesurfer-surface的Python项目详细描述
在freesurfer中读写曲面文件的python库 三角形曲面格式
自由曲线https://surfer.nmr.mgh.harvard.edu/
安装
pip3 install --user freesurfer-surface
用法
编辑曲面文件
fromfreesurfer_surfaceimportSurface,Vertex,Trianglesurface=Surface.read_triangular('bert/surf/lh.pial'))vertex_a=surface.add_vertex(Vertex(0.0,0.0,0.0))vertex_b=surface.add_vertex(Vertex(1.0,1.0,1.0))vertex_c=surface.add_vertex(Vertex(2.0,2.0,2.0))surface.triangles.append(Triangle((vertex_a,vertex_b,vertex_c)))surface.write_triangular('somewhere/else/lh.pial')
在注释文件中列出标签
fromfreesurfer_surfaceimportAnnotationannotation=Annotation.read('tests/subjects/fabian/label/lh.aparc.annot')forlabelinannotation.labels.values():print(label.index,label.hex_color_code,label.name)
或
$ freesurfer-annotation-labels tests/subjects/fabian/label/lh.aparc.annot index color name 0#190519 unknown 1#196428 bankssts 2#7d64a0 caudalanteriorcingulate 3#641900 caudalmiddlefrontal ... 33#4614aa temporalpole 34#9696c8 transversetemporal 35#ffc020 insula
查找标记区域的边界
fromfreesurfer_surfaceimportSurfacesurface=Surface.read_triangular('bert/surf/lh.pial'))surface.load_annotation_file('bert/label/lh.aparc.annot')region,=filter(lambdal:l.name=='precentral',annotation.labels.values())print(surface.find_label_border_polygonal_chains(region))
测试
pip3 install --user pipenv git clone https://github.com/fphammerle/freesurfer-surface.git cd freesurfer-surface pipenv run pylint freesurfer_surface pipenv run pytest --cov=freesurfer_surface