【发布时间】:2012-03-02 22:05:30
【问题描述】:
我们有一个荧光光谱仪,它以一种不舒服/愚蠢的方式输出其荧光数据以供进一步处理。即实际数据开始前有55行cmets和信息。然后第 55 行从第 1 列中的发射波长和第 2 列中的荧光值开始,由制表符限制器分隔。在 cmets 中,第 22 行还有激发波长。文件看起来像这样(行号不是文件的一部分。我只是为了清楚起见添加了它们):
Line 1 Stefan
Line 2 Date: 23.1.2012
Line 3 WS_40#01.SP
Line 4 ...
Line 22 240
Line 23 ...
Line 55 300.000000 62.237799
Line 56 300.500000 59.904189
Line 57 301.000000 58.901731
Line 58 ...
Line 656 600.5 23.900000
每个激发波长有一个文件,一个样品总共有 44 个文件(激发从 240 到 455 nm,步长为 5 nm)。 44 个光谱的通用文件名存储在一个名为“filename.txt”的文件中。这 44 个文件以数字命名,例如 FILENAME#01.sp, FILENAME#02.sp,..., FILENAME#44.sp
目标: 我想从这 44 个文件中创建一个矩阵,如下所示(理想情况下,激发波长取自第 22 行,但列名也可以手动创建,因为它们始终相同):
240 245 250 ... 455
300.0 62.23 34.4 ... ... 23.5
300.5 59.90 23.7 ... ... 19.5
301.0 58.90 23.7 ... ... 34.8
... ... ... ... ...
600.5 23.90 ... ... ...
最后,矩阵应该存储在一个名为 filename.csv 的文件中
这如何使用 C++ 或 Python 实现?
问题是我已经在 R 中为此编写了一个解决方案。但是我们希望为此提供一个 .exe 文件,以便实验室技术人员可以在不熟悉 R 的情况下完成这项任务。这真的很有帮助我们的实验室可以完成重要的事情。
不幸的是,我没有任何好的 python 或 c++ 代码可以开始。
如果问题不清楚,请告诉我。在这种情况下,我将添加一些信息或改写问题。
非常感谢任何直接帮助或与其他网站/帖子的链接。
【问题讨论】: