Example #1
0
def read_image_to_register(registername, is_imzml, to_flip, moving):
    mz = None
    if is_imzml:
        imzml = imzmlio.open_imzml(registername)
        current_s = imzmlio.get_full_spectra(imzml)
        max_x = max(imzml.coordinates, key=lambda item: item[0])[0]
        max_y = max(imzml.coordinates, key=lambda item: item[1])[1]
        max_z = max(imzml.coordinates, key=lambda item: item[2])[2]
        array = imzmlio.get_images_from_spectra(current_s,
                                                (max_x, max_y, max_z)).T
        register = sitk.GetImageFromArray(array)
        mz, _ = imzml.getspectrum(0)
    else:
        register = sitk.ReadImage(registername, sitk.sitkFloat32)
    if to_flip:
        dim = register.GetDimension()
        flip = (True, False) + ((False, ) if dim > 2 else ())
        register = sitk.Flip(register, flip)

    dim = register.GetDimension()
    register.SetSpacing([1 for i in range(dim)])

    identity = np.identity(dim).tolist()
    flat_list = [item for sublist in identity for item in sublist]
    direction = tuple(flat_list)
    register.SetDirection(flat_list)

    return register, mz
def imzml_to_npy(inputname):
    p = io.open_imzml(inputname)
    size = len(p.coordinates)
    spectra = io.get_spectra_intensities(p)
    np.save("data/intensities_250DJ.npy", spectra)
    spectra = io.get_spectra_mzs(p)
    np.save("data/mzs_250DJ.npy", spectra)
Example #3
0
 def test_normalize(self):
     self.imzml = io.open_imzml(
         "/mnt/d/MALDI/imzML/MSI_20190419_01/00/peaksel_small.imzML")
     image = io.to_image_array(self.imzml)
     norm = io.normalize(image)
     print(image)
     print(norm.dtype)
     print(norm.shape)
Example #4
0
def read_imzml(inputname):
    imzml = imzmlio.open_imzml(inputname)
    spectra = imzmlio.get_full_spectra(imzml)
    max_x = max(imzml.coordinates, key=lambda item:item[0])[0]
    max_y = max(imzml.coordinates, key=lambda item:item[1])[1]
    max_z = max(imzml.coordinates, key=lambda item:item[2])[2]
    image = imzmlio.get_images_from_spectra(spectra, (max_x, max_y, max_z))
    mzs, intensities = imzml.getspectrum(0)
    return spectra, image
Example #5
0
import argparse
import random
import esmraldi.imzmlio as imzmlio
import numpy as np
import os

parser = argparse.ArgumentParser()
parser.add_argument("-i", "--input", help="Input 3D imzml")
parser.add_argument("-o", "--output", help="Output directory for 2D imzml")

args = parser.parse_args()

inputname = args.input
outname = args.output

imzml = imzmlio.open_imzml(inputname)
mz, I = imzml.getspectrum(0)
spectra = imzmlio.get_full_spectra(imzml)
max_x = max(imzml.coordinates, key=lambda item: item[0])[0]
max_y = max(imzml.coordinates, key=lambda item: item[1])[1]
max_z = max(imzml.coordinates, key=lambda item: item[2])[2]

image = imzmlio.get_images_from_spectra(spectra, (max_x, max_y, max_z))
coordinates = imzml.coordinates

print("Parsing all spectra")
intensities, new_coords = imzmlio.get_spectra_from_images(image)
previous_index = 0

array_coords = np.array(new_coords)
array_intensities = np.array(intensities)
import esmraldi.imzmlio as io
import esmraldi.spectraprocessing as sp
import numpy as np
from scipy.stats import pearsonr

parser = argparse.ArgumentParser()
parser.add_argument("-i", "--input", help="Input MALDI imzML")
parser.add_argument("-p",
                    "--prominence",
                    help="Prominence factor for peak selection")

args = parser.parse_args()
inputname = args.input
prominence = float(args.prominence)

p = io.open_imzml(inputname)
spectra = io.get_spectra(p)

mz, I = spectra[0]
min_diff = mz[1] - mz[0]
wlen = max(10, int(50.0 / min_diff))
indices_mzs = sp.spectra_peak_indices_adaptative(spectra,
                                                 factor=prominence,
                                                 wlen=wlen)

width_peak_indices = 10

