一个处理3d地标的python包
Scyland3D的Python项目详细描述
scyland3d:处理3d地标
Scyland3D
是一个python工具,用于将从地标采集软件(例如Landmark Editor 3.6 from IDAV, UC Davis)导出的3d原始地标和半地标坐标转换为最适合几何形态分析的csv格式。
为了解决进一步的对称性问题,提供了对这些点进行镜像和重新排序的处理方案。
签署人:
安装
使用pip安装和更新:
pip install -U Scyland3D
依赖关系:
- Python2或3。scyland3d已经用python 2.7.16和3.6.3进行了测试,should应该用python的旧版本。
- Numpy>;=1.13.3。scyland3d已经用numpy 1.13.3和1.16.2进行了测试,should应该用旧版本的numpy工作。
如果遇到其他版本的错误,请submit an issue。
用例示例
要快速处理地标文件,可以给scyland3d包含.pts
文件的文件夹的路径(格式在http://www.idav.ucdavis.edu/research/projects/EvoMorph/supplement/LandmarkDoc_v3_b6.pdf的第37页定义),如提供的示例文件所示:
import Scyland3D
Scyland3D.pts2csv("example/")
这将创建一个名为landmarks.csv
的文件,您可以用任何语言/软件进行统计分析。
提供的示例文件来自我们的数据集的一个子集,该数据集用于研究小型斑点猫鲨scyliorhinus canicula的牙齿。
我们为2颗上牙和3颗下牙提供7个地标和31个半地标坐标,存储在描述它们所属样本的两个文件夹中。
地标是一个手动设置的点,而不是一个半地标,它是由计算机根据所研究的形状的曲率在两个地标之间插值的。
API文档
函数pts2csv()
是scyland3d的核心,当使用来自终端的带有以下参数的脚本时也会调用该函数:
- indir(必需)
- 包含存储文件的输入目录的字符串。文件名可以指定由
_
分隔的功能模式(例如speciesa_agex_sex1.pts)。 - 默认:使用“example/”文件夹
- 示例:
Scyland3D.pts2csv("path/")
- 命令行:
python -m Scyland3D.Scyland3D -i "path/"
- 包含存储文件的输入目录的字符串。文件名可以指定由
- outdir(可选)
- 包含将在其中生成文件的输出目录的字符串。
- 默认:使用当前文件夹。
- 示例:
Scyland3D.pts2csv(outdir="path/")
- 命令行:
python -m Scyland3D.Scyland3D -o "path/"
- order(可选)
- 一个整数列表,指示应用于地标的新顺序。还必须提供order_factor参数。
- 默认值:无
- 示例:
Scyland3D.pts2csv(order_factor="upper", order=[36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 37])
- 命令行:
python -m Scyland3D.Scyland3D -f "upper" -r "36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 37"
- 顺序因子(可选)
- 一个字符串,包含需要重新排序其地标和半地标的项的关键字。还必须提供order参数。
- 默认值:无
- 示例:如果数据集包含只需要重新排序上牙的下牙和上牙,则可以使用:
Scyland3D.pts2csv(order_factor="upper", order=[36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 37])
- 命令行:
python -m Scyland3D.Scyland3D -f "upper" -o "36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 37"
。只有在文件名中存在关键字upper
时,此选项才有效。
- 功能名称(可选)
- 包含要素名称的字符串列表。
- 默认值:无
- 示例:
Scyland3D.pts2csv(feature_names=["identifier", "species", "location", "length", "sex", "stage", "jaw", "position", "generation"])
- 命令行:
python -m Scyland3D.Scyland3D -n "identifier,species,location,length,sex,stage,jaw,position,generation"
- verbose(可选)
- 指示进程是否应在控制台上打印信息的布尔值。
- 默认值:真
- 示例:
Scyland3D.pts2csv(verbose=False)
- 命令行:
python -m Scyland3D.Scyland3D -v False
,用于删除控制台的信息显示。
- 镜像因子(可选)
- 包含keywo的字符串要在三维空间中镜像的项的RD。
- 默认值:无
- 示例:
Scyland3D.pts2csv(mirror_factor="upper")
- 命令行:
python -m Scyland3D.Scyland3D -m "upper"
将在3d中镜像包含关键字upper
的文件,然后使用下图所示的其余lower
项对其进行处理:
更多信息可以在related article上找到。
如何贡献
欢迎投稿! 请参阅CONTRIBUTING.md文件。
许可证
scyland3d根据license file中描述的麻省理工学院许可证获得许可。请使用以下引文:
@article{Berio2019,
author = {Berio, Fidji and Bayle, Yann},
title = {{Scyland3D: Processing 3D landmarks}},
journal = {{The Journal of Open Source Software}},
page = {1153--1155},
volume = {4},
issue = {33},
doi = {10.21105/joss.01153},
note = {Review pending}
}
致谢
我们感谢SFR Biosciences(UMS3444/CNRS,US8/INSERM,ENS de Lyon,UCBL)设施:Anira Immos和Mathilde Bouchet对X射线显微断层扫描的帮助。