# 运行命令说明

## 用途与运行方式

### mergeAdata: 多片h5ad合并

将多个h5ad文件合并为一个h5ad文件

```bash
SDAS dataProcess mergeAdata -i mult.csv -o outdir
```

### h5ad2rds: h5ad转rds

将h5ad格式数据转换为rds格式

```bash
SDAS dataProcess h5ad2rds -i st.h5ad --run_mode stRNA -o outdir
```

### h5mu2h5ad: h5mu转h5ad

将h5mu格式数据转换为h5ad格式

```bash
SDAS dataProcess h5mu2h5ad -i st.h5mu -o outdir
```

### printAdataInfo: 打印adata信息

输出h5ad文件的详细信息到shell或指定目录

```bash
SDAS dataProcess printAdataInfo -i st.h5ad -o outdir
SDAS dataProcess printAdataInfo -i st.h5ad 
```

### subsetAdata: h5ad子集提取

根据指定条件提取h5ad的子集，支持数值区间或列表筛选

* 数值筛选：

```bash
SDAS dataProcess subsetAdata -i st.h5ad --label_key total_counts -o outdir \
--min 100 --max 5000
```

* 列表筛选：

```bash
SDAS dataProcess subsetAdata -i st.h5ad --label_key anno_spotlight -o outdir \
--list_include B,Fibroblast
```



## 输入参数说明

| 参数                  | 是否必须  | 说明                                                        |
| ------------------- | ----- | --------------------------------------------------------- |
| **-i / --input**    | **是** | 输入文件，支持h5ad、h5mu、csv（mergeAdata进行多片合并时，输入为csv，首行为表头）      |
| **--label\_key**    | **是** | subsetAdata时使用，提取adata子集指定的obs或者var的列名                    |
| -o / --output       | 否     | 输出文件夹，printAdataInfo不加-o时，将adata信息输出到shell                |
| --run\_mode         | 否     | h5ad2rds时使用，输入数据类型，stRNA或scRNA，默认为stRNA                   |
| --gene\_symbol\_key | 否     | mergeAdata时使用，指定h5ad.var中基因名的列名（\_index表示用h5ad.var.index） |
| --layer             | 否     | h5ad2rds和subsetAdata时使用，指定h5ad存储raw counts的layer层         |
| --list\_include     | 否     | subsetAdata时使用，label\_key为列表时需提取的元素，如Fibroblast,B,NK      |
| --list\_exclude     | 否     | subsetAdata时使用，label\_key为列表时不需提取的元素                      |
| --min               | 否     | subsetAdata时使用，label\_key为数值时的最小值                         |
| --max               | 否     | subsetAdata时使用，label\_key为数值时的最大值                         |

## 输出结果展示

| 结果文件                          | 说明                   |
| ----------------------------- | -------------------- |
| `<input_name>.h5ad`           | h5mu转换的h5ad          |
| `<input_name>_subset.h5ad`    | subsetAdata得到的子集h5ad |
| `combine.h5ad`                | 多片合并后的h5ad           |
| `<input_name>.rds`            | h5ad转换的rds文件         |
| `<input_name>_adata_info.txt` | adata的详细信息           |

* **adata的详细信息**`<input_name>_adata_info.txt` 该文件用于快速了解AnnData对象的结构、包含哪些主要信息，以及标签的分布情况。文件主要输出以下几类信息：
  * AnnData对象的基本维度（观测数n\_obs × 特征数n\_vars）
  * obs（观测/样本）和var（特征/基因）包含的字段名称
  * uns、obsm、layers、obsp等存储的分析结果或元数据类型
  * obs和var的列数统计, obs\_names和var\_names的前5个值
  * obs中每个分类字段的唯一值数量和具体取值（如leiden聚类标签、样本信息等）

```
AnnData object with n_obs × n_vars = 120 × 32577
    obs: 'total_counts', 'n_genes_by_counts', 'pct_counts_mt', 'leiden', 'orig.ident', 'x', 'y'
    var: 'real_gene_name', 'n_cells', 'n_counts', 'mean_counts', 'mean', 'dispersions', 'dispersions_norm', 'highly_variable'
    uns: 'bin_size', 'bin_type', 'gene_leiden', 'mt', 'leiden_resolution', 'neighbors', 'omics', 'pca_variance_ratio', 'rank_genes_groups', 'resolution'
    obsm: 'spatial'
    layers: 'raw_counts'
    obsp: 'connectivities', 'distances'

The 'obs' attribute of the AnnData contains 7 columns.
The 'var' attribute of the AnnData contains 6 columns.

Top 5 cell names: Index(['56032143344836', '56027848377591', '56006373541090', '55941949031633',
       '55937654064316'],
      dtype='object')
Top 5 gene names: Index(['ENSG00000000003', 'ENSG00000000005', 'ENSG00000000419',
       'ENSG00000000457', 'ENSG00000000460'],
      dtype='object')
Top 5 real_gene_name: ['TSPAN6', 'TNMD', 'DPM1', 'SCYL3', 'C1orf112']

Number of unique values in each column of 'obs' (except 'total_counts', 'n_genes_by_counts', 'pct_counts_mt', 'x', 'y')
leiden: 8 unique values
orig.ident: 1 unique values

Unique values in each column of 'obs':
**************************************************
leiden: Index(['10', '11', '12', '13', '14', '15', '16', '17'], dtype='object')
**************************************************
orig.ident: Index(['sample1'], dtype='object')
**************************************************
```

