Mercurial > repos > goeckslab > scimap_mcmicro_to_anndata
comparison scimap_phenotyping.py @ 0:2a3152751ca8 draft
planemo upload for repository https://github.com/goeckslab/tools-mti/tree/main/tools/scimap commit b19cb55dfb751cccc857b95a432890299bfeebb5
| author | goeckslab |
|---|---|
| date | Tue, 19 Jul 2022 20:29:59 +0000 |
| parents | |
| children | 4c767e1a9e7c |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:2a3152751ca8 |
|---|---|
| 1 import argparse | |
| 2 import warnings | |
| 3 | |
| 4 import pandas as pd | |
| 5 import scimap as sm | |
| 6 from anndata import read_h5ad | |
| 7 | |
| 8 | |
| 9 def main( | |
| 10 adata, | |
| 11 output, | |
| 12 gating_workflow, | |
| 13 gating_workflow_ext, | |
| 14 manual_gates=None, | |
| 15 manual_gates_ext=None, | |
| 16 rescale_plots=False | |
| 17 ): | |
| 18 """ | |
| 19 Parameter | |
| 20 --------- | |
| 21 adata : str | |
| 22 File path to the input AnnData. | |
| 23 output : str | |
| 24 File path to the output AnnData. | |
| 25 gating_workflow : str | |
| 26 File path to the gating workflow. | |
| 27 gating_workflow_ext : str | |
| 28 Datatype for gating workflow, either 'csv' or 'tabular'. | |
| 29 manual_gates : str | |
| 30 File path to the munual gating. | |
| 31 manual_gates_ext : str | |
| 32 Datatype for munual gate, either 'csv' or 'tabular'. | |
| 33 rescale_plots : boolean | |
| 34 Save plots from rescaling. | |
| 35 """ | |
| 36 warnings.simplefilter('ignore') | |
| 37 | |
| 38 adata = read_h5ad(adata) | |
| 39 # Rescale data | |
| 40 if manual_gates: | |
| 41 sep = ',' if manual_gates_ext == 'csv' else '\t' | |
| 42 manual_gates = pd.read_csv(manual_gates, sep=sep) | |
| 43 | |
| 44 adata = sm.pp.rescale(adata, gate=manual_gates, save_fig=rescale_plots) | |
| 45 | |
| 46 # Phenotype cells | |
| 47 # Load the gating workflow | |
| 48 sep = ',' if gating_workflow_ext == 'csv' else '\t' | |
| 49 phenotype = pd.read_csv(gating_workflow, sep=sep) | |
| 50 adata = sm.tl.phenotype_cells(adata, phenotype=phenotype, label="phenotype") | |
| 51 | |
| 52 # Summary of the phenotyping | |
| 53 print(adata.obs['phenotype'].value_counts()) | |
| 54 | |
| 55 adata.write(output) | |
| 56 | |
| 57 | |
| 58 if __name__ == '__main__': | |
| 59 aparser = argparse.ArgumentParser() | |
| 60 aparser.add_argument("-a", "--adata", dest="adata", required=True) | |
| 61 aparser.add_argument("-o", "--output", dest="output", required=True) | |
| 62 aparser.add_argument("-g", "--gating_workflow", dest="gating_workflow", required=True) | |
| 63 aparser.add_argument("-s", "--gating_workflow_ext", dest="gating_workflow_ext", required=True) | |
| 64 aparser.add_argument("-m", "--manual_gates", dest="manual_gates", required=False) | |
| 65 aparser.add_argument("-S", "--manual_gates_ext", dest="manual_gates_ext", required=False) | |
| 66 aparser.add_argument("-p", "--rescale_plots", dest="rescale_plots", action="store_true", | |
| 67 default=False, required=False) | |
| 68 | |
| 69 args = aparser.parse_args() | |
| 70 | |
| 71 main(args.adata, args.output, args.gating_workflow, | |
| 72 args.gating_workflow_ext, args.manual_gates, | |
| 73 args.manual_gates_ext, args.rescale_plots) |
