mzData
Presentation
This is the Base class which holds all the data collected from a given mzdata.xml
file. This is the data class used when the mzDataManager
creates a .mat
file.
You can create your own instances of this class if your data is not collected from the mzData files.
Definition
class mzData(BaseModel):
fileName : str = None
filePath : str = None
metadata : dict = None
mz : list[list[float]] = [[]]
intensities : list[list[float]] = [[]]
time : list[float] = []
oneStruct : bool = True
How to use
There are two ways of creating this class, the first one is the following :
# Class creation
data = mzData()
# The script below could be called anywhere you want, just be sure to fill all necessary data before calling the saveMatfile function from the mzdataManager class.
data.fileName = "sample.mzdata.xml"
data.filePath = "some/path/"
data.metadata = {
'software' : 'someSoftware',
'analyser' : 'John Doe',
'detector' : 'someDetector'
}
data.mz = mzList
data.intensities = intensitiesList
data.time = timeList
data.oneStruct = True
If you have all informations at the same time, you could use the second way of defining the class :
data = mzData(
fileName = "sample.mzdata.xml",
filePath = "some/path/",
metadata = {
'software' : 'someSoftware',
'analyser' : 'John Doe',
'detector' : 'someDetector'
},
mz = mzList,
intensities = intensitiesList,
time = timeList
)
Functions
fromDict
Presentation
Use fromDict
function to populate the current mzData
class based on a given dict
.
Definition
def fromDict(self@mzData, toParse : Any, mat : matStruct = matStruct())
How to use
To use this function, you need to specify how the dictionnary is built with the parameter mat
which is of type matStruct
class (The dictionnary could contain more elements, but only elements listed in the parameter will be parsed). The second parameter is the data to parse toParse
.
Warning
This data must always be a dictionnary. Meaning that the toParse
parameter must be either of type dict
or it’s equivalent in str
. Anything other than this will raise an error.
Call this function like this:
data.fromDict(mat=someMatStructure, toParse=dictionnaryRepresentationOfData)
If the structure is the default one, you can omit the mat
parameter.
toDict
Presentation
Use this function to convert mzData
structure into a dictionnary representation of the data. This function is automatically called inside the saveMatfile
function in the mzDataManager
class.
Definition
def toDict(self@mzData, mat : matStruct, partialSave : bool = False) -> dict
How to use
This function takes two input parameters. The first one, mat
is a matStruct
class which specifies how the dictionnary should be generated. See matStruct class for further details.
The second input parameter is a boolean partialSave
. Set this parameter to True
if you want to save a partial structure (i.e an incomplete mzData
structure where, for example, time values are not specified. This parameter is by default set to False
). If an incomplete structure is found and partialSave
is not True
, an error of class mzDataError
will be raised.
With an already created mzData
object, call the function like follows :
convertedDict = data.toDict(mat=someMatStruct, partialSave=False)
The dictionnary generated will be containing the content inside the data
variable.
setAttribute
Presentation
This function gives the possibility to the user to define new properties or modify existing one inside the extra
field of the class.
Definition
def setAttribute(self@mzData, attributeName : str, attributeValue : Any)
How to use
The setAttribue
function expects two input variables. The first one attributeName
is a str
and will be the new property’s name. The second one called attributeValue
corresponds to it’s given value. This value could be a string, an integer or a dictionnary.
Info
Sets are not allowed at this time.
For example, let’s say you want to create a new attribute called uniqueIdentifier
which will be equal to an integer. To define such attribute, use the following code :
# Considering that the data variable is an instance of the mzData class initialized with the default values.
data.setAttribute(attributeName="uniqueIdentifier", attributeValue=2846)
It is not possible yet to define an empty attribute with no value associated with it. This is a feature which will be added in a future release.
Warning
Whenever you create a new attribute, you need to give it a value even if it is a blank string.
getAttribute
Presentation
This one is pretty straight forward, returns the current value associated with the given attribute name.
Definition
def getAttribute(self@mzData, attributeName : str)
How to use
This function takes one parameter attributeName
as a str
. Here is how to get the associated value of the attribute uniqueIdentifier
defined above :
ID = data.getAttribute(attributeName="uniqueIdentifier")
# ID should be equal to 2846
If the attribute doesn’t exists, an error will be thrown by this function with the type mzDataError
.
getAttributeNames
Presentation
This function returns all defined attributes names as a list of string values.
Definition
def getAttributesNames(self@mzData)
How to use
The usage of getAttributeNames
function is pretty straight forward. From an already created mzData
object call the function as shown below :
# Considering data a variable of `mzData` class
attributes = data.getAttributesNames()
# With previously defined attributes in this page, this function should results :
# attributes = ["uniqueIdentifier"]
deleteAttribute
Presentation
deleteAttribute
function removes the given attribute name as a str
from the list of custom attributes. Throws an error if the attribute name is not found.
Definition
def deleteAttribute(self@mzData, attributeName : str)
How to use
From an already initialized mzData
class, use the following code to call this function :
data.deleteAttribute(attributeName="uniqueIdentifier")
This function is a void, so it doesn’t returns any value. If an error occurs, it will be thrown.
clearAttributes
Presentation
This function removes all custom user defined attributes. Use this function carefully because it removes everything. Use removeAttribute
to have a better control over the available attributes.
Definition
def clearAttributes(self@mzData)
How to use
data.clearAttributes()
There is no return to this function.