mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-22 05:58:12 +08:00
Merge pull request #142 from chanzuckerberg/csweaver/cli-subparsers
Csweaver/cli subparsers
This commit is contained in:
+9
-4
@@ -1,5 +1,6 @@
|
||||
import argparse
|
||||
import os
|
||||
import warnings
|
||||
|
||||
from flask import Flask
|
||||
from flask_caching import Cache
|
||||
@@ -53,7 +54,8 @@ def run_scanpy(args):
|
||||
)
|
||||
|
||||
from .scanpy_engine.scanpy_engine import ScanpyEngine
|
||||
app.data = ScanpyEngine(args.data_directory, schema="data_schema.json")
|
||||
app.data = ScanpyEngine(args.data_directory, schema="data_schema.json",
|
||||
graph_method=args.layout, diffexp_method=args.diffexp)
|
||||
app.run(host="127.0.0.1", debug=True, port=args.port)
|
||||
|
||||
|
||||
@@ -63,8 +65,11 @@ def main():
|
||||
"of the directory from the data_directory arg")
|
||||
parser.add_argument("--port", help="Port to run server on.", type=int, default=5005)
|
||||
subparsers = parser.add_subparsers(dest="cellxgene_command")
|
||||
scanpy_subparser = subparsers.add_parser("scanpy", help="run cellxgene using the scanpy engine")
|
||||
scanpy_subparser.add_argument("data_directory", metavar="dir", help="Directory containing data and schema file")
|
||||
scanpy_subparser.set_defaults(func=run_scanpy)
|
||||
try:
|
||||
from .scanpy_engine.scanpy_engine import ScanpyEngine
|
||||
except ImportError:
|
||||
warnings.warn("Scanpy engine not available", ImportWarning)
|
||||
else:
|
||||
ScanpyEngine.add_to_parser(subparsers, run_scanpy)
|
||||
args = parser.parse_args()
|
||||
args.func(args)
|
||||
|
||||
@@ -23,6 +23,18 @@ class ScanpyEngine(CXGDriver):
|
||||
def _set_cell_names(self):
|
||||
self.data.obs["cell_name"] = list(self.data.obs.index)
|
||||
|
||||
@classmethod
|
||||
def add_to_parser(cls, subparsers, invocation_function):
|
||||
scanpy_group = subparsers.add_parser("scanpy", help="run cellxgene using the scanpy engine")
|
||||
# TODO these choices should be generated from the actual available methods
|
||||
scanpy_group.add_argument("-l", "--layout", choices=["umap", "tsne"], default="umap",
|
||||
help="Algorithm to use for graph layout")
|
||||
scanpy_group.add_argument("-d", "--diffexp", choices=["ttest"], default="ttest",
|
||||
help="Algorithm to use to calculate differential expression")
|
||||
scanpy_group.add_argument("data_directory", metavar="dir", help="Directory containing data and schema file")
|
||||
scanpy_group.set_defaults(func=invocation_function)
|
||||
return scanpy_group
|
||||
|
||||
@staticmethod
|
||||
def _load_data(data):
|
||||
return sc.read(os.path.join(data, "data.h5ad"))
|
||||
|
||||
Reference in New Issue
Block a user