Skip to content

Commit

Permalink
Merge pull request #79 from michaelmarty/v3
Browse files Browse the repository at this point in the history
V3
michaelmarty authored Mar 6, 2023
2 parents 03ce615 + 5f018ec commit 2e32ec2
Showing 584 changed files with 7,713 additions and 75,807 deletions.
106 changes: 0 additions & 106 deletions .dockerignore

This file was deleted.

234 changes: 0 additions & 234 deletions .gitignore

This file was deleted.

14 changes: 7 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -4,19 +4,19 @@ FROM python:3.9-bullseye
RUN apt-get update && apt-get install -y libgtk-3-dev libwxgtk3.0-gtk3-dev libfftw3-dev hdf5-tools libhdf5-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*

# To Run GUI
RUN pip install setuptools attrdict attrdict3 numpy pymzml networkx natsort h5py matplotlib scipy pyteomics mpld3 pandas
RUN pip install setuptools attrdict attrdict3 numpy pymzml networkx natsort h5py matplotlib scipy pyteomics mpld3 pandas plotly
# RUN pip install wxpython

# Copy in stuff
RUN mkdir /opt/UniDec3
COPY . /opt/UniDec3
RUN mkdir /opt/UniDec
COPY . /opt/UniDec

# Compile C
WORKDIR /opt/UniDec3/unidec_src/UniDec/
RUN /opt/UniDec3/unidec_src/UniDec/compilelinux.sh
WORKDIR /opt/UniDec/unidec/src/
RUN /opt/UniDec/unidec/src/compilelinux.sh

# Install Python
WORKDIR /opt/UniDec3/
WORKDIR /opt/UniDec/
RUN python setupdocker.py install

ENV TESTFILE /opt/UniDec3/unidec_bin/TestSpectra/test_1.txt
ENV TESTFILE /opt/UniDec/unidec/bin/TestSpectra/test_1.txt
128 changes: 28 additions & 100 deletions GUniDec.spec
Original file line number Diff line number Diff line change
@@ -2,15 +2,10 @@
import os
import pymzml
import datetime
import sys
import platform
import zipfile
import time
import fnmatch
import comtypes
import encodings
import zipimport
from PyInstaller.utils.hooks import collect_data_files
from multiprocessing import freeze_support
from os import listdir
from PyInstaller import compat
@@ -33,64 +28,28 @@ tstart = time.perf_counter()
system = platform.system()
date = datetime.date.today().strftime("%y%m%d")

# Determine if this is a distribution run or internal
if "-nowaters" in sys.argv:
distmode = True
print("Distribution Release Mode")
else:
print("Internal Release Mode")
distmode = False

# Create names of files and directories
exename = 'GUI_UniDec'
if system == "Windows":
exename += ".exe"
outputdir = 'UniDec_' + system
if distmode:
outputdir += '_GPU'
zipdirectory = outputdir + "_" + date + ".zip"


