前情
上一篇用现成软件可视化了swc格式的神经元,但是没找到进一步分析的方法。
读取
因为最终还是打算用python进行分析,所以不断搜索如何用python读取swc格式文件,山穷水复疑无路时,尝试出可以用read_csv命令直接读取文件。真没想到这么简单!!!
2022年5月29更新,三块代码贴到一起可运行
Step1:导入pandas库,读取数据并查看
import pandas as pd
data = pd.read_csv("D:/101711-1_3-of-16_initial.CNG.swc",header = None)
#header=None 说明文件中第一行不是列名,读取的时候要直接作为数据。
# 这里输出data 会如【图一】所示
【图1】:可以看到只有一列,所以Step2将其拆分为7列并添加列名
Step2:根据SWC数据各列代表的神经元的含义,确定列名并使用split方法拆分。
columnNames = ['Sample number','Structure Identifier','x position','y position','z position','radius','parent sample']
for i in range(7):
# 因为查看 data数据发现是有7列数据在一列中,所以要把它们拆分
data[columnNames[i]] = data[0].apply(lambda x:x.split(' ')[i])
# data[0]指的是列名为0的列,也就是唯一那个数据列
【图2】:查看Step2后的数据data,取出前10行显示如下,列标签为0的列是原始文件内容,后边七列是拆分后内容。
Step3:删除掉原始数据0列。
data.drop(labels = 0,axis = 1)#删除列标签为0的列,即原始列
删除列标签为0的列,再次查看数据得到下面形式数据。
后续
小菜鸡每一个小小的进展都好难,为避免忘记,事无巨细记录在此。若有同道中人,欢迎交流~