In [25]:
import argparse
from intern.remote.boss import BossRemote
from intern.resource.boss.resource import *
from intern.utils.parallel import block_compute
import configparser
import requests
import numpy as np
from numpy import genfromtxt
import shutil
import blosc
from IPython.core.debugger import set_trace
import sys
import os
import itertools
from functools import partial
from multiprocessing import Pool
from multiprocessing.dummy import Pool as ThreadPool
from multiprocessing import cpu_count
import csv
import datetime
import seaborn as sns
from intern.utils.parallel import block_compute
%matplotlib inline
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
import ndpull
CONFIG_FILE = 'config.ini'
In [37]:
COLL_NAME = 'collman_nomads'
EXP_NAME = 'nomads_predictions'
CH_NAME = 'M247514_Rorb_1_light_z_0_101_y_8800_9200_x_4500_4900_All'
CONFIG_FILE = 'config.ini'
In [39]:
config = configparser.ConfigParser()
config.read(CONFIG_FILE)
TOKEN = config['Default']['token']
boss_url = ''.join( ( config['Default']['protocol'],'://',config['Default']['host'],'/v1/' ) )
#intern
rem = BossRemote(CONFIG_FILE)
ch_res = ChannelResource(CH_NAME, COLL_NAME, EXP_NAME, 'image', datatype='uint16')
In [40]:
rem.get_metadata(ch_res,['test'])
In [27]:
cf = CoordinateFrameResource(str(COLL_NAME + '_' + EXP_NAME))
cfr = rem.get_project(cf)
anno_res = ChannelResource(ANNO_NAME, COLL_NAME, EXP_NAME, 'annotation', datatype='uint64')
ex = {'x': cfr.x_stop, 'y': cfr.y_stop, 'z': cfr.z_stop}
blocks = block_compute(0,ex['x'],0,ex['y'],0,ex['z'],
origin = (0,0,0), block_size = (512, 512, 16))
rid = []
for b in blocks:
tmp = rem.get_ids_in_region(anno_res, 0, b[0], b[1], b[2], [0,1])
if tmp != []:
rid = rid + tmp
u = np.unique(np.asarray(rid))
u_old = u
## bounding box for annotation_i
bb = [rem.get_bounding_box(anno_res, 0,ui, 'tight') for ui in u]
for i in range(len(bb)):
bb[i]["id"] = u[i]
blocks[0]
b0 = ((0, ))
Out[27]:
In [15]:
A = [(rem.get_cutout(
anno_res, 0, bb[i]["x_range"],
bb[i]["y_range"], bb[i]["z_range"],
id_list = [bb[i]['id']]) == bb[i]['id']).astype(int)
for i in range(len(bb))]
#Bmeans = [np.int32(np.round(np.mean(np.asarray(np.where(A[i] == True)),1))) for i in range(len(A))]
Bmeans = [np.uint32(np.round(np.mean(np.asarray(np.where(A[i] == 1)),1))) for i in range(len(A))]
Bglobal = []
for i in range(len(bb)):
ad1 = np.asarray([bb[i]['z_range'][0], bb[i]['y_range'][0], bb[i]['x_range'][0]])
Bglobal.append(Bmeans[i] + ad1)
ColMin = np.asarray(bf)
ColMax = np.asarray([ex['z'] - (bf[0] + 1), # The z index is inclusive
ex['y'] - (bf[1] + 1),
ex['x'] - (bf[2] + 1)])
m = [Bglobal[i] >= ColMin for i in range(len(Bglobal))]
M = [Bglobal[i] <= ColMax for i in range(len(Bglobal))]
mm = [np.all(m[i]) for i in range(len(m)) ]
MM = [np.all(M[i]) for i in range(len(M)) ]
In [18]:
A[0].shape
Out[18]:
In [20]:
Bglobal[0]
Out[20]:
In [ ]: