记录一下GEO数据的读入方式
import anndata as ad
import scanpy as sc
import anndata
from scipy import io
import numpy as np
import os
import pandas as pd
import re #导入包 数据处理
### 循环读取数据
dir_data='../GSEXXXX/' #数据储存路径
data_ls=os.listdir(dir_data) #列出文件夹内的文件名称
a_ls=[f for f in data_ls if f.startswith('GSM')] #提取GSM文件名称
print(a_ls)
# 使用正则表达式找到最后一个下划线的位置并分割字符串
split_results = [re.split(r'_(?=[^_]*$)', filename)[0] for filename in a_ls]
unique_res=list(set(split_results))
adatas=[]
for i in unique_res:
print(i)
adata=sc.read_10x_mtx(path=dir_data,prefix=i+'_',var_names='gene_symbols') #prefix= 指定前缀
adata.obs['sample_name']=re.split('_',i)[0] #添加样本名称 GSMxxxx
adata.obs['Group']=re.sub(r'\d+', '',i.split('_', 1)[1]) #按照第一个下划线分割并取出第二部分 然后去掉数字 添加分组信息 例如 tumor/normal
adata.var_names_make_unique() #合并之前 保证基因名称唯一性
#基本质控
sc.pp.filter_cells(adata, min_genes=200)
sc.pp.filter_genes(adata, min_cells=3)
adatas.append(adata) #追加到adatas (一个list)