hiddenimportslist=[ # 'plotly','
# 'sklearn', 'sklearn.decomposition', 'sklearn.preprocessing', 'sklearn.utils', 'pytest', 'pluggy',
# 'sklearn.utils.testing', 'sklearn.utils._cython_blas',
'scipy.special._ufuncs_cxx', 'scipy.linalg.cython_blas', 'scipy.linalg.cython_lapack',
hiddenimportslist=['scipy.special._ufuncs_cxx', 'scipy.linalg.cython_blas', 'scipy.linalg.cython_lapack',
'scipy.special.cython_special','numpy',
'scipy._lib.messagestream','clr', 'pythonnet', 'Python.Runtime.dll',
'FileDialog', 'Dialog', 'encodings', 'encodings.__init__',
'scipy._lib.messagestream','clr', 'pythonnet',
'encodings', 'encodings.__init__',
'packaging', 'packaging.version', 'packaging.specifiers',
'comtypes', "multiplierz", "comtypes.gen", "comtypes.gen._E7C70870_676C_47EB_A791_D5DA6D31B224_0_1_0",
'comtypes.gen._18A9D1D8_42BC_4A5D_AD59_590F4049A5B5_0_8_0',
"comtypes.gen.UIAutomationClient", "comtypes.gen.RawReader", "multiplierz.mzAPI.management",
# 'wx.lib.pubsub','wx.lib.pubsub.core', 'wx.lib.pubsub.core.kwargs','wx.lib.pubsub.core.publisher',
'pubsub', 'pubsub.core.publisherbase', 'pubsub.core.kwargs', 'pubsub.core.kwargs.publisher',
'pubsub.core.kwargs.listenerimpl', 'pubsub.core.kwargs.publishermixin',
'pubsub.core.listenerbase', 'pubsub.core', 'pubsub.core.kwargs.topicargspecimpl',
'pubsub.core.kwargs.topicmgrimpl',
'Tkinter', 'FixTk', '_tkinter', 'Tkconstants', 'FileDialog', 'Dialog', 'six',
'pymzml.run', 'pymzml.plot', 'pymzml.obo',
'pkg_resources.py2_warn','matplotlib.backends.backend_pdf',
'massql',
'PIL',
# , 'requests.packages.chardet.sys', 'requests','urllib3.packages.ordered_dict'
'pubsub', 'pubsub.core', 'matplotlib.backends.backend_ps'
]

cudaimportlist=['cupy','cupy.core', 'cupy.core._routines_sorting','cupy.core.flags','cupy.core.new_fusion',
'cupy.core._fusion_trace','cupy.core._fusion_variable','cupy.core._fusion_op',
'cupy.core._fusion_optimization','cupy.core._fusion_kernel',
'cupy_backends.cuda.stream', 'cupy.core._carray', 'fastrlock',
'fastrlock.rlock', 'cupy.core._cub_reduction', 'cupy.core._ufuncs']

excludeslist = ['IPython', 'statsmodels', 'pyopenms', 'sklearn',
'GdkPixbuf', 'pyQT4', 'pygobject', 'pygtk', 'pyside', 'PySide2', 'shiboken2', 'PyQt5']

if distmode:
hiddenimportslist = hiddenimportslist + cudaimportlist
else:
excludeslist = excludeslist + cudaimportlist

# Analysis of packages
a = Analysis(['Launcher.py'],
a = Analysis(['unidec\\Launcher.py'],
pathex=[os.getcwd()],
excludes=excludeslist,
hiddenimports=hiddenimportslist,
@@ -99,79 +58,52 @@ a = Analysis(['Launcher.py'],

# Add extra things
if system == "Windows":
a.datas += [('UniDec.exe', 'unidec_bin\\UniDec.exe', 'DATA')]
a.datas += [('UniDec.exe', 'unidec\\bin\\UniDec.exe', 'DATA')]
a.datas += [('readme.md', 'readme.md', 'DATA')]
a.datas += [('LICENSE', 'LICENSE', 'DATA')]
# a.datas += [('libiomp5md.dll', 'unidec_bin\\libiomp5md.dll', 'DATA')]
# a.datas += [('mkl_intel_thread.dll', 'unidec_bin\\mkl_intel_thread.dll', 'DATA')]
# a.datas += [('ucrtbase.dll', 'unidec_bin\\ucrtbase.dll', 'DATA')]
# a.datas += [('vcruntime140.dll', 'unidec_bin\\vcruntime140.dll', 'DATA')]
a.datas += [('CDCReader.exe', 'unidec_bin\\CDCReader.exe', 'DATA')]
a.datas += [('h5repack.exe', 'unidec_bin\\h5repack.exe', 'DATA')]
a.datas += [('unimod.sqlite', 'unidec_bin\\unimod.sqlite', 'DATA')]
a.datas += [('CDCReader.exe', 'unidec\\bin\\CDCReader.exe', 'DATA')]
a.datas += [('h5repack.exe', 'unidec\\bin\\h5repack.exe', 'DATA')]
a.datas += [('unimod.sqlite', 'unidec\\bin\\unimod.sqlite', 'DATA')]
a.datas += [('pymzml\\version.txt', compat.base_prefix + '\\Lib\\site-packages\\pymzml\\version.txt', 'DATA')]
a.datas += [('massql\\msql.ebnf', compat.base_prefix + '\\Lib\\site-packages\\massql\\msql.ebnf', 'DATA')]

# Copy over all the DLLs from the bin folder
for file in os.listdir('unidec_bin'):
for file in os.listdir('unidec\\bin'):
if fnmatch.fnmatch(file, '*.dll'):
add = [(file, 'unidec_bin\\' + file, 'DATA')]
add = [(file, 'unidec\\bin\\' + file, 'DATA')]
a.datas += add
# print add

if distmode:
cuincludedir=compat.base_prefix +'\\Lib\\site-packages\\cupy\\core\\include'
for root, subdirs, files in os.walk(cuincludedir):
for f in files:
path = os.path.join(root, f)
relpath = os.path.relpath(path, cuincludedir)
add = [('cupy\\core\\include\\' + relpath, path, 'DATA')]
a.datas += add
# print(add)

a.datas += [('RawFileReaderLicense.doc', 'unidec_modules\\thermo_reader\\RawFileReaderLicense.doc', 'DATA')]
a.datas += [('ThermoFisher.CommonCore.Data.dll', 'unidec_modules\\thermo_reader\\ThermoFisher.CommonCore.Data.dll', 'DATA')]
a.datas += [('ThermoFisher.CommonCore.RawFileReader.dll', 'unidec_modules\\thermo_reader\\ThermoFisher.CommonCore.RawFileReader.dll', 'DATA')]
a.datas += [('ThermoFisher.CommonCore.MassPrecisionEstimator.dll', 'unidec_modules\\thermo_reader\\ThermoFisher.CommonCore.MassPrecisionEstimator.dll', 'DATA')]
a.datas += [('ThermoFisher.CommonCore.BackgroundSubtraction.dll', 'unidec_modules\\thermo_reader\\ThermoFisher.CommonCore.BackgroundSubtraction.dll', 'DATA')]
# a.datas += [('MassLynxRaw.dll', 'unidec_bin\\MassLynxRaw.dll', 'DATA')]
# a.datas += [('cdt.dll', 'unidec_bin\\cdt.dll', 'DATA')]
a.datas += [('Waters_MassLynxSDK_EULA.txt', 'unidec_bin\\Waters_MassLynxSDK_EULA.txt', 'DATA')]
a.datas += [('RawFileReaderLicense.doc', 'unidec\\modules\\thermo_reader\\RawFileReaderLicense.doc', 'DATA')]
a.datas += [('ThermoFisher.CommonCore.Data.dll', 'unidec\\modules\\thermo_reader\\ThermoFisher.CommonCore.Data.dll', 'DATA')]
a.datas += [('ThermoFisher.CommonCore.RawFileReader.dll', 'unidec\\modules\\thermo_reader\\ThermoFisher.CommonCore.RawFileReader.dll', 'DATA')]
a.datas += [('ThermoFisher.CommonCore.MassPrecisionEstimator.dll', 'unidec\\modules\\thermo_reader\\ThermoFisher.CommonCore.MassPrecisionEstimator.dll', 'DATA')]
a.datas += [('ThermoFisher.CommonCore.BackgroundSubtraction.dll', 'unidec\\modules\\thermo_reader\\ThermoFisher.CommonCore.BackgroundSubtraction.dll', 'DATA')]
a.datas += [('Waters_MassLynxSDK_EULA.txt', 'unidec\\bin\\Waters_MassLynxSDK_EULA.txt', 'DATA')]
elif system == "Linux":
a.datas += [('unideclinux', 'unidec_bin/unideclinux', 'DATA')]
a.datas += [('unideclinux', 'unidec/bin/unideclinux', 'DATA')]

a.datas += [('cacert.pem', os.path.join('unidec_bin', 'cacert.pem'), 'DATA')]
a.datas += [('Images/logo.ico', 'logo.ico', 'DATA')]
a.datas += [('metaunidec/logo.ico', 'logo.ico', 'DATA')]
a.datas += [('logo.ico', 'logo.ico', 'DATA')]
a.datas += [('mass_table.csv', 'unidec_bin\\mass_table.csv', 'DATA')]
a.datas += [('cacert.pem', os.path.join('unidec\\bin', 'cacert.pem'), 'DATA')]
a.datas += [('logo.ico', 'unidec\\bin\\logo.ico', 'DATA')]
a.datas += [('mass_table.csv', 'unidec\\bin\\mass_table.csv', 'DATA')]
a.datas += [('metaunidec/images/allButton.png', 'metaunidec\\images\\allButton.png', 'DATA')]
a.datas += [('metaunidec/images/peakRightClick.png', 'metaunidec\\images\\peakRightClick.png', 'DATA')]
a.datas += [('metaunidec/images/rightClick.png', 'metaunidec\\images\\rightClick.png', 'DATA')]
a.datas += [('UniDecLogoMR.png', 'UniDecLogoMR.png', 'DATA')]
a.datas += [('UniDecLogoMR.png', 'unidec\\bin\\UniDecLogoMR.png', 'DATA')]

a.datas.extend(dir_files(os.path.join(os.path.dirname(pymzml.__file__), 'obo'), 'obo'))

a.datas.extend(dir_files("unidec_bin\\multiplierz", 'multiplierz'))
a.datas.extend(dir_files("unidec\\bin\\multiplierz", 'multiplierz'))

a.datas.extend(dir_files("unidec_bin\\Presets", 'Presets'))
a.datas.extend(dir_files("unidec_bin\\Example Data", 'Example Data'))
a.datas.extend(dir_files("unidec\\bin\\Presets", 'Presets'))
a.datas.extend(dir_files("unidec\\bin\\Example Data", 'Example Data'))
a.datas.extend(dir_files(compat.base_prefix + '\\Lib\\site-packages\\matchms\\data', "matchms\\data"))
# a.datas += [('matchms\\data\\known_key_conversions.csv', compat.base_prefix + '\\Lib\\site-packages\\massql\\msql.ebnf', 'DATA')]

# Can't remember why I needed these...
# grammar=os.path.join(os.path.dirname(lib2to3.__file__),'Grammar.txt')
# a.datas.extend([(os.path.join('lib2to3','Grammar.txt'),grammar,'DATA')])
# grammar=os.path.join(os.path.dirname(lib2to3.__file__),'PatternGrammar.txt')
# a.datas.extend([(os.path.join('lib2to3','PatternGrammar.txt'),grammar,'DATA')])


mkldir = compat.base_prefix + "/Lib/site-packages/numpy/DLLs"
a.datas.extend(dir_files(mkldir, ''))
a.datas.extend(
[(mkldir + "/" + mkl, '', 'DATA') for mkl in listdir(mkldir) if mkl.startswith('mkl_') or mkl.startswith('libio')])


rdkitlibs = compat.base_prefix + "/Lib/site-packages/rdkit.libs"
a.datas.extend(dir_files(rdkitlibs, ''))

@@ -184,7 +116,7 @@ exe = EXE(pyz,
debug=False,
strip=None,
upx=False,
console=True, icon='logo.ico')
console=True, icon='unidec\\bin\\logo.ico')
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
@@ -202,6 +134,8 @@ out = subprocess.call(path)
if out != 0:
exit()

# exit()

print("Zipping...")
# Zip up the final file
os.chdir("dist")
@@ -213,11 +147,5 @@ for root, dirs, files in os.walk(outputdir):
zipf.close()
print("Zipped to", zipdirectory, "from", outputdir)

# Final Print
if distmode:
print("Distribution Release Mode")
else:
print("Internal Release Mode")

tend = time.perf_counter()
print("Build Time: %.2gm" % ((tend - tstart) / 60.0))
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
UniDec License:

Copyright (c) 2016, University of Oxford
2017-2021, University of Arizona
2017-2023, University of Arizona
All rights reserved.

Redistribution and use in source and binary forms, with or without
34 changes: 0 additions & 34 deletions LipiDec/Infusion/Formulas.py

This file was deleted.

45 changes: 0 additions & 45 deletions LipiDec/Infusion/ShotgunLipiDec.py

This file was deleted.

45 changes: 0 additions & 45 deletions LipiDec/Infusion/ShotgunLipiDecMTM.py

This file was deleted.

Original file line number Diff line number Diff line change
@@ -2,14 +2,14 @@
import numpy as np
import matplotlib.pyplot as plt
import os
import unidec
import unidec.engine as engine
import pandas as pd
from unidec_modules.matchtools import *
from unidec.modules.matchtools import *


# Set the directory and engine
os.chdir("D:\\Data\\Luis Genentech")
eng = unidec.UniDec()
eng = engine.UniDec()

# Set and load the peak file
pfile = "20220113162114FcFusionProtein_SA15_20uScans_5500_7000mz_peaks.txt"
@@ -39,7 +39,7 @@
# Brute force calculate all possible combinations of glycans in the list
indexes, masses, probs, glycans = get_sitematch_list(gdf, sites=sites, probs_cutoff=probs_cutoff)


'''
# Plot Histogram
binsize = 20
bins = np.arange(np.amin(masses)+protmass, np.amax(masses)+protmass, binsize)
@@ -48,7 +48,7 @@
np.savetxt(gfile[:-4]+"TheoreticalMassBruteForceHistdat"+str(probs_cutoff)+".txt", histdat)
plt.hist(masses + protmass, bins=bins)
plt.savefig(gfile[:-4]+"TheoreticalMassBruteForce"+str(probs_cutoff)+".pdf")
plt.show()
plt.show()'''


# Open the output file
Original file line number Diff line number Diff line change
@@ -96,7 +96,7 @@
plt.subplot(131)
plt.imshow(parray)
ax = plt.gca()
ax.set_title("UNIGLAMS")
ax.set_title("DIA-PTCR")
ax.set_xticks(range(len(sites)), labels=["1", "2", "3", "4"])
ax.set_xlabel("Sites")
ax.set_yticks(range(len(unigly)), labels=unigly)
@@ -111,7 +111,7 @@
plt.subplot(133)
plt.imshow(earray)
ax = plt.gca()
ax.set_title("UNIGLAMS-Only")
ax.set_title("DIA-PTCR-Only")
ax.set_xticks(range(len(sites)), labels=["1", "2", "3", "4"])
ax.set_xlabel("Sites")
ax.set_yticks(range(len(unigly)), labels=unigly)
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import numpy as np
import matplotlib.pyplot as plt
import os
import unidec
import unidec_modules.unidectools as ud
from unidec_modules.isolated_packages.biopolymer_calculator import calc_pep_mass
import unidec.engine as engine
import unidec.tools as ud

os.chdir("C:\\Data\\Luis Genentech")

eng = unidec.UniDec()
eng = engine.UniDec()

pfile = "20220113162114FcFusionProtein_SA15_20uScans_5500_7000mz_peaks.txt"
# pfile = "20220113144226FcFusionProtein_SA8_20uScans_peaks.txt"
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import numpy as np
import matplotlib.pyplot as plt
import os
import unidec
import unidec_modules.unidectools as ud
import unidec.engine as engine
import unidec.tools as ud
import matplotlib.cm as cm

def make_plot(axs, i, sdata, gdata, hdata, fdata):
@@ -47,7 +47,7 @@ def make_2D_plot(axs, i, masses, sdata, sdata2d, gdata, gdata2d, hdata, hdata2d,

os.chdir("C:\\Data\\Luis Genentech")

eng = unidec.UniDec()
eng = engine.UniDec()

pfile1 = "20220113162114FcFusionProtein_SA15_20uScans_5500_7000mz_peaks.txt"
pfile2 = "20220113144226FcFusionProtein_SA8_20uScans_peaks.txt"
@@ -93,13 +93,13 @@ def make_2D_plot(axs, i, masses, sdata, sdata2d, gdata, gdata2d, hdata, hdata2d,
statsarray = [None, None, None, None]

sdata, sdata2d = eng.get_summed_match_intensities(sindex, normmode=normmode, alts=alts, probarray=statsarray[0],
get_2D=True)
get_2d=True)
gdata, gdata2d = eng.get_summed_match_intensities(gindex, normmode=normmode, alts=alts, probarray=statsarray[1],
get_2D=True)
get_2d=True)
hdata, hdata2d = eng.get_summed_match_intensities(hindex, normmode=normmode, alts=alts, probarray=statsarray[2],
get_2D=True)
get_2d=True)
fdata, fdata2d = eng.get_summed_match_intensities(findex, normmode=normmode, alts=alts, probarray=statsarray[3],
get_2D=True)
get_2d=True)
statsarray = np.load(statsfiles[i], allow_pickle=True)
make_plot(axs, i, sdata, gdata, hdata, fdata)

Original file line number Diff line number Diff line change
@@ -2,14 +2,14 @@
import numpy as np
import matplotlib.pyplot as plt
import os
import unidec
import unidec.engine as engine
import pandas as pd
from unidec_modules.matchtools import *
from unidec.modules.matchtools import *


# Set the directory and engine
os.chdir("C:\\Data\\Luis Genentech\\MHC2\\")
eng = unidec.UniDec()
eng = engine.UniDec()

# Set and load the peak file
pfile = "12012022_MHC2DPA_MS2_PTCR_20221201051533_peaks2.txt"
@@ -35,6 +35,7 @@
# Brute force calculate all possible combinations of glycans in the list
indexes, masses, probs, glycans = get_sitematch_list(gdf, sites=sites, probs_cutoff=probs_cutoff)

'''
# Plot Histogram
binsize = 20
bins = np.arange(np.amin(masses)+protmass, np.amax(masses)+protmass, binsize)
@@ -43,7 +44,7 @@
np.savetxt(gfile[:-4]+"TheoreticalMassBruteForceHistdat"+str(probs_cutoff)+".txt", histdat)
plt.hist(masses + protmass, bins=bins)
plt.savefig(gfile[:-4]+"TheoreticalMassBruteForce"+str(probs_cutoff)+".pdf")
plt.show()
plt.show()'''


# Open the output file
Original file line number Diff line number Diff line change
@@ -99,7 +99,7 @@
plt.subplot(131)
plt.imshow(parray)
ax = plt.gca()
ax.set_title("UNIGLAMS")
ax.set_title("DIA-PTCR")
ax.set_xticks(range(len(sites)), labels=sitelabels)
ax.set_xlabel("Sites")
ax.set_yticks(range(len(unigly)), labels=unigly)
@@ -114,7 +114,7 @@
plt.subplot(133)
plt.imshow(earray)
ax = plt.gca()
ax.set_title("UNIGLAMS-Only")
ax.set_title("DIA-PTCR-Only")
ax.set_xticks(range(len(sites)), labels=sitelabels)
ax.set_xlabel("Sites")
ax.set_yticks(range(len(unigly)), labels=unigly)
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import numpy as np
import matplotlib.pyplot as plt
import os
import unidec
import unidec_modules.unidectools as ud
from unidec_modules.isolated_packages.biopolymer_calculator import calc_pep_mass
import unidec.engine as engine
import unidec.tools as ud
import matplotlib.cm as cm

def make_2D_plot(axs, masses, sdata, sdata2d, gdata, gdata2d, hdata, hdata2d, fdata, fdata2d):
@@ -27,7 +26,7 @@ def make_2D_plot(axs, masses, sdata, sdata2d, gdata, gdata2d, hdata, hdata2d, fd

os.chdir("C:\\Data\\Luis Genentech\\MHC2")

eng = unidec.UniDec()
eng = engine.UniDec()

pfile = "MHC2_DPA_Combined_peaks.txt"
#pfile = "12012022_MHC2DPA_MS2_PTCR_20221201051533_peaks2.txt"
@@ -54,10 +53,10 @@ def make_2D_plot(axs, masses, sdata, sdata2d, gdata, gdata2d, hdata, hdata2d, fd
normmode = 1
alts = True
statsarray = [None, None, None, None]
sdata, sdata2d = eng.get_summed_match_intensities(sindex, normmode=normmode, alts=alts, probarray=statsarray[0], get_2D=True)
gdata, gdata2d = eng.get_summed_match_intensities(gindex, normmode=normmode, alts=alts, probarray=statsarray[1], get_2D=True)
hdata, hdata2d = eng.get_summed_match_intensities(hindex, normmode=normmode, alts=alts, probarray=statsarray[2], get_2D=True)
fdata, fdata2d = eng.get_summed_match_intensities(findex, normmode=normmode, alts=alts, probarray=statsarray[3], get_2D=True)
sdata, sdata2d = eng.get_summed_match_intensities(sindex, normmode=normmode, alts=alts, probarray=statsarray[0], get_2d=True)
gdata, gdata2d = eng.get_summed_match_intensities(gindex, normmode=normmode, alts=alts, probarray=statsarray[1], get_2d=True)
hdata, hdata2d = eng.get_summed_match_intensities(hindex, normmode=normmode, alts=alts, probarray=statsarray[2], get_2d=True)
fdata, fdata2d = eng.get_summed_match_intensities(findex, normmode=normmode, alts=alts, probarray=statsarray[3], get_2d=True)

alpha=0.4
plt.bar(sdata[:, 0], sdata[:, 1], alpha=alpha)
File renamed without changes.
File renamed without changes.
5 changes: 2 additions & 3 deletions PublicScripts/FPOP/Footprinting Data Analyzer.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import os
import glob
import unidec_modules.unidectools as ud
from unidec_modules.waters_importer.WatersImporter import WatersDataImporter as WDI
import unidec.tools as ud
from unidec.modules.waters_importer.WatersImporter import WatersDataImporter as WDI
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
100 changes: 100 additions & 0 deletions PublicScripts/TopDownAnalysis/TopDownMS1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
from pyopenms import *
import unidec.engine as unidec
import time
import numpy as np
import unidec.tools as ud


def ms1_processing(path, outpath=None, fullms1=True, agressive_speed=False):
# Start timer
begin = time.perf_counter()
# Set outpath
if outpath is None:
outpath = path[:-8] + "_deconvolved"
# Load file
exp = MSExperiment()
MzMLFile().load(path, exp)

# Check number of scans
num_scans = exp.getNrSpectra()
print("Number of Scans:", num_scans)

# Set up output experiment
out_exp = MSExperiment()

# Create a UniDec engine
eng = unidec.UniDec()

# Set some defaults
eng.config.numit = 10
if agressive_speed:
print("Running agressive settings")
# Bin together every 10 datapoints to drop the resolution by 10x
eng.config.mzbins = 10
# Remove 80% of the data
eng.config.reductionpercent = 80
# Set an intensity threshold of 1e6
eng.config.intthresh = 1e6
# Turn off normalization
eng.datanorm = 0
eng.peaknorm = 0

# Loop through spectra
for i, spec in enumerate(exp):
# Get MS level
ms_level = spec.getMSLevel()
if ms_level != 1:
# Append to output experiment
out_exp.addSpectrum(spec)
else:
print("MS Level:", ms_level, i)
# Get the m/z and intensity values
mz, intensity = spec.get_peaks()
inputdata = np.transpose([mz, intensity])
inputdata = ud.dataprep(inputdata, eng.config)

if len(inputdata) < 2:
continue

# Run UniDec
eng.pass_data_in(inputdata, silent=True, refresh=True)
eng.process_data(silent=True)
eng.run_unidec(silent=True, efficiency=True)

if fullms1:
# Get the mass and intensity values
try:
mass, intensity = eng.data.massdat[:, 0], eng.data.massdat[:, 1]
except:
mass, intensity = [], []

# Update the old spectrum
spec2 = spec
spec2.set_peaks((mass, intensity))
out_exp.addSpectrum(spec2)

else:
# Create a new spectrum
spec2 = spec
try:
peaks = eng.pick_peaks()
spec2.set_peaks((peaks[:, 0], peaks[:, 1]))
except:
spec2.set_peaks(([], []))


out_exp.addSpectrum(spec2)

# Write the output experiment to a file
MzMLFile().store(outpath + ".mzML", out_exp)


print("Total Time:", time.perf_counter() - begin)


if __name__ == "__main__":
# set paths
path = "C:\\Data\\TabbData\\20170105_L_MaD_ColC4_Ecoli20161108-10_01_ms1.mzML.gz"

# Run the function
ms1_processing(path, fullms1=False, agressive_speed=False)
File renamed without changes.
48 changes: 0 additions & 48 deletions PublicScripts/UNIGLAMS/IL22/glycan_compare_hist_and_spectrum.py

This file was deleted.

57 changes: 57 additions & 0 deletions PublicScripts/hdf5_to_mzml.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import os
import numpy as np
import matplotlib.pyplot as plt
import h5py
from pyopenms import *
from unidec.modules import hdf5_tools as hd


def write_hdf5_to_mzml(hdf5_path, outfile=None, plot=False):
"""
Write the HDF5 data from MetaUniDec or UniChrom to an mzML file
:param hdf5_path: the path to the HDF5 file
:param outfile: optional, the path to the output file. Will default to the same path as the HDF5 file with the extension changed to _deconvolved.mzML
:param plot: whether to plot the data
:return: None
"""
if outfile is None:
outfile = os.path.splitext(hdf5_path)[0] + "_deconvolved.mzML"

# Load the HDF5 data
massaxis = hd.get_data(hdf5_path, "ms_dataset", "mass_axis")
massgrid = hd.get_data(hdf5_path, "ms_dataset", "mass_grid")

# Reshape the data
num = int(len(massgrid) / len(massaxis))
massgrid = massgrid.reshape(int(num), len(massaxis))
print("Data Shape:", np.shape(massgrid))

# Get the scan start times
try:
times = hd.get_metadata(hdf5_path, "timestart")
except:
times = np.arange(0, num)


# Write the data to an mzML file
exp = MSExperiment()
for i in range(0, num):
spec = MSSpectrum()
spec.setRT(times[i])
spec.set_peaks((massaxis, massgrid[i]))
exp.addSpectrum(spec)
MzMLFile().store(outfile, exp)
print("Wrote Data to:", outfile)

# plot the data
if plot:
for d in massgrid:
plt.plot(massaxis, d)
plt.show()


if __name__ == "__main__":
# Path to the HDF5 file
hdf5_path = "../unidec/bin/Example Data/UniChrom/SEC_Native_Herceptin.hdf5"
# Write the data to an mzML file
write_hdf5_to_mzml(hdf5_path, plot=True)
14 changes: 14 additions & 0 deletions build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
rem update version in pyproject.toml and enginebase
rem commit to svn and git
rem Run Tests on test_GUI and test_MUD
rem build pyinstaller
rem build docker and commit
rem build wheel, test, and commit
rem python -m build -o .\distpypi
rem python -m twine upload --repository testpypi .\distpypi\* --config-file .pypirc (check that old wheels are deleted)
rem update docs with .\unidec_docs\make.bat html
rem paste docs into UniDecDocumentation and push to git

echo "Building"
C:\Python310\Scripts\pyinstaller.exe GUniDec.spec --noconfirm
rem call "C:\Python\UniDec3\dist\UniDec_Windows\GUI_UniDec.exe"
625 changes: 0 additions & 625 deletions iFAMS/GuiTestFun.py

This file was deleted.

624 changes: 0 additions & 624 deletions iFAMS/iFAMS_V5_GUI.py

This file was deleted.

550 changes: 0 additions & 550 deletions iFAMS/pyqtgraph/GraphicsScene/GraphicsScene.py

This file was deleted.

1 change: 0 additions & 1 deletion iFAMS/pyqtgraph/GraphicsScene/__init__.py

This file was deleted.

144 changes: 0 additions & 144 deletions iFAMS/pyqtgraph/GraphicsScene/exportDialog.py

This file was deleted.

100 changes: 0 additions & 100 deletions iFAMS/pyqtgraph/GraphicsScene/exportDialogTemplate.ui

This file was deleted.

77 changes: 0 additions & 77 deletions iFAMS/pyqtgraph/GraphicsScene/exportDialogTemplate_pyqt.py

This file was deleted.

64 changes: 0 additions & 64 deletions iFAMS/pyqtgraph/GraphicsScene/exportDialogTemplate_pyqt5.py

This file was deleted.

63 changes: 0 additions & 63 deletions iFAMS/pyqtgraph/GraphicsScene/exportDialogTemplate_pyside.py

This file was deleted.

380 changes: 0 additions & 380 deletions iFAMS/pyqtgraph/GraphicsScene/mouseEvents.py

This file was deleted.

56 changes: 0 additions & 56 deletions iFAMS/pyqtgraph/PlotData.py

This file was deleted.

155 changes: 0 additions & 155 deletions iFAMS/pyqtgraph/Point.py

This file was deleted.

282 changes: 0 additions & 282 deletions iFAMS/pyqtgraph/Qt.py

This file was deleted.

260 changes: 0 additions & 260 deletions iFAMS/pyqtgraph/SRTTransform.py

This file was deleted.

315 changes: 0 additions & 315 deletions iFAMS/pyqtgraph/SRTTransform3D.py

This file was deleted.

119 changes: 0 additions & 119 deletions iFAMS/pyqtgraph/SignalProxy.py

This file was deleted.

Loading

0 comments on commit 2e32ec2

Please sign in to comment.