adata.raw使用

import scanpy as sc 
dataset ="bct"

adata = sc.read("/home/yxk/Desktop/test_dataset/bct/bct_raw.h5ad")
print(adata)
print(adata.X[0:10,0:10])
adata.raw = adata
## raw_visulize
############################################
sc.pp.normalize_per_cell(adata,counts_per_cell_after=10000)
sc.pp.log1p(adata)
sc.pp.highly_vari
able_genes(adata, n_top_genes=1000, subset = True)
sc.tl.pca(adata,svd_solver='arpack')
print(adata)
sc.pp.neighbors(adata)
sc.tl.umap(adata)
sc.pl.umap(adata,color=["celltype","BATCH"])
############################################

在这里插入图片描述# 重新回复原始的counts

aa=adata.raw.to_adata()
print(aa)
print(aa.X[0:10,0:10])

在这里插入图片描述

scanpy批量读取单细胞数据过程中 输入以下代码:import os import scanpy as sc # 定义文件夹路径和样本文件名 base_dir = r"E:\GSE189903(34samples)\HCC(20samples)\Tumor core" sample_files = [ "GSM5709317_1HT1_raw_feature_bc_matrix.h5", "GSM5709318_1HT2_raw_feature_bc_matrix.h5", "GSM5709319_1HT3_raw_feature_bc_matrix.h5", "GSM5709322_2HT2_raw_feature_bc_matrix.h5", "GSM5709325_3HT1_raw_feature_bc_matrix.h5", "GSM5709326_3HT2_raw_feature_bc_matrix.h5", "GSM5709327_3HT3_raw_feature_bc_matrix.h5", "GSM5709330_4HT1_raw_feature_bc_matrix.h5", "GSM5709331_4HT3_raw_feature_bc_matrix.h5", "GSM5709332_4HT2_raw_feature_bc_matrix.h5", "GSM5709336_2HT1_raw_feature_bc_matrix.h5", "GSM5709337_2HT3_raw_feature_bc_matrix.h5" ] adatas = [] for file_name in sample_files: # 构造完整的文件路径 file_path = os.path.join(base_dir, file_name) # 读取 h5 文件 ad = sc.read_10x_h5(file_path) # 提取样本名(文件名去掉后缀) sample_name = os.path.splitext(file_name)[0] # 添加样本名作为观测元数据 ad.obs["sample"] = sample_name # 确保变量名(基因名)是唯一的 ad.var_names_make_unique() # 在这里调用该方法 # 添加到列表中 adatas.append(ad) # 合并样本 adata = sc.concat(adatas, label='sample', keys=sample_files, index_unique='-') # 检查结果 print(adata) 出现报错:reading E:\GSE189903(34samples) \HCC(20samples)\Tumor core\GSM5709317_1HT1_raw_feature _bc_matrix.h5 (0:00:05) C: \Users\zhang\AppData\Loca/\Progra ms\Python\Python312\Lib\site-packa geslanndatal_corelanndata.py:1758:UserWarning: Variable names are not unique. To make them unique, call ".var_names_make_unique". utils.warn_names_duplicates("var")
最新发布
04-03
如果我需要将一个g711a的字节数组包装成wav格式音频,这个方法还有什么需要改进的地方 public static File createWavFile(byte[] g711aData, String outputPath) throws IOException { try (ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(baos)) { int numChannels = 1; // 单声道 long sampleRate = 8000L; // 采样率为8kHz short bitsPerSample = 16; // G.711 每样本占用一位深度为8bit short blockAlign = (short)(numChannels * bitsPerSample / 8); // 对于G.711来说就是1 // 计算实际音频数据大小 int dataSize = g711aData.length; // Write the RIFF header ("RIFF") writeFourCC(dos, "RIFF"); // Calculate file size and subtract 8 bytes for 'RIFF' marker dos.writeInt((int) (36 + dataSize)); // Write format type ("WAVE") writeFourCC(dos, "WAVE"); // Write the 'fmt ' sub-chunk with necessary parameters. writeFourCC(dos, "fmt "); // Subchunk1Size = 16 for minimum 'fmt ' dos.writeInt(16); // Audio Format: 0xFFFE to indicate non-standard codec (G.711A in this case) dos.writeShort((short) 0xFFFE); // Number of Channels & Sample Rate dos.writeShort(numChannels); dos.writeInt((int)sampleRate); // Byte rate = NumChannels * SampleRate * BitsPerSample / 8 dos.writeInt((int)((numChannels * sampleRate * bitsPerSample) / 8)); // Block Align dos.writeShort(blockAlign); // Bits Per Sample dos.writeShort(bitsPerSample); // Start writing data chunk identifier ('data') writeFourCC(dos, "data"); dos.writeInt(dataSize); // Finally add raw audio content as-is from input array //dos.write(g711aData); File outputFile = new File(outputPath); // Create target output file at specified path Files.createDirectories(outputFile.getParentFile().toPath()); FileOutputStream fos = new FileOutputStream(outputFile); System.out.println("baos.toByteArray().length:"+baos.toByteArray().length); fos.write(baos.toByteArray()); fos.flush(); OutputStream os = null; try{ os = new BufferedOutputStream(new FileOutputStream(outputPath)); System.out.println("baos.toByteArray():"+Arrays.toString(baos.toByteArray())); System.out.println("baos.toByteArray():"+baos.toByteArray().length); os.write(baos.toByteArray()); }catch (Exception e){ e.printStackTrace(); }finally { os.close(); baos.close(); } return outputFile; } }
03-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值