from archimedes.functions.dataflow import output_path, input_path, input_var from archimedes.functions.scanpy import scanpy as sc scdata = sc.read(input_path('pca_anndata.h5ad')) # Neighborhood max_pc = int(input_var('max_pc')) n_neighbors = int(input_var('n_neighbors')) sc.pp.neighbors(scdata, n_neighbors=n_neighbors, n_pcs=max_pc) ##### OUTPUT scdata.write(output_path('nn_anndata.h5ad'))
from archimedes.functions.dataflow import output_path, input_path, input_var, json, input_json, buildTargetPath from archimedes.functions.scanpy import scanpy as sc from archimedes.functions.plotting import pio, scatter_plotly from archimedes.functions.magma import connect, question from archimedes.functions.list import flatten from archimedes.functions.environment import project_name from archimedes.functions.utils import pandas as pd # Read inputs scdata = sc.read(input_path('umap_anndata.h5ad')) leiden = list(map(str, input_json('leiden.json'))) color_by = input_var('color_by') px_args = {} # Prep magma querying magma = connect() def get(ids, value): ids = ids if type(ids) == list else ids.tolist() values = dict(question(magma, [ 'sc_seq', [ '::identifier', '::in', ids ], '::all', *value ], strip_identifiers=False)) return [ values.get(id, None) for id in ids ] pdat = input_json("project_data")[project_name]
from archimedes.functions.dataflow import input_path, output_json, input_json from archimedes.functions.scanpy import scanpy as sc from archimedes.functions.environment import project_name scdata = sc.read(input_path('leiden_anndata.h5ad')) pdat = input_json("project_data")[project_name] color_options = { 'Gene': dict([[gene_id, None] for gene_id in scdata.raw.var_names]), 'Cluster': None, 'Manual Annotations': None, 'Tube': None } color_options.update([[label, None] for label in pdat['color_options'].keys()]) output_json(color_options, 'color_options')
from archimedes.functions.dataflow import output_path, input_path, input_bool from archimedes.functions.scanpy import scanpy as sc scdata = sc.read(input_path('normed_anndata.h5ad')) regress_nCounts = input_bool('regress_counts') regress_nFeatures = input_bool('regress_genes') regress_pct_mito = input_bool('regress_pct_mito') regress_pct_ribo = input_bool('regress_pct_ribo') regress_tube_id = input_bool('regress_tube_id') # Regress out and scale if any([regress_nCounts, regress_nFeatures, regress_pct_mito, regress_pct_ribo, regress_tube_id]): regress_on = [] if regress_nCounts: regress_on.append('n_counts') if regress_nFeatures: regress_on.append('n_genes') if regress_pct_mito: regress_on.append('pct_counts_mt') if regress_pct_ribo: regress_on.append('pct_counts_rb') if regress_tube_id: regress_on.append('Record_ID') sc.pp.regress_out(scdata, regress_on) sc.pp.scale(scdata, max_value=10) # pca sc.tl.pca(scdata, svd_solver='arpack') ##### OUTPUT
from archimedes.functions.dataflow import output_path, input_path, input_var from archimedes.functions.scanpy import scanpy as sc scdata = sc.read(input_path('merged_anndata.h5ad')) # Convert these too min_nCounts = int(input_var('min_nCounts')) max_nCounts = int(input_var('max_nCounts')) min_nFeatures = int(input_var('min_nFeatures')) max_per_mito = int(input_var('max_per_mito')) max_per_ribo = int(input_var('max_per_ribo')) # Calculate mito QC metrics scdata.var['mt'] = scdata.var_names.str.startswith( 'Mt-') # annotate the group of mitochondrial genes as 'mt' scdata.var['rb'] = scdata.var_names.str.startswith( 'Rps-|Rpl-' ) # annotate the group of ribosomal genes as 'rb' ## not sure if the syntax works. sc.pp.calculate_qc_metrics(scdata, qc_vars=['mt'], percent_top=None, log1p=False, inplace=True) sc.pp.calculate_qc_metrics(scdata, qc_vars=['rb'], percent_top=None, log1p=False, inplace=True) # Perform all filtering sc.pp.filter_cells(scdata, min_genes=min_nFeatures) sc.pp.filter_cells(scdata, min_counts=min_nCounts)