Merge pull request #7995 from mvdbeek/jmchilton-newline_fixes

Datatype I/O fixes
This commit is contained in:
John Chilton
2019-05-17 15:39:26 -04:00
committed by GitHub
8 changed files with 918 additions and 91 deletions
+24 -11
View File
@@ -1030,8 +1030,14 @@ def get_file_peek(file_name, is_multi_byte=False, WIDTH=256, LINE_COUNT=5, skipc
:param is_multi_byte: deprecated
:type is_multi_byte: bool
>>> fname = get_test_fname('4.bed')
>>> assert get_file_peek(fname, LINE_COUNT=1) == u'chr22\\t30128507\\t31828507\\tuc003bnx.1_cds_2_0_chr22_29227_f\\t0\\t+\\n'
>>> def assert_peek_is(file_name, expected, *args, **kwd):
... path = get_test_fname(file_name)
... peek = get_file_peek(path, *args, **kwd)
... assert peek == expected, "%s != %s" % (peek, expected)
>>> assert_peek_is('0_nonewline', u'0')
>>> assert_peek_is('0.txt', u'0\\n')
>>> assert_peek_is('4.bed', u'chr22\\t30128507\\t31828507\\tuc003bnx.1_cds_2_0_chr22_29227_f\\t0\\t+\\n', LINE_COUNT=1)
>>> assert_peek_is('1.bed', u'chr1\\t147962192\\t147962580\\tCCDS989.1_cds_0_0_chr1_147962193_r\\t0\\t-\\nchr1\\t147984545\\t147984630\\tCCDS990.1_cds_0_0_chr1_147984546_f\\t0\\t+\\n', LINE_COUNT=2)
"""
# Set size for file.readline() to a negative number to force it to
# read until either a newline or EOF. Needed for datasets with very
@@ -1042,20 +1048,27 @@ def get_file_peek(file_name, is_multi_byte=False, WIDTH=256, LINE_COUNT=5, skipc
skipchars = []
lines = []
count = 0
last_line_break = False
with compression_utils.get_fileobj(file_name, "U") as temp:
while count < LINE_COUNT:
try:
line = temp.readline(WIDTH)
except UnicodeDecodeError:
return "binary file"
if not line_wrap:
if line.endswith('\n'):
line = line[:-1]
else:
while True:
i = temp.read(1)
if not i or i == '\n':
break
if line == "":
break
last_line_break = False
if line.endswith('\n'):
line = line[:-1]
last_line_break = True
elif not line_wrap:
while True:
i = temp.read(1)
if i == '\n':
last_line_break = True
if not i or i == '\n':
break
skip_line = False
for skipchar in skipchars:
if line.startswith(skipchar):
@@ -1064,4 +1077,4 @@ def get_file_peek(file_name, is_multi_byte=False, WIDTH=256, LINE_COUNT=5, skipc
if not skip_line:
lines.append(line)
count += 1
return '\n'.join(lines)
return '\n'.join(lines) + ('\n' if last_line_break else '')
+52 -78
View File
@@ -14,7 +14,11 @@ import sys
import tempfile
import zipfile
from six import StringIO, text_type
from six import (
PY3,
StringIO,
text_type,
)
from six.moves import filter
from six.moves.urllib.request import urlopen
@@ -103,28 +107,40 @@ def stream_to_file(stream, suffix='', prefix='', dir=None, text=False, **kwd):
return stream_to_open_named_file(stream, fd, temp_name, **kwd)
def convert_newlines(fname, in_place=True, tmp_dir=None, tmp_prefix="gxupload"):
def convert_newlines(fname, in_place=True, tmp_dir=None, tmp_prefix="gxupload", block_size=128 * 1024, regexp=None):
"""
Converts in place a file from universal line endings
to Posix line endings.
>>> fname = get_test_fname('temp.txt')
>>> with open(fname, 'wt') as fh:
... _ = fh.write("1 2\\r3 4")
>>> convert_newlines(fname, tmp_prefix="gxtest", tmp_dir=tempfile.gettempdir())
(2, None)
>>> open(fname).read()
'1 2\\n3 4\\n'
"""
fd, temp_name = tempfile.mkstemp(prefix=tmp_prefix, dir=tmp_dir)
with io.open(fd, mode="wt", encoding='utf-8') as fp:
i = None
for i, line in enumerate(io.open(fname, encoding='utf-8')):
fp.write("%s\n" % line.rstrip("\r\n"))
if i is None:
i = 0
i = 0
if PY3:
NEWLINE_BYTE = 10
CR_BYTE = 13
else:
i += 1
NEWLINE_BYTE = "\n"
CR_BYTE = "\r"
with io.open(fd, mode="wb") as fp, io.open(fname, mode="rb") as fi:
last_char = None
block = fi.read(block_size)
last_block = b""
while block:
if last_char == CR_BYTE and block.startswith(b"\n"):
# Last block ended with CR, new block startswith newline.
# Since we replace CR with newline in the previous iteration we skip the first byte
block = block[1:]
if block:
last_char = block[-1]
block = block.replace(b"\r\n", b"\n").replace(b"\r", b"\n")
if regexp:
block = b"\t".join(regexp.split(block))
fp.write(block)
i += block.count(b"\n")
last_block = block
block = fi.read(block_size)
if last_block and last_block[-1] != NEWLINE_BYTE:
i += 1
fp.write(b"\n")
if in_place:
shutil.move(temp_name, fname)
# Return number of lines in file.
@@ -133,47 +149,9 @@ def convert_newlines(fname, in_place=True, tmp_dir=None, tmp_prefix="gxupload"):
return (i, temp_name)
def sep2tabs(fname, in_place=True, patt=r"\s+", tmp_dir=None, tmp_prefix="gxupload"):
def convert_newlines_sep2tabs(fname, in_place=True, patt=br"[^\S\n]+", tmp_dir=None, tmp_prefix="gxupload"):
"""
Transforms in place a 'sep' separated file to a tab separated one
>>> fname = get_test_fname('temp.txt')
>>> with open(fname, 'wt') as fh:
... _ = fh.write(u"1 2\\n3 4\\n")
>>> sep2tabs(fname)
(2, None)
>>> open(fname).read()
'1\\t2\\n3\\t4\\n'
"""
regexp = re.compile(patt)
fd, temp_name = tempfile.mkstemp(prefix=tmp_prefix, dir=tmp_dir)
with io.open(fd, mode="wt", encoding='utf-8') as fp:
i = None
for i, line in enumerate(io.open(fname, encoding='utf-8')):
if line.endswith("\r"):
line = line.rstrip('\r')
elems = regexp.split(line)
fp.write(u"%s\r" % '\t'.join(elems))
else:
line = line.rstrip('\n')
elems = regexp.split(line)
fp.write(u"%s\n" % '\t'.join(elems))
if i is None:
i = 0
else:
i += 1
if in_place:
shutil.move(temp_name, fname)
# Return number of lines in file.
return (i, None)
else:
return (i, temp_name)
def convert_newlines_sep2tabs(fname, in_place=True, patt=r"\s+", tmp_dir=None, tmp_prefix="gxupload"):
"""
Combines above methods: convert_newlines() and sep2tabs()
so that files do not need to be read twice
Converts newlines in a file to posix newlines and replaces spaces with tabs.
>>> fname = get_test_fname('temp.txt')
>>> with open(fname, 'wt') as fh:
@@ -184,18 +162,7 @@ def convert_newlines_sep2tabs(fname, in_place=True, patt=r"\s+", tmp_dir=None, t
'1\\t2\\n3\\t4\\n'
"""
regexp = re.compile(patt)
fd, temp_name = tempfile.mkstemp(prefix=tmp_prefix, dir=tmp_dir)
with io.open(fd, mode="wt", encoding='utf-8') as fp:
for i, line in enumerate(io.open(fname, encoding='utf-8')):
line = line.rstrip('\r\n')
elems = regexp.split(line)
fp.write(u"%s\n" % '\t'.join(elems))
if in_place:
shutil.move(temp_name, fname)
# Return number of lines in file.
return (i + 1, None)
else:
return (i + 1, temp_name)
return convert_newlines(fname, in_place, tmp_dir, tmp_prefix, regexp=regexp)
def iter_headers(fname_or_file_prefix, sep, count=60, comment_designator=None):
@@ -474,6 +441,9 @@ def guess_ext(fname, sniff_order, is_binary=False):
>>> fname = get_test_fname('1.mtx')
>>> guess_ext(fname, sniff_order)
'mtx'
>>> fname = get_test_fname('1imzml')
>>> guess_ext(fname, sniff_order) # This test case is ensuring doesn't throw exception, actual value could change if non-utf encoding handling improves.
'data'
"""
file_prefix = FilePrefix(fname)
file_ext = run_sniffers_raw(file_prefix, sniff_order, is_binary)
@@ -555,8 +525,9 @@ def zip_single_fileobj(path):
class FilePrefix(object):
def __init__(self, filename):
binary = False
non_utf8_error = None
compressed_format = None
contents_header_bytes = None
contents_header = None # First MAX_BYTES of the file.
truncated = False
# A future direction to optimize sniffing even more for sniffers at the top of the list
@@ -565,20 +536,23 @@ class FilePrefix(object):
# populates contents_header while providing a StringIO-like interface until the file is read
# but then would fallback to native string_io()
try:
compressed_format, f = compression_utils.get_fileobj_raw(filename)
compressed_format, f = compression_utils.get_fileobj_raw(filename, "rb")
try:
contents_header = f.read(SNIFF_PREFIX_BYTES)
truncated = len(contents_header) == SNIFF_PREFIX_BYTES
contents_header_bytes = f.read(SNIFF_PREFIX_BYTES)
truncated = len(contents_header_bytes) == SNIFF_PREFIX_BYTES
contents_header = contents_header_bytes.decode("utf-8")
finally:
f.close()
except UnicodeDecodeError:
binary = True
except UnicodeDecodeError as e:
non_utf8_error = e
self.truncated = truncated
self.filename = filename
self.binary = binary
self.non_utf8_error = non_utf8_error
self.binary = non_utf8_error is not None # obviously wrong
self.compressed_format = compressed_format
self.contents_header = contents_header
self.contents_header_bytes = contents_header_bytes
self._file_size = None
@property
@@ -588,8 +562,8 @@ class FilePrefix(object):
return self._file_size
def string_io(self):
if self.binary:
raise Exception("Attempting to create a StringIO object for binary data.")
if self.non_utf8_error is not None:
raise self.non_utf8_error
rval = StringIO(self.contents_header)
return rval
+1
View File
@@ -0,0 +1 @@
0
+380
View File
@@ -0,0 +1,380 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<mzML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" xmlns="http://psi.hupo.org/ms/mzml" version="1.1">
<cvList count="4">
<cv URI="http://ontologies.berkeleybop.org/pato.obo" fullName="Phenotype And Trait Ontology" id="PATO" version="releases/2017-07-10"/>
<cv URI="http://ontologies.berkeleybop.org/uo.obo" fullName="Units of Measurement Ontology" id="UO" version="releases/2017-09-25"/>
<cv URI="https://raw.githubusercontent.com/hupo-psi/psi-ms-cv/master/psi-ms.obo" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" id="MS" version="4.1.0"/>
<cv URI="https://raw.githubusercontent.com/imzML/imzML/master/imagingMS.obo" fullName="Mass Spectrometry Imaging Ontology" id="IMS" version="1.1.0"/>
</cvList>
<fileDescription>
<fileContent>
<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum"/>
<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum"/>
<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="9d501bdc53444916b7e97e795b02c856"/>
<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="7e8fdb93053915d3edb51b70aa0619ac209964df"/>
<cvParam cvRef="IMS" accession="IMS:1000031" name="processed"/>
</fileContent>
<sourceFileList count="1">
<sourceFile id="sf1" location="C:\Users\Thorsten Schramm\Documents\Promotion\imzML\Website\files\Beispiel-Dateien\Example images\" name="Example.raw">
<cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format"/>
<cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format"/>
<cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="7623BE263B25FF99FDF017154B86FAB742D4BB0B"/>
</sourceFile>
</sourceFileList>
<contact>
<cvParam cvRef="MS" accession="MS:1000586" name="contact name" value="Thorsten Schramm"/>
<cvParam cvRef="MS" accession="MS:1000590" name="contact affiliation" value="Institut für Anorganische und Analytische Chemie"/>
<cvParam cvRef="MS" accession="MS:1000587" name="contact address" value="Schubertstraße 60, Haus 16, Gießen, Germany"/>
<cvParam cvRef="MS" accession="MS:1000589" name="contact email" value="thorsten.schramm@anorg.chemie.uni-.giessen.de"/>
</contact>
</fileDescription>
<referenceableParamGroupList count="4">
<referenceableParamGroup id="mzArray">
<cvParam cvRef="MS" accession="MS:1000576" name="no compression"/>
<cvParam cvRef="MS" accession="MS:1000514" name="m/z array" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
<cvParam cvRef="IMS" accession="IMS:1000101" name="external data" value="true"/>
<cvParam cvRef="MS" accession="MS:1000521" name="32-bit float"/>
</referenceableParamGroup>
<referenceableParamGroup id="intensityArray">
<cvParam cvRef="MS" accession="MS:1000576" name="no compression"/>
<cvParam cvRef="MS" accession="MS:1000515" name="intensity array" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of detector counts"/>
<cvParam cvRef="IMS" accession="IMS:1000101" name="external data" value="true"/>
<cvParam cvRef="MS" accession="MS:1000521" name="32-bit float"/>
</referenceableParamGroup>
<referenceableParamGroup id="scan1">
<cvParam cvRef="MS" accession="MS:1000093" name="increasing m/z scan"/>
<cvParam cvRef="MS" accession="MS:1000512" name="filter string" value="ITMS - p NSI Full ms [100,00-800,00]"/>
</referenceableParamGroup>
<referenceableParamGroup id="spectrum1">
<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum"/>
<cvParam cvRef="MS" accession="MS:1000511" name="ms level" value="0"/>
<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum"/>
<cvParam cvRef="MS" accession="MS:1000129" name="negative scan"/>
</referenceableParamGroup>
</referenceableParamGroupList>
<sampleList count="1">
<sample id="sample1" name="Sample1">
<cvParam cvRef="MS" accession="MS:1000001" name="sample number" value="1"/>
</sample>
</sampleList>
<softwareList count="2">
<software id="Xcalibur" version="2.2">
<cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur"/>
</software>
<software id="TMC" version="1.1 beta">
<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value=""/>
</software>
</softwareList>
<scanSettingsList count="1">
<scanSettings id="scansettings1">
<cvParam cvRef="IMS" accession="IMS:1000401" name="top down"/>
<cvParam cvRef="IMS" accession="IMS:1000413" name="flyback"/>
<cvParam cvRef="IMS" accession="IMS:1000480" name="horizontal line scan"/>
<cvParam cvRef="IMS" accession="IMS:1000491" name="linescan left right"/>
<cvParam cvRef="IMS" accession="IMS:1000042" name="max count of pixels x" value="3"/>
<cvParam cvRef="IMS" accession="IMS:1000043" name="max count of pixels y" value="3"/>
<cvParam cvRef="IMS" accession="IMS:1000044" name="max dimension x" value="300" unitCvRef="UO" unitAccession="UO:0000017" unitName="micrometer"/>
<cvParam cvRef="IMS" accession="IMS:1000045" name="max dimension y" value="300" unitCvRef="UO" unitAccession="UO:0000017" unitName="micrometer"/>
<cvParam cvRef="IMS" accession="IMS:1000046" name="pixel size (x)" value="100.0" unitCvRef="UO" unitAccession="UO:0000017" unitName="micrometer"/>
<cvParam cvRef="IMS" accession="IMS:1000047" name="pixel size y" value="100.0" unitCvRef="UO" unitAccession="UO:0000017" unitName="micrometer"/>
</scanSettings>
</scanSettingsList>
<instrumentConfigurationList count="1">
<instrumentConfiguration id="LTQFTUltra0">
<cvParam cvRef="MS" accession="MS:1000557" name="LTQ FT Ultra"/>
<cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="none"/>
<componentList count="3">
<source order="1">
<cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization"/>
<cvParam cvRef="MS" accession="MS:1000485" name="nanospray inlet"/>
<cvParam cvRef="MS" accession="MS:1000844" name="focus diameter x" value="10.0"/>
<cvParam cvRef="MS" accession="MS:1000845" name="focus diameter y" value="10.0"/>
<cvParam cvRef="MS" accession="MS:1000846" name="pulse energy" value="10.0"/>
<cvParam cvRef="MS" accession="MS:1000847" name="pulse duration" value="10.0"/>
<cvParam cvRef="MS" accession="MS:1000848" name="attenuation" value="50.0"/>
<cvParam cvRef="MS" accession="MS:1000850" name="gas laser"/>
<cvParam cvRef="MS" accession="MS:1000836" name="dried droplet MALDI matrix preparation"/>
<cvParam cvRef="MS" accession="MS:1000835" name="matrix solution concentration" value="10.0"/>
<cvParam cvRef="MS" accession="MS:1000834" name="matrix solution" value="DHB"/>
</source>
<analyzer order="2">
<cvParam cvRef="MS" accession="MS:1000264" name="ion trap"/>
<cvParam cvRef="MS" accession="MS:1000014" name="accuracy" value="0.0" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
</analyzer>
<detector order="3">
<cvParam cvRef="MS" accession="MS:1000253" name="electron multiplier"/>
<cvParam cvRef="MS" accession="MS:1000120" name="transient recorder"/>
</detector>
</componentList>
<softwareRef ref="Xcalibur"/>
</instrumentConfiguration>
</instrumentConfigurationList>
<dataProcessingList count="2">
<dataProcessing id="XcaliburProcessing">
<processingMethod softwareRef="Xcalibur" order="1">
<cvParam cvRef="MS" accession="MS:1000594" name="low intensity data point removal"/>
</processingMethod>
</dataProcessing>
<dataProcessing id="TMCConversion">
<processingMethod softwareRef="TMC" order="2">
<cvParam cvRef="MS" accession="MS:1000544" name="Conversion to mzML"/>
</processingMethod>
</dataProcessing>
</dataProcessingList>
<run defaultInstrumentConfigurationRef="LTQFTUltra0" defaultSourceFileRef="sf1" id="Experiment01" sampleRef="sample1" startTimeStamp="2009-08-11T15:59:44">
<spectrumList count="9" defaultDataProcessingRef="XcaliburProcessing">
<spectrum id="Scan=1" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="0">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="121.85039039868471"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="1"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="1"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="33612"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=2" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="1">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="182.31835420101888"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="2"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="1"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="67208"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="100804"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=3" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="2">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="161.8091904482675"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="3"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="1"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="134400"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="167996"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=4" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="3">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="200.9633277092539"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="1"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="2"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="201592"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="235188"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=5" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="4">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="135.30584173158496"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="2"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="2"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="268784"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="302380"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=6" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="5">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="108.39597418421639"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="3"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="2"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="335976"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="369572"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=7" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="6">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="127.84664447846832"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="1"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="3"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="403168"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="436764"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=8" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="7">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="168.27018147522492"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="2"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="3"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="470360"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="503956"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=9" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="8">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="243.5395066031077"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="3"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="3"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="537552"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="571148"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
</spectrumList>
</run>
</mzML>
+380
View File
@@ -0,0 +1,380 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<mzML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" xmlns="http://psi.hupo.org/ms/mzml" version="1.1">
<cvList count="4">
<cv URI="http://ontologies.berkeleybop.org/pato.obo" fullName="Phenotype And Trait Ontology" id="PATO" version="releases/2017-07-10"/>
<cv URI="http://ontologies.berkeleybop.org/uo.obo" fullName="Units of Measurement Ontology" id="UO" version="releases/2017-09-25"/>
<cv URI="https://raw.githubusercontent.com/hupo-psi/psi-ms-cv/master/psi-ms.obo" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" id="MS" version="4.1.0"/>
<cv URI="https://raw.githubusercontent.com/imzML/imzML/master/imagingMS.obo" fullName="Mass Spectrometry Imaging Ontology" id="IMS" version="1.1.0"/>
</cvList>
<fileDescription>
<fileContent>
<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum"/>
<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum"/>
<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="9d501bdc53444916b7e97e795b02c856"/>
<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="7e8fdb93053915d3edb51b70aa0619ac209964df"/>
<cvParam cvRef="IMS" accession="IMS:1000031" name="processed"/>
</fileContent>
<sourceFileList count="1">
<sourceFile id="sf1" location="C:\Users\Thorsten Schramm\Documents\Promotion\imzML\Website\files\Beispiel-Dateien\Example images\" name="Example.raw">
<cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format"/>
<cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format"/>
<cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="7623BE263B25FF99FDF017154B86FAB742D4BB0B"/>
</sourceFile>
</sourceFileList>
<contact>
<cvParam cvRef="MS" accession="MS:1000586" name="contact name" value="Thorsten Schramm"/>
<cvParam cvRef="MS" accession="MS:1000590" name="contact affiliation" value="Institut für Anorganische und Analytische Chemie"/>
<cvParam cvRef="MS" accession="MS:1000587" name="contact address" value="Schubertstraße 60, Haus 16, Gießen, Germany"/>
<cvParam cvRef="MS" accession="MS:1000589" name="contact email" value="thorsten.schramm@anorg.chemie.uni-.giessen.de"/>
</contact>
</fileDescription>
<referenceableParamGroupList count="4">
<referenceableParamGroup id="mzArray">
<cvParam cvRef="MS" accession="MS:1000576" name="no compression"/>
<cvParam cvRef="MS" accession="MS:1000514" name="m/z array" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
<cvParam cvRef="IMS" accession="IMS:1000101" name="external data" value="true"/>
<cvParam cvRef="MS" accession="MS:1000521" name="32-bit float"/>
</referenceableParamGroup>
<referenceableParamGroup id="intensityArray">
<cvParam cvRef="MS" accession="MS:1000576" name="no compression"/>
<cvParam cvRef="MS" accession="MS:1000515" name="intensity array" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of detector counts"/>
<cvParam cvRef="IMS" accession="IMS:1000101" name="external data" value="true"/>
<cvParam cvRef="MS" accession="MS:1000521" name="32-bit float"/>
</referenceableParamGroup>
<referenceableParamGroup id="scan1">
<cvParam cvRef="MS" accession="MS:1000093" name="increasing m/z scan"/>
<cvParam cvRef="MS" accession="MS:1000512" name="filter string" value="ITMS - p NSI Full ms [100,00-800,00]"/>
</referenceableParamGroup>
<referenceableParamGroup id="spectrum1">
<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum"/>
<cvParam cvRef="MS" accession="MS:1000511" name="ms level" value="0"/>
<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum"/>
<cvParam cvRef="MS" accession="MS:1000129" name="negative scan"/>
</referenceableParamGroup>
</referenceableParamGroupList>
<sampleList count="1">
<sample id="sample1" name="Sample1">
<cvParam cvRef="MS" accession="MS:1000001" name="sample number" value="1"/>
</sample>
</sampleList>
<softwareList count="2">
<software id="Xcalibur" version="2.2">
<cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur"/>
</software>
<software id="TMC" version="1.1 beta">
<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value=""/>
</software>
</softwareList>
<scanSettingsList count="1">
<scanSettings id="scansettings1">
<cvParam cvRef="IMS" accession="IMS:1000401" name="top down"/>
<cvParam cvRef="IMS" accession="IMS:1000413" name="flyback"/>
<cvParam cvRef="IMS" accession="IMS:1000480" name="horizontal line scan"/>
<cvParam cvRef="IMS" accession="IMS:1000491" name="linescan left right"/>
<cvParam cvRef="IMS" accession="IMS:1000042" name="max count of pixels x" value="3"/>
<cvParam cvRef="IMS" accession="IMS:1000043" name="max count of pixels y" value="3"/>
<cvParam cvRef="IMS" accession="IMS:1000044" name="max dimension x" value="300" unitCvRef="UO" unitAccession="UO:0000017" unitName="micrometer"/>
<cvParam cvRef="IMS" accession="IMS:1000045" name="max dimension y" value="300" unitCvRef="UO" unitAccession="UO:0000017" unitName="micrometer"/>
<cvParam cvRef="IMS" accession="IMS:1000046" name="pixel size (x)" value="100.0" unitCvRef="UO" unitAccession="UO:0000017" unitName="micrometer"/>
<cvParam cvRef="IMS" accession="IMS:1000047" name="pixel size y" value="100.0" unitCvRef="UO" unitAccession="UO:0000017" unitName="micrometer"/>
</scanSettings>
</scanSettingsList>
<instrumentConfigurationList count="1">
<instrumentConfiguration id="LTQFTUltra0">
<cvParam cvRef="MS" accession="MS:1000557" name="LTQ FT Ultra"/>
<cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="none"/>
<componentList count="3">
<source order="1">
<cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization"/>
<cvParam cvRef="MS" accession="MS:1000485" name="nanospray inlet"/>
<cvParam cvRef="MS" accession="MS:1000844" name="focus diameter x" value="10.0"/>
<cvParam cvRef="MS" accession="MS:1000845" name="focus diameter y" value="10.0"/>
<cvParam cvRef="MS" accession="MS:1000846" name="pulse energy" value="10.0"/>
<cvParam cvRef="MS" accession="MS:1000847" name="pulse duration" value="10.0"/>
<cvParam cvRef="MS" accession="MS:1000848" name="attenuation" value="50.0"/>
<cvParam cvRef="MS" accession="MS:1000850" name="gas laser"/>
<cvParam cvRef="MS" accession="MS:1000836" name="dried droplet MALDI matrix preparation"/>
<cvParam cvRef="MS" accession="MS:1000835" name="matrix solution concentration" value="10.0"/>
<cvParam cvRef="MS" accession="MS:1000834" name="matrix solution" value="DHB"/>
</source>
<analyzer order="2">
<cvParam cvRef="MS" accession="MS:1000264" name="ion trap"/>
<cvParam cvRef="MS" accession="MS:1000014" name="accuracy" value="0.0" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
</analyzer>
<detector order="3">
<cvParam cvRef="MS" accession="MS:1000253" name="electron multiplier"/>
<cvParam cvRef="MS" accession="MS:1000120" name="transient recorder"/>
</detector>
</componentList>
<softwareRef ref="Xcalibur"/>
</instrumentConfiguration>
</instrumentConfigurationList>
<dataProcessingList count="2">
<dataProcessing id="XcaliburProcessing">
<processingMethod softwareRef="Xcalibur" order="1">
<cvParam cvRef="MS" accession="MS:1000594" name="low intensity data point removal"/>
</processingMethod>
</dataProcessing>
<dataProcessing id="TMCConversion">
<processingMethod softwareRef="TMC" order="2">
<cvParam cvRef="MS" accession="MS:1000544" name="Conversion to mzML"/>
</processingMethod>
</dataProcessing>
</dataProcessingList>
<run defaultInstrumentConfigurationRef="LTQFTUltra0" defaultSourceFileRef="sf1" id="Experiment01" sampleRef="sample1" startTimeStamp="2009-08-11T15:59:44">
<spectrumList count="9" defaultDataProcessingRef="XcaliburProcessing">
<spectrum id="Scan=1" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="0">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="121.85039039868471"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="1"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="1"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="33612"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=2" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="1">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="182.31835420101888"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="2"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="1"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="67208"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="100804"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=3" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="2">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="161.8091904482675"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="3"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="1"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="134400"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="167996"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=4" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="3">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="200.9633277092539"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="1"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="2"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="201592"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="235188"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=5" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="4">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="135.30584173158496"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="2"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="2"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="268784"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="302380"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=6" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="5">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="108.39597418421639"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="3"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="2"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="335976"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="369572"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=7" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="6">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="127.84664447846832"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="1"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="3"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="403168"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="436764"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=8" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="7">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="168.27018147522492"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="2"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="3"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="470360"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="503956"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
<spectrum id="Scan=9" defaultArrayLength="0" dataProcessingRef="XcaliburProcessing" sourceFileRef="sf1" index="8">
<referenceableParamGroupRef ref="spectrum1"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="243.5395066031077"/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination"/>
<scan instrumentConfigurationRef="LTQFTUltra0">
<referenceableParamGroupRef ref="scan1"/>
<cvParam cvRef="IMS" accession="IMS:1000050" name="position x" value="3"/>
<cvParam cvRef="IMS" accession="IMS:1000051" name="position y" value="3"/>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="mzArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="537552"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
<binaryDataArray encodedLength="0">
<referenceableParamGroupRef ref="intensityArray"/>
<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399"/>
<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="571148"/>
<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596"/>
<binary />
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
</spectrumList>
</run>
</mzML>
+1 -1
View File
@@ -32,7 +32,7 @@ def find_datatype(registry, filename):
def collect_test_data(registry):
test_files = os.listdir(TEST_FILE_DIR)
test_files = [f for f in os.listdir(TEST_FILE_DIR) if "." in f]
files = [os.path.join(TEST_FILE_DIR, f) for f in test_files]
datatypes = [find_datatype(registry, f) for f in test_files]
uploadable = [datatype.file_ext in registry.upload_file_formats for datatype in datatypes]
+1 -1
View File
@@ -10,4 +10,4 @@ from galaxy.util import galaxy_directory
def test_get_file_peek():
# should get the first 5 lines of the file without a trailing newline character
assert get_file_peek(os.path.join(galaxy_directory(), 'test-data/1.tabular'), line_wrap=False) == 'chr22\t1000\tNM_17\nchr22\t2000\tNM_18\nchr10\t2200\tNM_10\nchr10\thap\ttest\nchr10\t1200\tNM_11'
assert get_file_peek(os.path.join(galaxy_directory(), 'test-data/1.tabular'), line_wrap=False) == 'chr22\t1000\tNM_17\nchr22\t2000\tNM_18\nchr10\t2200\tNM_10\nchr10\thap\ttest\nchr10\t1200\tNM_11\n'
+79
View File
@@ -0,0 +1,79 @@
import tempfile
import pytest
from galaxy.datatypes.sniff import (
convert_newlines,
convert_newlines_sep2tabs,
get_test_fname,
)
def assert_converts_to_1234_convert_sep2tabs(content, expected='1\t2\n3\t4\n'):
with tempfile.NamedTemporaryFile(delete=False, mode='w') as tf:
tf.write(content)
rval = convert_newlines_sep2tabs(tf.name, tmp_prefix="gxtest", tmp_dir=tempfile.gettempdir())
assert expected == open(tf.name).read()
assert rval == (2, None), rval
def assert_converts_to_1234_convert(content, block_size=1024):
fname = get_test_fname('temp2.txt')
with open(fname, 'w') as fh:
fh.write(content)
rval = convert_newlines(fname, tmp_prefix="gxtest", tmp_dir=tempfile.gettempdir(), block_size=block_size)
actual_contents = open(fname).read()
assert '1 2\n3 4\n' == actual_contents, actual_contents
assert rval == (2, None), "rval != %s for %s" % (rval, content)
@pytest.mark.parametrize('source,block_size', [
("1 2\r3 4", None),
("1 2\n3 4", None),
("1 2\r\n3 4", None),
("1 2\r3 4\r", None),
("1 2\n3 4\n", None),
("1 2\r\n3 4\r\n", None),
("1 2\r3 4", 2),
("1 2\n3 4", 2),
("1 2\r\n3 4", 2),
("1 2\r3 4\r", 2),
("1 2\n3 4\n", 2),
("1 2\r\n3 4\r\n", 2),
("1 2\r3 4", 3),
("1 2\n3 4", 3),
("1 2\r\n3 4", 3),
("1 2\r3 4\r", 3),
("1 2\n3 4\n", 3),
("1 2\r\n3 4\r\n", 3),
])
def test_convert_newlines(source, block_size):
# Verify ends with newline - with or without that on inputs - for any of
# \r \\n or \\r\\n newlines.
if block_size:
assert_converts_to_1234_convert(source, block_size)
else:
assert_converts_to_1234_convert(source)
def test_convert_newlines_non_utf():
fname = get_test_fname("dosimzml")
rval = convert_newlines(fname, tmp_prefix="gxtest", tmp_dir=tempfile.gettempdir(), in_place=False)
new_file = rval[1]
assert open(new_file, "rb").read() == open(get_test_fname("1imzml"), "rb").read()
@pytest.mark.parametrize('source,expected', [
("1 2\n3 4\n", None),
("1 2\n3 4\n", None),
("1\t2\n3\t4\n", None),
("1\t2\r3\t4\r", None),
("1\t2\r\n3\t4\r\n", None),
("1 2\r\n3 4\r\n", None),
("1 2 \n3 4 \n", '1\t2\t\n3\t4\t\n'),
])
def test_convert_sep2tabs(source, expected):
if expected:
assert_converts_to_1234_convert_sep2tabs(source, expected=expected)
else:
assert_converts_to_1234_convert_sep2tabs(source)