{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "83d34fb6", "metadata": { "ExecuteTime": { "end_time": "2023-09-28T15:11:01.731660Z", "start_time": "2023-09-28T15:11:01.293239Z" } }, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import sqlite3\n", "import os\n", "import pyzstd" ] }, { "cell_type": "code", "execution_count": 13, "id": "c174a0de", "metadata": { "ExecuteTime": { "end_time": "2023-09-28T15:24:58.779565Z", "start_time": "2023-09-28T15:24:58.770465Z" } }, "outputs": [], "source": [ "folder_name = \"test.d\"\n", "if not os.path.exists(folder_name):\n", " os.mkdir(folder_name)\n", "tdf_file_name = os.path.join(folder_name, \"analysis.tdf\")\n", "tdf_bin_file_name = os.path.join(folder_name, \"analysis.tdf_bin\")\n", "num_cycles = 2\n", "frames_per_cycle = 2\n", "num_frames = num_cycles * frames_per_cycle\n", "num_scans = 4\n", "scanmode = 8\n", "mz_min = 100.000000\n", "mz_max = 1000.000000\n", "im_min = 0.5\n", "im_max = 1.5\n", "num_tof = num_frames * num_scans\n", "num_tof = (num_tof + 1) * num_tof // 2" ] }, { "cell_type": "code", "execution_count": 14, "id": "b7ef86d4", "metadata": { "ExecuteTime": { "end_time": "2023-09-28T15:25:02.177458Z", "start_time": "2023-09-28T15:25:02.166668Z" } }, "outputs": [], "source": [ "# tofs = np.arange(1, num_tof + 1)\n", "# intensities = np.arange(1, num_tof + 1) * 2\n", "frame_data = []\n", "count = 0\n", "offset = 0\n", "msms_type = [0 if i % 2 == 0 else scanmode for i in range(num_frames)]\n", "for frame in range(num_frames):\n", " frame_tofs = []\n", " frame_ints = []\n", " frame_counts = []\n", " for scan in range(num_scans):\n", " count += 1\n", " frame_tofs.append(np.arange(1 + offset, 1 + offset + count))\n", " frame_ints.append(np.arange(1 + offset, 1 + offset + count) * 2)\n", " frame_counts.append(count)\n", " offset += count\n", " frame_data.append(\n", " (\n", " frame_counts,\n", " frame_tofs,\n", " frame_ints,\n", " )\n", " )" ] }, { "cell_type": "code", "execution_count": 15, "id": "56e819a0", "metadata": { "ExecuteTime": { "end_time": "2023-09-28T15:25:02.400280Z", "start_time": "2023-09-28T15:25:02.381215Z" } }, "outputs": [], "source": [ "frame = frame_data[0]\n", "data = []\n", "frame_offsets = []\n", "frame_offset = 0\n", "summed_intensities = []\n", "max_intensities = []\n", "num_peaks = []\n", "for frame in frame_data:\n", " frame_offsets.append(frame_offset)\n", " scans = frame[0]\n", " scan_count = len(scans)\n", " ints = np.concatenate(frame[2])\n", " summed_intensities.append(np.sum(ints))\n", " max_intensities.append(np.max(ints))\n", " num_peaks.append(len(ints))\n", " buffer = np.zeros(scan_count + len(ints) * 2, dtype=np.uint32)\n", " buffer[0] = scan_count\n", " buffer[1:scan_count] = np.array(scans[:-1]) * 2\n", " buffer[scan_count + 1::2] = ints\n", " offset = scan_count\n", " for tofs in frame[1]:\n", " buffer[offset] = tofs[0]\n", " buffer[offset + 2: offset + 2 * len(tofs): 2] = np.diff(tofs)\n", " offset += 2 * len(tofs)\n", " buffer = np.frombuffer(buffer, dtype=np.uint8)\n", " buffer = buffer.reshape(-1, 4).T.flatten()\n", " decompressed_bytes = buffer\n", " compressed_data = pyzstd.compress(decompressed_bytes)\n", " compressed_data = np.frombuffer(compressed_data, dtype=np.uint8)\n", " frame_size = len(compressed_data) + 8\n", " data.append(np.frombuffer(np.array([frame_size],dtype=np.uint32), dtype=np.uint8))\n", " data.append(np.frombuffer(np.array([scan_count],dtype=np.uint32), dtype=np.uint8))\n", " data.append(compressed_data)\n", " frame_offset += frame_size\n", "bin_data = np.concatenate(data)" ] }, { "cell_type": "code", "execution_count": 16, "id": "1a7862fe", "metadata": { "ExecuteTime": { "end_time": "2023-09-28T15:25:02.572316Z", "start_time": "2023-09-28T15:25:02.565679Z" } }, "outputs": [], "source": [ "if os.path.exists(tdf_bin_file_name):\n", " os.remove(tdf_bin_file_name)\n", " \n", "with open(tdf_bin_file_name, \"wb\") as tdf_bin_file:\n", " tdf_bin_file.write(bin_data.tobytes())" ] }, { "cell_type": "code", "execution_count": 17, "id": "a6f6cf63", "metadata": { "ExecuteTime": { "end_time": "2023-09-28T15:25:02.769843Z", "start_time": "2023-09-28T15:25:02.742240Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IdTimePolarityScanModeMsMsTypeTimsIdMaxIntensitySummedIntensitiesNumScansNumPeaksAccumulationTimeRampTime
010.1+80020110410100100
120.2+8848721222426100100
230.3+801301564830442100100
340.4+8823527212470458100100
\n", "
" ], "text/plain": [ " Id Time Polarity ScanMode MsMsType TimsId MaxIntensity \\\n", "0 1 0.1 + 8 0 0 20 \n", "1 2 0.2 + 8 8 48 72 \n", "2 3 0.3 + 8 0 130 156 \n", "3 4 0.4 + 8 8 235 272 \n", "\n", " SummedIntensities NumScans NumPeaks AccumulationTime RampTime \n", "0 110 4 10 100 100 \n", "1 1222 4 26 100 100 \n", "2 4830 4 42 100 100 \n", "3 12470 4 58 100 100 " ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "size = num_frames\n", "peaks = num_scans * (num_scans + 1) // 2\n", "\n", "frames = pd.DataFrame(\n", " {\n", " 'Id': np.arange(1, size + 1),\n", " 'Time': np.arange(1, size + 1, dtype=np.float64) / 10,\n", " 'Polarity': [\"+\"] * size,\n", " 'ScanMode': [scanmode] * size,\n", " 'MsMsType': msms_type,\n", " 'TimsId': frame_offsets,\n", " 'MaxIntensity': max_intensities,\n", " 'SummedIntensities': summed_intensities,\n", " 'NumScans': [num_scans] * size,\n", " 'NumPeaks': num_peaks,\n", "# 'MzCalibration': [1] * size,\n", "# 'T1': [1] * size,\n", "# 'T2': [1] * size,\n", "# 'TimsCalibration': [1] * size,\n", "# 'PropertyGroup': [1] * size,\n", " 'AccumulationTime': [100] * size,\n", " 'RampTime': [100] * size,\n", "# 'Pressure': [2] * size,\n", " }\n", ")\n", "frames" ] }, { "cell_type": "code", "execution_count": 18, "id": "2076aef6", "metadata": { "ExecuteTime": { "end_time": "2023-09-28T15:25:03.251715Z", "start_time": "2023-09-28T15:25:03.229805Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IdLargestPeakMzAverageMzMonoisotopicMzChargeScanNumberIntensityParent
01500.0500.5500.021101
12501.0501.5501.032101
23502.0502.5502.021103
\n", "
" ], "text/plain": [ " Id LargestPeakMz AverageMz MonoisotopicMz Charge ScanNumber \\\n", "0 1 500.0 500.5 500.0 2 1 \n", "1 2 501.0 501.5 501.0 3 2 \n", "2 3 502.0 502.5 502.0 2 1 \n", "\n", " Intensity Parent \n", "0 10 1 \n", "1 10 1 \n", "2 10 3 " ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "size -= 1\n", "precursors = pd.DataFrame(\n", " {\n", " 'Id': np.arange(1, size + 1),\n", " 'LargestPeakMz': 500.0 + np.arange(size),\n", " 'AverageMz': 500.5 + np.arange(size),\n", " 'MonoisotopicMz': 500.0 + np.arange(size),\n", " 'Charge': [2 if i % 2 == 0 else 3 for i in range(size)],\n", " 'ScanNumber': [1 if i % 2 == 0 else 2 for i in range(size)],\n", " 'Intensity': [10] * size,\n", " 'Parent': [(i // 2) * 2 + 1 for i in range(size)],\n", " }\n", ")\n", "size += 1\n", "precursors" ] }, { "cell_type": "code", "execution_count": 19, "id": "419685ec", "metadata": { "ExecuteTime": { "end_time": "2023-09-28T15:25:03.617042Z", "start_time": "2023-09-28T15:25:03.589577Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FrameScanNumBeginScanNumEndIsolationMzIsolationWidthCollisionEnergyPrecursor
0223500.52.00.01
1212501.52.00.02
2423502.52.00.03
3412501.52.00.02
\n", "
" ], "text/plain": [ " Frame ScanNumBegin ScanNumEnd IsolationMz IsolationWidth \\\n", "0 2 2 3 500.5 2.0 \n", "1 2 1 2 501.5 2.0 \n", "2 4 2 3 502.5 2.0 \n", "3 4 1 2 501.5 2.0 \n", "\n", " CollisionEnergy Precursor \n", "0 0.0 1 \n", "1 0.0 2 \n", "2 0.0 3 \n", "3 0.0 2 " ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fragment_frames = pd.DataFrame(\n", " {\n", " 'Frame': [(i // 2 + 1) * 2 for i in range(size)],\n", " 'ScanNumBegin': [2 if i % 2 == 0 else 1 for i in range(size)],\n", " 'ScanNumEnd': [3 if i % 2 == 0 else 2 for i in range(size)],\n", " 'IsolationMz': 500.5 + np.arange(size),\n", " 'IsolationWidth': [2.0] * size,\n", " 'CollisionEnergy': [0.0] * size,\n", " 'Precursor': np.arange(1, size + 1),\n", " }\n", ")\n", "fragment_frames.iloc[-1] = fragment_frames.iloc[-3]\n", "fragment_frames.Frame.values[-1] = fragment_frames.Frame.values[-2]\n", "fragment_frames" ] }, { "cell_type": "code", "execution_count": 20, "id": "d71b81b9", "metadata": { "ExecuteTime": { "end_time": "2023-09-28T15:25:03.842767Z", "start_time": "2023-09-28T15:25:03.822643Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
KeyValue
0TimsCompressionType2
1MaxNumPeaksPerScan58
2DigitizerNumSamples136
3MzAcqRangeLower100.0
4MzAcqRangeUpper1000.0
5AcquisitionSoftwaretimsTOF
6SampleNametest
7OneOverK0AcqRangeLower0.5
8OneOverK0AcqRangeUpper1.5
\n", "
" ], "text/plain": [ " Key Value\n", "0 TimsCompressionType 2\n", "1 MaxNumPeaksPerScan 58\n", "2 DigitizerNumSamples 136\n", "3 MzAcqRangeLower 100.0\n", "4 MzAcqRangeUpper 1000.0\n", "5 AcquisitionSoftware timsTOF\n", "6 SampleName test\n", "7 OneOverK0AcqRangeLower 0.5\n", "8 OneOverK0AcqRangeUpper 1.5" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "global_meta_data = {\n", "# \"SchemaType\": \"TDF\",\n", "# \"SchemaVersionMajor\": 3,\n", "# \"SchemaVersionMinor\": 7,\n", "# \"AcquisitionSoftwareVendor\": \"Bruker\",\n", "# \"InstrumentVendor\": \"Bruker\",\n", "# \"ClosedProperly\": 1,\n", " \"TimsCompressionType\": 2,\n", " \"MaxNumPeaksPerScan\": int(frames.NumPeaks.values[-1]),\n", "# \"AnalysisId\": \"00000000-0000-0000-0000-000000000000\",\n", " \"DigitizerNumSamples\": num_tof,\n", " \"MzAcqRangeLower\": mz_min,\n", " \"MzAcqRangeUpper\": mz_max,\n", " \"AcquisitionSoftware\": \"timsTOF\",\n", "# \"AcquisitionSoftwareVersion\": \"0.0\",\n", "# \"AcquisitionFirmwareVersion\": \"0.1\",\n", "# \"AcquisitionDateTime\": \"2023-05-05T21:20:37.229+02:00\",\n", "# \"InstrumentName\": \"timsTOF SCP\",\n", "# \"InstrumentFamily\": 9,\n", "# \"InstrumentRevision\": 3,\n", "# \"InstrumentSourceType\": 11,\n", "# \"InstrumentSerialNumber\": 0,\n", "# \"OperatorName\": \"Admin\",\n", "# \"Description\": \"\",\n", " \"SampleName\": \"test\",\n", "# \"MethodName\": \"test.m\",\n", "# \"DenoisingEnabled\": 0,\n", "# \"PeakWidthEstimateValue\": 0.000025,\n", "# \"PeakWidthEstimateType\": 1,\n", "# \"PeakListIndexScaleFactor\": 1,\n", " \"OneOverK0AcqRangeLower\": im_min,\n", " \"OneOverK0AcqRangeUpper\": im_max,\n", "# \"DigitizerType\": \"SA248P\",\n", "# \"DigitizerSerialNumber\": \"AQ00074235\",\n", "}\n", "global_meta_data = pd.DataFrame(\n", " {\n", " \"Key\": global_meta_data.keys(),\n", " \"Value\": global_meta_data.values(),\n", " }\n", ")\n", "global_meta_data" ] }, { "cell_type": "code", "execution_count": 21, "id": "649fa28a", "metadata": { "ExecuteTime": { "end_time": "2023-09-28T15:25:04.436258Z", "start_time": "2023-09-28T15:25:04.389245Z" } }, "outputs": [], "source": [ "if os.path.exists(tdf_file_name):\n", " os.remove(tdf_file_name)\n", "with sqlite3.connect(tdf_file_name) as sql_database_connection:\n", " global_meta_data.to_sql(\n", " \"GlobalMetaData\",\n", " sql_database_connection,\n", " index=False\n", " )\n", " frames.to_sql(\n", " \"Frames\",\n", " sql_database_connection,\n", " index=False\n", " )\n", " precursors.to_sql(\n", " \"Precursors\",\n", " sql_database_connection,\n", " index=False\n", " )\n", " fragment_frames.to_sql(\n", " \"PasefFrameMsMsInfo\",\n", " sql_database_connection,\n", " index=False\n", " )" ] }, { "cell_type": "code", "execution_count": 11, "id": "b10148b5", "metadata": { "ExecuteTime": { "end_time": "2023-09-28T15:11:12.359759Z", "start_time": "2023-09-28T15:11:07.862708Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING:root:WARNING: No Bruker libraries are available for this operating system. Mobility and m/z values need to be estimated. While this estimation often returns acceptable results with errors < 0.02 Th, huge errors (e.g. offsets of 6 Th) have already been observed for some samples!\n", "100%|█████████████████████████████████████████████| 4/4 [00:01<00:00, 2.83it/s]\n" ] }, { "data": { "text/plain": [ "array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,\n", " 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,\n", " 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,\n", " 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,\n", " 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,\n", " 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,\n", " 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,\n", " 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n", " 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,\n", " 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,\n", " 130, 131, 132, 133, 134, 135], dtype=uint32)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import alphatims.bruker\n", "alphatims.bruker.BRUKER_DLL_FILE_NAME = \"\"\n", "data = alphatims.bruker.TimsTOF(folder_name)\n", "data.tof_indices" ] }, { "cell_type": "code", "execution_count": 13, "id": "5d175bee", "metadata": { "ExecuteTime": { "end_time": "2023-09-08T12:11:28.124197Z", "start_time": "2023-09-08T12:11:28.116379Z" } }, "outputs": [ { "data": { "text/plain": [ "array([ 0, 0, 0, 0, 0, 0, 1, 3, 6, 10, 10, 15, 21,\n", " 28, 36, 36, 45, 55, 66, 78, 78, 91, 105, 120, 136, 136])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.push_indptr" ] }, { "cell_type": "code", "execution_count": 14, "id": "62e18d1d", "metadata": { "ExecuteTime": { "end_time": "2023-09-08T12:12:15.149720Z", "start_time": "2023-09-08T12:12:15.117228Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
raw_indicesframe_indicesscan_indicesprecursor_indicespush_indicestof_indicesrt_valuesrt_values_minmobility_valuesquad_low_mz_valuesquad_high_mz_valuesmz_valuesintensity_valuescorrected_intensity_values
00100500.10.0016671.5-1.0-1.0100.00000022
11110610.10.0016671.3-1.0-1.0103.18152044
22110620.10.0016671.3-1.0-1.0106.41286166
33120730.10.0016671.1-1.0-1.0109.69402388
44120740.10.0016671.1-1.0-1.0113.0250061010
55120750.10.0016671.1-1.0-1.0116.4058101212
66130860.10.0016670.9-1.0-1.0119.8364351414
77130870.10.0016670.9-1.0-1.0123.3168811616
88130880.10.0016670.9-1.0-1.0126.8471471818
99130890.10.0016670.9-1.0-1.0130.4272352020
\n", "
" ], "text/plain": [ " raw_indices frame_indices scan_indices precursor_indices push_indices \\\n", "0 0 1 0 0 5 \n", "1 1 1 1 0 6 \n", "2 2 1 1 0 6 \n", "3 3 1 2 0 7 \n", "4 4 1 2 0 7 \n", "5 5 1 2 0 7 \n", "6 6 1 3 0 8 \n", "7 7 1 3 0 8 \n", "8 8 1 3 0 8 \n", "9 9 1 3 0 8 \n", "\n", " tof_indices rt_values rt_values_min mobility_values quad_low_mz_values \\\n", "0 0 0.1 0.001667 1.5 -1.0 \n", "1 1 0.1 0.001667 1.3 -1.0 \n", "2 2 0.1 0.001667 1.3 -1.0 \n", "3 3 0.1 0.001667 1.1 -1.0 \n", "4 4 0.1 0.001667 1.1 -1.0 \n", "5 5 0.1 0.001667 1.1 -1.0 \n", "6 6 0.1 0.001667 0.9 -1.0 \n", "7 7 0.1 0.001667 0.9 -1.0 \n", "8 8 0.1 0.001667 0.9 -1.0 \n", "9 9 0.1 0.001667 0.9 -1.0 \n", "\n", " quad_high_mz_values mz_values intensity_values \\\n", "0 -1.0 100.000000 2 \n", "1 -1.0 103.181520 4 \n", "2 -1.0 106.412861 6 \n", "3 -1.0 109.694023 8 \n", "4 -1.0 113.025006 10 \n", "5 -1.0 116.405810 12 \n", "6 -1.0 119.836435 14 \n", "7 -1.0 123.316881 16 \n", "8 -1.0 126.847147 18 \n", "9 -1.0 130.427235 20 \n", "\n", " corrected_intensity_values \n", "0 2 \n", "1 4 \n", "2 6 \n", "3 8 \n", "4 10 \n", "5 12 \n", "6 14 \n", "7 16 \n", "8 18 \n", "9 20 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[1]" ] }, { "cell_type": "code", "execution_count": null, "id": "5a2815f6", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:rawdata]", "language": "python", "name": "conda-env-rawdata-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.16" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }