小角X射线散射(SAXS)是一种用于研究纳米至微米尺度材料内部结构的分析技术。它可以用来探测各种材料的微观结构特征,如粒子尺寸、形状、孔隙率和分子排列等。
随着技术的进步,SAXS数据分析变得更加精确和高效。SAXS数据分析软件有很多,从开源免费的SASfit到功能强大的ATASAS,再到广泛使用的Fit2D和SASVIEW。
本文将主要介绍SAXS中一维曲线数据分析和Fit2D软件的安装指南及常见问题解答。
-
一、数据分析
在SAXS分析中,散射峰位置(q)反映了样品中结构尺寸的倒空间表示,其值与样品内部结构的尺寸成反比;散射峰强度(I(q))表示在特定q值处的散射光强度,与电子密度的不均匀性相关,强度越高,表明电子密度对比越大或散射体数量越多;散射峰宽度(FWHM)则与样品中结构的尺寸均匀性和有序度相关,宽度越小,表明结构越均匀或有序度越高。
图1 SAXS数据(左图)和一维曲线图(右图)
SAXS横坐标是散射峰的位置,纵坐标是散射峰的强度,这一点与XRD是类似的,纵坐标的绝对值代表相对强度。在XRD中横坐标的位置通常用角度θ或2θ表示,在SAXS中用q表示,q一般叫做散射矢量或者散射因子,q与θ有简单的换算关系, q= 4πsinθ/λ。在SAXS中由于θ的数值变化范围很小,所以用q表示更方便。
在XRD中,衍射峰对应的θ可以换算出对应的晶面间距,实际上就是样品中一定范围内的周期性长度。在SAXS中物理意义上是一样的,还是样品中一定范围内的周期性长度,只是由于θ值更小,对应的长度也就更大。通俗地讲,这些长度可以是粒径、孔径、层间距等等,甚至是一些不是通常结构尺寸意义的长度。
Fit2D.exe是一个开源且免费的软件,用户可以从欧洲同步辐射设施(ESRF)网站下载:https://www.esrf.fr/computing/scientific/FIT2D/。
点击网页链接,找到“CURRENTLY AVAILABLE EXECUTABLES”。
图2下载地址页面
根据需要,选择对应的版本进行下载。
图3不同系统的Fit2D软件
下载完成后会出现下面这个图标。该软件不需要安装,双击打开就可以使用。
图4下载成功
打开后会出现两个弹框,分别是图形界面和DOS界面,其中DOS界面可以实时显示运行,不能关闭。
图5图形界面
点击左下角就可以进入数据处理界面,参数设置需要根据当时测试时所使用的探测器而定,比如使用的Mar165 CCD探测器,那么在“X DIMENSION”和“YDIMENSION”处分别填“2048”。
图6图形界面
图7探测器参数
问:电脑上安装了Fit2D,但它不起作用!计算机显示“segmentation fault (core dumped)”
答:从aftp服务器下载的Fit2D可执行文件运行正常,请检查文件是否完整传输,确保字节数与服务器上的文件一致。若文件以ASCII模式传输,可能导致损坏。Netscape 4用户可能遇到下载问题,请遵循aftp指南下载。
问:如何避免每次使用FIT2D 时都必须指定数组大小?
在命令行中,可以通过指定程序尺寸来运行Fit2D程序,例如使用‘Fit2D-dim2048x2560’命令设置程序尺寸为2048×2560像素。为了避免尺寸问题,可以将此命令设置为别名,并添加到启动文件中,如下所示:
这样设置后,每次使用‘Fit2D’命令时,都会自动应用这个尺寸设置。需要注意的是,如果命令选项可以重复,那么最后一个指定的选项将被采用。例如,即使已经设置了别名,执行‘Fit2D-dim1024×1024′命令时,程序尺寸将被设置为1024×1024像素。此方法适用于C-shell或TC-shell环境。
问:在RAM 配额为 128 MB 的机器上,无法加载 3544×4316像素的 IMAGEQUANT 文件,出现以下错误:
状态:The error was identified in module: IO: Input/Output and Status
状态:Position where error condition was identified Subroutine IO_MALLOC V0.1
状态:The error condition has been classified as: Bad memory allocation: Memory allocation failed
但是检查了1772×2158 像素的 Imagequant 文件,Fit2D 占用了 22.6 Mbyte,预计它需要 4×22.6=90.4Mbyte。
答:Fit2D程序在内存分配方面可能需要特别注意。每个像素大约需要9字节的内存,加上大约10MB的其他通用RAM。因此,处理小图像可能需要大约44MB的内存。系统在初始阶段可能不会立即映射所有内存,所以显示的数值可能较小。
对于较大的图像,预计需要约148MB的内存。只要系统的交换文件和进程内存限制足够大,就可以运行Fit2D。使用128MB的RAM进行分页通常是可行的。
问:有必要为 Macintosh 上的 Linux 准备一个Fit2D 可执行文件吗?或者是否有适用于 sparc 处理器上的 Linux 的可执行文件?
答:目前,Fit2D主要支持x86 PC上的Linux版本,这是为了确保软件能在最新的、性能最优的处理器上运行,并且与科学界广泛使用的其他程序兼容。虽然Solaris版本支持Sparc处理器,但目前不推荐使用非主流的解决方案。
尽管Dec/Compaq Alpha硬件在原始性能上优于Intel Pentiums,但差距正在缩小,且目前只有Dec-Unix版本支持Alpha。对于Linux版本的Alpha支持,目前并不在考虑范围内。
问:Fit2D 在 Windows 95 和 Windows 98 系统上会崩溃吗?
答:FitT2D之前在某些系统上遇到了崩溃问题,但最新版本(V10.130或更高)应该已经解决了这些问题。
在Windows NT系统上,使用软件产品Purify进行的测试显示,NT版本没有内存泄漏或其他问题。然而,Windows 95的问题尚未完全明确,可能与堆使用恢复或旧的16位GDI例程有关。Windows 98理论上与DOS的联系较少,但错误消息的输出顺序在W95和W98上可能会造成混淆。
问:试图读取4年前的一些文件。这些文件是在 Fuji-Bas 2000 扫描仪上读取的。不知何故,Fit2D 无法使用 Fuji 选项读取这些文件。这该如何处理?尝试使用“二进制”格式,使用 2 字节整数,不进行字节交换。它显示的文件看似合理,但是,它当然没有进行以十为底的对数转换,因此相对强度不是很合理。如何在二进制文件上附加标题,以便我可以使用Fit2D BAS-2000 选项读取它?
答: Fuji-Bas 2000扫描仪采用双文件系统,包括二进制的.img数据文件和包含图像信息的ASCII.inf头文件。FitT2D软件需要这两个文件来处理数据,用户可以通过GUI界面访问。
为了使用FitT2D,可以创建自定义的.inf文件,或者利用软件的FUJI LINEARISATION功能直接对原始二进制数据进行线性化处理。自V9.164版本起,FIT2D允许用户在线性化公式中自定义所有变量。
Macintosh用户在使用扫描仪时可能会遇到.inf文件不自动生成的问题,这在数据传输到其他系统时会造成困难。虽然可以使用MacBAS手动创建.inf文件,但这过程较为繁琐。有用户称Mac版的ftp软件也能创建.inf文件,但尚未验证。
问:如何将一张图片与另一张图片相除?
答:作为对图像进行典型二元运算的一个示例,使用image1.dat除以image2.dat。可以采用以下步骤:
1️⃣进入图像处理(通用)界面。
2️⃣使用INPUT命令从image2.dat输入数据。
3️⃣使用EXCHANGE命令将数据放置在“内存”中。
4️⃣使用INPUT命令从image1.dat输入数据。
5️⃣使用MATHS命令进入MATHS子菜单。
6️⃣使用DIVIDE命令将当前数据除以“内存”数据。
6️⃣结果留在当前数据数组中,而image2.dat 数据留在内存中。
注意:可以按相反的顺序输入图像,但需要额外的EXCHANGE命令,以便正确进行划分。同样的逻辑也适用于两幅图像的减法。图像的加法和乘法的顺序并不重要。
问:在Silicon Graphics Irix 系统上,当另一个窗口覆盖该窗口后,Fit2D 不会重启该窗口。
答:在Silicon Graphics X服务器上,当图形窗口被其他窗口覆盖后再重新显示时,可能不会自动重新绘制。这是因为默认设置下,这些服务器不提供“后备存储”(backing store)。
为了解决这个问题,FitT2D在创建图形窗口时会请求后备存储,这在大多数X服务器上都能正常工作。要使Silicon Graphics X服务器支持这一功能:
1️⃣修改X服务器配置:编辑‘/usr/lib/X11/xdm/Xservers’文件,确保在启动Xsgi时不包含‘-bs’选项。这有助于避免类似问题影响IDL等其他程序。
2️⃣启用后备存储:启用后备存储后,窗口管理器会在窗口未被覆盖时自动重新绘制窗口。
问:在我的 Linux 系统上,Fit2D 拒绝启动图形窗口,说 X 服务器是 16 位的并且不受支持。
答:这是正常的,目前支持 8 位和24 位颜色模式。
对于24位颜色模式,输入:
对于8位颜色模式,输入:
此设置适用于较旧的硬件,但可能会导致颜色闪烁。
问:调整探测器的“倾斜”角度(与直接光束不正交)时,每次使用不同的环或起点都会得到不同的答案。
答:探测器系统的空间失真是一个常见问题,通常可以通过校准和纠正来解决。光纤锥度和CCD探测器系统尤其容易受到影响,而图像板扫描仪也可能存在显著的空间失真。
FIT2D通过在粉末环上寻找点并拟合椭圆来处理数据。如果存在未校正的空间失真,这会影响椭圆的形状,导致结果不稳定和错误。
即使没有空间失真,如果像素不是正方形且未考虑这一点,测量的倾斜角度可能会稳定但错误。集成线可能看起来清晰,但角度测量不准确。
理论上,完美的椭圆有两个等效的解决方案,具有正负倾斜角和不同的光束中心。只有通过直接光束标记或光束停止散射,才能确定正确的光束中心。
值得注意的是,即使使用“错误”的倾斜度,环集成时也能得到正确的角度,因此不必过于担心倾斜度的正负问题。
问:通过宏按顺序运行 GUI 的某些菜单。在哪里可以找到适合各种命令的名称?如果整合一系列帧来生成粉末图案。进入菜单,并想在整合菜单中设置参数,例如保持强度、应用极化等。
答:要创建或扩展FitT2D宏文件,请按照以下步骤操作:
1️⃣开始记录:使用“键盘”菜单或“宏”界面中的“启动宏”按钮开始记录操作。
2️⃣执行分析:进行所需的数据分析步骤,包括设置表单值。
3️⃣停止记录:使用“停止宏”命令结束记录过程,此时所有操作将被保存到宏文件中。
4️⃣编辑宏文件:可以编辑生成的宏文件,将有用的设置从一个文件复制到另一个。
5️⃣表单输入:在宏中,表单输入的命令是按钮的名称。
6️⃣逻辑值处理:宏在录制和播放时会提示输入逻辑值(YES或NO),以避免在表单输入中切换逻辑值时出现问题。