tic = []
medians = []
sic = []
sic_comp = []
Example #7
0
    for i in range(image.shape[-1]):
        n, ext = os.path.splitext(name)
        current_name = n + "_" + str(i + 1) + ext
        plt.imshow(image[..., i], cmap="gray")
        plt.axis("off")
        plt.savefig(current_name,
                    transparent=True,
                    bbox_inches='tight',
                    pad_inches=0,
                    dpi=150)
        plt.close()


## Open imzML
## This is a MS image where peaks are selected
imzml = io.open_imzml("data/wheat/msi.imzML")
spectra = io.get_full_spectra(imzml)
max_x = max(imzml.coordinates, key=lambda item: item[0])[0]
max_y = max(imzml.coordinates, key=lambda item: item[1])[1]
msi_images = io.get_images_from_spectra(spectra, shape=(max_x, max_y))

## Open MRI image
mri_itk_image = sitk.ReadImage("data/wheat/mri.png")
mri_image = sitk.GetArrayFromImage(mri_itk_image)

## Curvature values obtained by the VCM estimator
## of Lachaud et al. available in DGtal:
## More at https://dgtal.org/doc/stable/moduleVCM.html
## here, parameters r=4, R=5 for VCM computation
## The actual script used is available at https://github.com/fgrelard/MyDGtalContrib/blob/master/curvature.sh
## Requires DGtal library compilation
Example #8
0
    for i, (x, y, z) in enumerate(image.coordinates):
        mz, ints = image.getspectrum(i)
        mz = mz[:1]
        ints = ints[:1]
        mzs.append(mz)
        intensities.append(ints)
    imzmlio.write_imzml(
        mzs, intensities, image.coordinates,
        "/mnt/d/MALDI/imzML/MSI_20190419_01/00/peaksel_small.imzML")


parser = argparse.ArgumentParser()
parser.add_argument("-i", "--input", help="Input MALDI imzML")
parser.add_argument("-o", "--output", help="Output nii file")
args = parser.parse_args()

inputname = args.input
outname = args.output

root, ext = os.path.splitext(outname)
image = imzmlio.open_imzml(inputname)
spectra = imzmlio.get_full_spectra(image)
max_x = max(image.coordinates, key=lambda item: item[0])[0]
max_y = max(image.coordinates, key=lambda item: item[1])[1]
max_z = max(image.coordinates, key=lambda item: item[2])[2]
img_array = imzmlio.get_images_from_spectra(spectra, (max_x, max_y, max_z))
mzs, y = image.getspectrum(0)
imzmlio.to_nifti(img_array, outname)
imzmlio.to_csv(mzs, root + ".csv")
#seg.max_variance_sort(image)
Example #9
0
import esmraldi.imzmlio as io
import SimpleITK as sitk
import argparse
import numpy as np

parser = argparse.ArgumentParser()
parser.add_argument("-i", "--input", help="Input spectrum")
parser.add_argument("-o", "--output", help="Output spectrum")
parser.add_argument("-f", "--factor", help="Scale factor")
args = parser.parse_args()

input_name = args.input
outname = args.output
factor = float(args.factor)

imzml = io.open_imzml(input_name)
original_spectra = io.get_spectra(imzml)
mzs = original_spectra[:, 0, :]

spectra = imzmlio.get_full_spectra(imzml)
max_x = max(imzml.coordinates, key=lambda item:item[0])[0]
max_y = max(imzml.coordinates, key=lambda item:item[1])[1]
max_z = max(imzml.coordinates, key=lambda item:item[2])[2]
image = imzmlio.get_images_from_spectra(spectra, (max_x, max_y, max_z))
itk_image = sitk.GetImageFromArray(image)

size = image.shape[:2]

new_size = [d*factor for d in size]
new_size = new_size[::-1]
resized_itk = utils.resize(itk_image, new_size)
Example #10
0
 def test_to_image_array(self):
     self.imzml = io.open_imzml(
         "/mnt/d/MALDI/imzML/MSI_20190419_01/00/peaksel_small.imzML")
     image2 = io.to_image_array(self.imzml)
     print(image2.shape)
Example #11
0
 def test_get_spectra_from_images(self):
     self.imzml = io.open_imzml(
         "/mnt/d/MALDI/imzML/MSI_20190419_01/00/peaksel.imzML")
     coords = self.imzml.coordinates
     i, newcoords = io.get_spectra_from_images(self.data)
     self.assertEqual(coords, newcoords)