Source code for scSemiProfiler.get_eg_representatives

import pdb,sys,os
import argparse
import anndata
import scanpy as sc
import numpy as np
from scipy import sparse



[docs]def get_eg_representatives(name:str) -> None: """ Used for acquiring representatives' single-cell data in the example. Automatically check the latest representatives and store their single-cell data as /representative_sc.h5ad under the project's directory. Parameters ---------- name Project name Returns ------- None Example ------- >>> name = 'project_name' >>> scSemiProfiler.get_eg_representatives(name) """ scdata = anndata.read_h5ad('example_data/scdata.h5ad') sids = [] f = open(name + '/sids.txt', 'r') lines = f.readlines() for l in lines: sids.append(l.strip()) f.close() # get the latest round representatives = [] files = os.listdir(name+'/status/') rounds = [0] for file in files: if 'representative' in file: f = open(name + '/status/' + file, 'r') lines = f.readlines() if len(lines) > len(representatives): representatives = [] for l in lines: representatives.append(int(l.strip())) f.close() rsids=[] for r in representatives: sid = sids[r] rsids.append(sid) rmask=[] for i in range(len(scdata.obs.index)): sid = scdata.obs['sample_ids'][i] if sid in rsids: rmask.append(True) else: rmask.append(False) rmask = np.array(rmask) repredata = scdata[rmask,:] X = repredata.X X = np.array(X.todense()) X = np.exp(X) - 1 X = sparse.csr_matrix(X) adata = anndata.AnnData(X) adata.obs = repredata.obs adata.var = repredata.var adata.write(name + '/representative_sc.h5ad') print('Obtained single-cell data for representatives.') return
def main(): parser = argparse.ArgumentParser(description="scSemiProfiler initsetup") #parser._action_groups.pop() parser.add_argument('--name', help='Project name.') args = parser.parse_args() #required = parser.add_argument_group('required arguments') #optional = parser.add_argument_group('optional arguments') #required.add_argument('--name',required=True,help="Project name.") #optional.add_argument('--na',required=False, default='new_project', help="Pe.") name = args.name get_eg_representatives(name) if __name__=="__main__": main()