Exemplo n.º 1
0
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'))
Exemplo n.º 2
0
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]
Exemplo n.º 3
0
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')
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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)