Ошибка зависимости файла .Dll в программном обеспечении UNIDEC после изменения пути к нужному файлу в графическом интерфPython

Программы на Python
Ответить
Anonymous
 Ошибка зависимости файла .Dll в программном обеспечении UNIDEC после изменения пути к нужному файлу в графическом интерф

Сообщение Anonymous »


Я хотел проверить ту часть кода программного обеспечения unidec, которая преобразует папки agilent .d в текстовый файл, поэтому я открыл файл agilent.py и изменил путь к нужному файлу после запуска команды, которая показала мне ошибку. ошибка файла BaseTof.dll, несмотря на то, что он существует и загрузил его снова, но все еще показывает ошибку.
Ссылка Github на UNIDEC = https://github.com/michaelmarty/UniDec
вот код, который я запускаю
from copy import deepcopy
import numpy as np
from unidec.UniDecImporter.Agilent.MZFILE import MZFile as mzFile
from unidec.UniDecImporter.Importer import *
from unidec import tools as ud
from unidec.UniDecImporter.ImportTools import merge_spectra

# When is the msrun scaninfo even being populated ever

class AgilentImporter(Importer):
"""
Imports Agilent data files.

Note: Agilent scans are 0 indexed, so the first scan is scan 0, not scan 1.
"""
def __init__(self, path, **kwargs):
super().__init__(path, **kwargs)
print("Reading Agilent Data:", path)
self.msrun = mzFile(path)
self.init_scans()

self.cdms_support = False
self.imms_support = False
self.chrom_support = True

def init_scans(self):
self.times = []
self.scans = []

curr_info = self.msrun.scan_info()
for i in curr_info:
self.scans.append(i[2]+1)
self.times.append(i[0])

self.times = np.array(self.times)
self.scans = np.array(self.scans)
self.scan_range = [np.amin(self.scans), np.amax(self.scans)]

def get_all_scans(self):
self.data = []
for s in self.scans:
impdat = np.array(self.msrun.scan(int(s)-1))
try:
impdat = impdat[impdat[:, 0] > 10]
except Exception as e:
print("Error Importing Data, Scan:", s, "Data:", impdat, "Error:", e)
self.data.append(impdat)
return self.data

def get_single_scan(self, scan, threshold=-1):
try:
impdat = np.array(self.msrun.scan(int(scan)-1))
impdat = np.transpose([impdat[:, 0], impdat[:, 1]])
impdat = impdat[impdat[:, 0] > 10]
if threshold >= 0:
impdat = impdat[impdat[:, 1] > threshold]
return impdat
except Exception as e:
print(f"Error in get_single_scan for scan {scan}: {e}")
return None

def get_avg_scan(self, scan_range=None, time_range=None, mzbins=None):
"""
Returns merged 1D MS data from mzML import
:return: merged data
"""
scan_range = self.scan_range_from_inputs(scan_range, time_range)

self.datascans = []
for s in self.scans:
self.datascans.append(self.msrun.scan(int(s-1)))

if scan_range[1] - scan_range[0] > 1:
# noinspection PyUnresolvedReferences
data = np.array(list(self.msrun.average_scan(list(np.array(scan_range)-1), self.datascans)))
else:
impdat = np.array(self.msrun.scan(int(scan_range[0]-1)))
impdat = impdat[impdat[:, 0] > 10]
data = impdat

return data

# noinspection PyArgumentList
def get_tic(self):
try:
xic = self.msrun.xic(filter="Full")
except:
xic = self.msrun.xic()
return xic

def get_polarity(self, scan=1):
self.scan_info = self.msrun.scan_info()
line = self.scan_info[scan]
# previous checking for +
if "Positive" in line:
print("Polarity: Positive")
return "Positive"
# previous checking for -
if "Negative" in line:
print("Polarity: Negative")
return "Negative"
print("Polarity: Unknown")
return None

def get_ms_order(self, scan=1):
scan_info = self.msrun.scan_info()
for line in scan_info:
if scan == int(line[2]):
if "MS1" in line:
return 1
elif "MS2" in line:
return 2
print("MS Order: Unknown")
return 1

def close(self):
self.msrun.close()

if __name__ == '__main__':
import time
# path = "Z:\\Group Share\\JGP\\DiverseDataExamples\\AgilentData\\2019_05_15_bsa_ccs_02.d"
path = "C:\\Users\\suneel\\Desktop\\converter\\4deg_T_17082023.d"
#path = "C:\\Data\\DataTypeCollection\\test_agilent.d"
d = AgilentImporter(path)
print(d.get_all_scans())

и вот какую ошибку я получаю
Reading Agilent Data: C:\Users\suneel\Desktop\converter\4deg_T_17082023.d
Traceback (most recent call last):
File "c:\Users\suneel\Downloads\UniDec-v.8.0.0\UniDec-v.8.0.0\unidec\UniDecImporter\Agilent\AgilentImporter.py", line 129, in
d = AgilentImporter(path)
File "c:\Users\suneel\Downloads\UniDec-v.8.0.0\UniDec-v.8.0.0\unidec\UniDecImporter\Agilent\AgilentImporter.py", line 20, in __init__
self.msrun = mzFile(path)
File "C:\Users\suneel\AppData\Local\Programs\Python\Python310\lib\site-packages\unidec\UniDecImporter\Agilent\MZFILE.py", line 57, in __init__
self.source = MassSpecDataReader()
System.IO.FileNotFoundException: Could not load file or assembly 'BaseTof.dll' or one of its dependencies.


Подробнее здесь: https://stackoverflow.com/questions/793 ... -desired-f
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»