Skip to content

read_file 接口

接口: /ms_jk/read_file

这里假定前端配置的字段是infile,根据不同的file_format分别介绍如下:

1. file_format=text/plain|table

输入数据文本是类表格格式,这两个值没有区别,前者是历史字段,这里兼容处理,没有删除。这里值的表格格式指包含表头,所有行以相同分隔符分割,具有相同列数的数据

参数:
- callback_name: 指定从请求中的哪个字段获取输入文件,这里根据假设值为infile - infile: 输入文件的服务器路径 - callback_function: 处理输入文件的参数,该参数值为dict类型 - callback_data_path: 默认值data,返回的数据位于那个字段下面,该参数不建议修改 - file_format: 文件的格式,这里取table - separator: 分割符,默认值为auto,程序会自动识别文件分割符(由于历史原因前端的配置可能是sep),这里建议不配置该参数,使用默认值由程序自行处理即可。 - only_header: 是否只读取表头,默认值为False,当指定为True时,该接口的返回为控件回调功能使用的格式,默认返回预览功能所需的格式。

假设infle文件内容如下:

A,B
1,3
2,6

假定callback_data_path使用默认值data时,

  • only_header=True返回格式(给前端的列表控件的回调使用的格式)如下:
{
  "data": [{'label': 'A', 'value': 'A'}, {'label': 'B', 'value': 'B'}]
}
  • only_header=False返回格式(给前端预览使用的格式)如下:
{
  "data": {'index': [0, 1], 'columns': ['A', 'B'], 'data': [[1, 3], [2, 6]]}
}

2. file_format=excel_default|excel

输入数据是excel二进制格式文件,这两个值没有区别,前者是历史字段,这里兼容处理,没有删除。excel文件里只读取第一个sheet页,默认有表头且为第一行,所有行具有相同的列数。

参数:
- callback_name: 指定从请求中的哪个字段获取输入文件,这里根据假设值为infile - infile: 输入文件的服务器路径

当前小工具中暂未用到excel类型文件,目前没有针对该功能开发额外的参数,当前仅支持预览场景使用,暂不支持参数联动

3. file_format=h5ad

输入数据是.h5ad格式文件,可以通过指定不同attr读取不同文件内容。

参数:

  • callback_name: 指定从请求中的哪个字段获取输入文件,这里根据假设值为infile
  • infile: 输入文件的服务器路径
  • attr: 读取输入文件的指定属性的内容,可选值 (obs,obsm,layer,var,gene)

attr=='obs' 时,

    if self.attr in "obs":
        return self._obs()
    elif self.attr == "obsm":
        return self._obsm()
    elif self.attr == "layer":
        return self._layer()
    elif self.attr == "var":
        return self._var()
    elif self.attr == "gene":
        return self._gene()

read_file会从请求中获取callback_name的值,该值必须在请求中存在同名参数。 比如 callback_name=infile,则请求中必须包含infle,这样通过该值

"rawdata": { "action": "/ms_jk/upload_file", "limit": 0, "upload_name": "file", "accept": "", "show_name": "特征定量表", "is_show": true, "form_type": "upload", "data_path": "filepath", "type": "", "default_value": "", "sample_default_value": "data_dir/demo_sample_data/proteins.txt", "note": "特征定量表输入文件,支持csv格式和以\t分隔的txt文件", "required": true, "is_download":true, "callback_route": "/ms_jk/read_file", "callback_function": { "only_header": true, "file_format": "text/plain" }, "callback_name": "rawdata", "callback_data": "", "callback_data_path": "data", "callback_specify_fields": { "featureCol1.select_list": "data" }, "preview_route": "/ms_jk/read_file", "preview_handle_function": { "callback_name": "rawdata", "callback_function": { "file_format": "text/plain" } }, "preview_data_path": "data" },