Repository 'rename_annotated_feature'
hg clone https://toolshed.g2.bx.psu.edu/repos/recetox/rename_annotated_feature

Changeset 0:268fcec93d9c (2024-05-21)
Commit message:
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/rename_annotated_feature commit 7948bcdd36cec524d201712dc20c438973b4cc28
added:
macros.xml
rename_annotated_feature.py
rename_annotated_feature.xml
test-data/abundance_table.tsv
test-data/annotated_table.tsv
test-data/multi_mode_output.tsv
test-data/single_mode_output.tsv
b
diff -r 000000000000 -r 268fcec93d9c macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml Tue May 21 07:44:25 2024 +0000
[
@@ -0,0 +1,26 @@
+<macros>
+    <token name="@TOOL_VERSION@">1.0.0</token>
+    <xml name="creator">
+    <creator>
+        <person
+            givenName="Wudmir"
+            familyName="Rojas"
+            url="https://github.com/wverastegui"
+            identifier="0000-0001-7036-9987" />
+        <person
+            givenName="Helge"
+            familyName="Hecht"
+            url="https://github.com/hechth"
+            identifier="0000-0001-6744-996X" />
+        <organization
+            url="https://www.recetox.muni.cz/"
+            email="GalaxyToolsDevelopmentandDeployment@space.muni.cz"
+            name="RECETOX MUNI"/>
+    </creator>
+    </xml>
+    <token name="@HELP@"><![CDATA[
+        This tool uses an annotations table to rename columns in an abundance table. It accepts paths to these tables, 
+        a renaming mode ("single" or "multiple"), and an output path for the CSV result. 'Single' mode renames based on
+        the highest match, 'multiple' mode renames based on all matches.
+    ]]></token>
+</macros>
b
diff -r 000000000000 -r 268fcec93d9c rename_annotated_feature.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rename_annotated_feature.py Tue May 21 07:44:25 2024 +0000
[
@@ -0,0 +1,94 @@
+import argparse
+from collections import defaultdict
+from typing import Tuple
+
+import pandas as pd
+
+
+def parse_arguments() -> argparse.Namespace:
+    """Parses command-line arguments.
+
+    Returns:
+        argparse.Namespace: Namespace with argument values as attributes.
+    """
+    parser = argparse.ArgumentParser(description='Rename annotated feature.')
+    parser.add_argument('--annotations_table_path', type=str, required=True, help='Path to the annotations table file.')
+    parser.add_argument('--abundance_table_path', type=str, required=True, help='Path to the abundance table file.')
+    parser.add_argument('--mode', type=str, choices=['single', 'multiple'], default='single', help='Mode to use for renaming. Can be "single" or "multiple".')
+    parser.add_argument('--output_path', type=str, default='output.csv', help='Path to the output CSV file.')
+    return parser.parse_args()
+
+
+def load_tables(annotations_table_path: str, abundance_table_path: str) -> Tuple[pd.DataFrame, pd.DataFrame]:
+    """Loads annotation and abundance tables from files.
+
+    Args:
+        annotations_table_path (str): Path to the annotations table file.
+        abundance_table_path (str): Path to the abundance table file.
+
+    Returns:
+        Tuple[pd.DataFrame, pd.DataFrame]: Tuple of DataFrames for annotations and abundance tables.
+    """
+    annotations_table = pd.read_table(annotations_table_path)
+    abundance_table = pd.read_table(abundance_table_path)
+
+    annotations_table.columns = annotations_table.columns.str.strip()
+    abundance_table.columns = abundance_table.columns.str.strip()
+
+    return annotations_table, abundance_table
+
+
+def rename_single(annotations_table: pd.DataFrame, abundance_table: pd.DataFrame) -> None:
+    """Renames columns in abundance table based on single best match in annotations table.
+
+    Args:
+        annotations_table (pd.DataFrame): DataFrame of annotations.
+        abundance_table (pd.DataFrame): DataFrame of abundance data.
+    """
+    scores_col = annotations_table.columns[-1]
+    ref_idxs = annotations_table.groupby("query")[scores_col].idxmax()
+    results = annotations_table.loc[ref_idxs]
+
+    queries = results["query"]
+    refs = results["reference"]
+
+    mapping = dict(zip(queries, refs))
+    abundance_table.rename(columns=mapping, inplace=True)
+
+
+def rename_multiple(annotations_table: pd.DataFrame, abundance_table: pd.DataFrame) -> None:
+    """Renames columns in abundance table based on multiple matches in annotations table.
+
+    Args:
+        annotations_table (pd.DataFrame): DataFrame of annotations.
+        abundance_table (pd.DataFrame): DataFrame of abundance data.
+    """
+    queries = annotations_table["query"]
+    refs = annotations_table["reference"]
+
+    mapping = defaultdict(list)
+    for query, ref in zip(queries, refs):
+        mapping[query].append(ref)
+
+    for query, refs in mapping.items():
+        new_column_name = ', '.join(refs)
+        if query in abundance_table.columns:
+            abundance_table.rename(columns={query: new_column_name}, inplace=True)
+
+
+def main() -> None:
+    """Main function to parse arguments, load tables, rename columns, and save output."""
+    args = parse_arguments()
+
+    annotations_table, abundance_table = load_tables(args.annotations_table_path, args.abundance_table_path)
+
+    if args.mode == "single":
+        rename_single(annotations_table, abundance_table)
+    else:
+        rename_multiple(annotations_table, abundance_table)
+
+    abundance_table.to_csv(args.output_path, sep="\t", index=False)
+
+
+if __name__ == "__main__":
+    main()
b
diff -r 000000000000 -r 268fcec93d9c rename_annotated_feature.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rename_annotated_feature.xml Tue May 21 07:44:25 2024 +0000
[
@@ -0,0 +1,53 @@
+<tool id="rename_annotated_feature" name="Rename Annotated Feature" version="@TOOL_VERSION@+galaxy0" profile="21.09">
+    <description>Rename columns in abundance table based on annotations table</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <expand macro="creator"/>
+    <requirements>
+        <requirement type="package" version="2.2.1">pandas</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+        python3 '${__tool_directory__}/rename_annotated_feature.py'
+        --annotations_table_path '$annotations_table_path' 
+        --abundance_table_path '$abundance_table_path' 
+        --mode '$mode'
+        --output_path '$output_path'
+    ]]></command>
+    <inputs>
+        <param name="annotations_table_path" type="data" format="tabular" label="Annotations table file" help="Path to the annotations table file."/>
+        <param name="abundance_table_path" type="data" format="tabular" label="Abundance table file" help="Path to the abundance table file."/>
+        <param name="mode" type="select" label="Mode to use for renaming" help="Can be single or multiple.">
+            <option value="single" selected="true">Single</option>
+            <option value="multiple">Multiple</option>
+        </param>
+    </inputs>
+    <outputs>
+        <data name="output_path" format="tabular" label="Renamed abundance table"/>
+    </outputs>
+    <tests>
+        <test>
+            <param name="annotations_table_path" value="annotated_table.tsv" ftype="tabular"/>
+            <param name="abundance_table_path" value="abundance_table.tsv" ftype="tabular"/>
+            <param name="mode" value="single"/>
+            <output name="output_path" file="single_mode_output.tsv"/>
+        </test>
+        <test>
+            <param name="annotations_table_path" value="annotated_table.tsv" ftype="tabular"/>
+            <param name="abundance_table_path" value="abundance_table.tsv" ftype="tabular" />
+            <param name="mode" value="multiple"/>
+            <output name="output_path" file="multi_mode_output.tsv"/>
+        </test>
+    </tests>
+    <help>
+        <![CDATA[
+        @HELP@
+        ]]>
+    </help>
+    <!-- Update to the correct citation for this tool -->
+    <citations>
+            <citation type="doi">10.5281/zenodo.7178586</citation>
+            <citation type="doi">10.21105/joss.02411</citation>
+            <citation type="doi">10.1021/ac501530d</citation>            
+    </citations>
+</tool>
\ No newline at end of file
b
diff -r 000000000000 -r 268fcec93d9c test-data/abundance_table.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundance_table.tsv Tue May 21 07:44:25 2024 +0000
b
b'@@ -0,0 +1,4 @@\n+\tC001\tC002\tC003\tC004\tC005\tC006\tC007\tC008\tC009\tC010\tC011\tC012\tC013\tC014\tC015\tC016\tC017\tC018\tC019\tC020\tC021\tC022\tC023\tC024\tC025\tC026\tC027\tC028\tC029\tC030\tC031\tC032\tC033\tC034\tC035\tC036\tC037\tC038\tC039\tC040\tC041\tC042\tC043\tC044\tC045\tC046\tC047\tC048\tC049\tC050\tC051\tC052\tC053\tC054\tC055\tC056\tC057\tC058\tC059\tC060\tC061\tC062\tC063\tC064\tC065\tC066\tC067\tC068\tC069\tC070\tC071\tC072\tC073\tC074\tC075\tC076\tC077\tC078\tC079\tC080\tC081\tC082\tC083\tC084\tC085\tC086\tC087\tC088\tC089\tC090\tC091\tC092\tC093\tC094\tC095\tC096\tC097\tC098\tC099\tC100\tC101\tC102\tC103\tC104\tC105\tC106\tC107\tC108\tC109\tC110\tC111\tC112\tC113\tC114\tC115\tC116\tC117\tC118\tC119\tC120\tC121\tC122\tC123\tC124\tC125\tC126\tC127\tC128\tC129\tC130\tC131\tC132\tC133\tC134\tC135\tC136\tC137\tC138\tC139\tC140\tC141\tC142\tC143\tC144\tC145\tC146\tC147\tC148\tC149\tC150\tC151\tC152\tC153\tC154\tC155\tC156\tC157\tC158\tC159\tC160\tC161\tC162\tC163\tC164\tC165\tC166\tC167\tC168\tC169\tC170\tC171\tC172\tC173\tC174\tC175\tC176\tC177\tC178\tC179\tC180\tC181\tC182\tC183\tC184\tC185\tC186\tC187\tC188\tC189\tC190\tC191\tC192\tC193\tC194\tC195\tC196\tC197\tC198\tC199\tC200\tC201\tC202\tC203\tC204\tC205\tC206\tC207\tC208\tC209\tC210\tC211\tC212\tC213\tC214\tC215\tC216\tC217\tC218\tC219\tC220\tC221\tC222\tC223\tC224\tC225\tC226\tC227\tC228\tC229\tC230\tC231\tC232\tC233\tC234\tC235\tC236\tC237\tC238\tC239\tC240\tC241\tC242\tC243\tC244\tC245\tC246\tC247\tC248\tC249\tC250\tC251\tC252\tC253\tC254\tC255\tC256\tC257\tC258\tC259\tC260\tC261\tC262\tC263\tC264\tC265\tC266\tC267\tC268\tC269\tC270\tC271\tC272\tC273\tC274\tC275\tC276\tC277\tC278\tC279\tC280\tC281\tC282\tC283\tC284\tC285\tC286\tC287\tC288\tC289\tC290\tC291\tC292\tC293\tC294\tC295\tC296\tC297\tC298\tC299\tC300\tC301\tC302\tC303\tC304\tC305\tC306\tC307\tC308\tC309\tC310\tC311\tC312\tC313\tC314\tC315\tC316\tC317\tC318\tC319\tC320\tC321\tC322\tC323\tC324\tC325\tC326\tC327\tC328\tC329\tC330\tC331\tC332\tC333\tC334\tC335\tC336\tC337\tC338\tC339\tC340\tC341\tC342\tC343\tC344\tC345\tC346\tC347\tC348\tC349\tC350\tC351\tC352\tC353\tC354\tC355\tC356\tC357\tC358\tC359\tC360\tC361\tC362\tC363\tC364\tC365\tC366\tC367\tC368\tC369\tC370\tC371\tC372\tC373\tC374\tC375\tC376\tC377\tC378\tC379\tC380\tC381\tC382\tC383\tC384\tC385\tC386\tC387\tC388\tC389\tC390\tC391\tC392\tC393\tC394\tC395\tC396\tC397\tC398\tC399\tC400\tC401\tC402\tC403\tC404\tC405\tC406\tC407\tC408\tC409\tC410\tC411\tC412\tC413\tC414\tC415\tC416\tC417\tC418\tC419\tC420\tC421\tC422\tC423\tC424\tC425\tC426\tC427\tC428\tC429\tC430\tC431\tC432\tC433\tC434\tC435\tC436\tC437\tC438\tC439\tC440\tC441\tC442\tC443\tC444\tC445\tC446\tC447\tC448\tC449\tC450\tC451\tC452\tC453\tC454\tC455\tC456\tC457\tC458\tC459\tC460\tC461\tC462\tC463\tC464\tC465\tC466\tC467\tC468\tC469\tC470\tC471\tC472\tC473\tC474\tC475\tC476\tC477\tC478\tC479\tC480\tC481\tC482\tC483\tC484\tC485\tC486\tC487\tC488\tC489\tC490\tC491\tC492\tC493\tC494\tC495\tC496\tC497\tC498\tC499\tC500\tC501\tC502\tC503\tC504\tC505\tC506\tC507\tC508\tC509\tC510\tC511\tC512\tC513\tC514\tC515\tC516\tC517\tC518\tC519\tC520\tC521\tC522\tC523\tC524\tC525\tC526\tC527\tC528\tC529\tC530\tC531\tC532\tC533\tC534\tC535\tC536\tC537\tC538\tC539\tC540\tC541\tC542\tC543\tC544\tC545\tC546\tC547\tC548\tC549\tC550\tC551\tC552\tC553\tC554\tC555\tC556\tC557\tC558\tC559\tC560\tC561\tC562\tC563\tC564\tC565\tC566\tC567\tC568\tC569\tC570\tC571\n+29_qc_no_dil_milliq\t14440614.0614047\t100829162.950447\t254866018.799615\t15274982.3781313\t5224836.34188986\t5885730.25849524\t951826.455585983\t889479.276736861\t1795609403.16384\t2421762.67187108\t5163569.54055468\t238798215.712716\t354389395.659526\t796483.933541114\t823048.878299925\t23198329.5204869\t292115.435176988\t712515.418590804\t19610929.4892356\t1232587.75701825\t3596492.79850348\t1629639.47376732\t24462390.9163424\t485438.836480317\t868952050.264982\t81375.1586185473\t99599261.6309831\t959158.254779201\t536304.782185507\t4001011.6875862\t7739617.79445237\t1615156866.41566\t3949722.78923788\t2175945.26658084\t40746732.6515362\t618603.541165935\t9321812.02744594\t1806309.45076003\t946808.521216693\t1380448.93849442\t4008025.45350866\t774432771.67135\t6185010.41280613\t3977041.90828131\t807444239.555129\t117208.261097281\t4416621.75166316\t11070753.8362958\t26211662.9499907\t69183910.0525939\t60290768.6032428\t1576348.77745384\t312940893.106132\t13076274.7260471\t2432709.41029711\t225559.955293657\t143921764.917415\t533636.785572528\t10234910.8210168\t894305.68092461\t352072.205688018\t3044048.84816934\t7269277.56727447\t3913511.40312328\t307875.120452888\t371'..b'\t177793.86995454\t149897.26344337\t203127.880067918\t691194.826894931\t1542198.48834296\t1048841.61070759\t5263479.56711395\t1096551.71177588\t4086964.10704739\t62077.1321822708\t7139827.38027483\t2931560.12002706\t739338.317998611\t4047332.59618225\t141942.904558214\t702760.607908284\t167934.254744183\t1447613.91375448\t471133.015683043\t16504167.8280614\t204308.48906554\t5359251.82685376\t695043.435240178\t12003004.4150969\t342752.543408733\t22148637.6710587\t784459.021613767\t439116.604778238\t4721451.97012956\t848003.310441455\t317616.938822832\t108687.425837875\t1235361.76411996\t1077517.6842959\t38905.951617897\t116950.516550806\t1096690.7111615\t2880094.60182139\t5136943.08488264\t673547.774413137\t22392036.0386618\t2415288.09606271\t2003756.29126753\t394077.873841276\t1115603.96352714\t417778.767421155\t11819195.0286552\t76555.4245547247\t7743367.44227409\t86219.2857102191\t351314.690412384\t599995.525467539\t2460772.68362305\t533022.360392473\t694353.520762331\t1346439.22702378\t732792.803930996\t277876.306394059\t624532.078388532\t3179015.67820813\t576021.279400396\t280494.819397593\t134799.623752372\t212768.984776508\t3382421.33569654\t92898512.4311801\t13223985.2130325\t498589.729518623\t183637.56405057\t68802.2298879015\t404358.30488774\t116068.972557888\t429396.952556901\t1296701.25183242\t1521322.80636681\t29765.8618627488\t521065.668857697\t425892.743778167\t401604.676424981\t1110376.94558137\t520056.093266083\t725594.814779287\t85275.43391835\t648833.158157628\t681989.285538676\t174571.160772883\t69864.2971794516\t1203380.76736934\t274728.442550141\t490534.204548014\t168879.838000285\t201847.854173309\t438930.867349431\t5235936.5032364\t200827.152998417\t460869.461412979\t155588.44181464\t145502.897006461\t1494716.86778102\t83883.1120468015\t2192460.0568132\t128780.225719568\t4825351.00009989\t27536510.9922369\t559616.504840751\t82205.6965348961\t901809.673640509\t375667.610860315\t116639.209688359\t127566.558332909\t533034.745956742\t1451958.91597655\t2130895.51711982\t1789252.34307323\t486562.695964036\t180134.910838113\t601329.558263094\t104101.938801513\t324963.288542131\t1612702.63173759\t550651.64417898\t2766138.53520165\t377252.413645581\t123645.758494625\t387984.302285353\t839980.494379911\t166449.589738398\t62989.0720363598\t43500.3045640958\t67599.1059232596\t183767.071005481\t263671.601883412\t31282.7592109649\t143605.049243715\t374413.913927304\t333450.092078756\t958386.9421518\t2024127.8869989\t232757.82387132\t104973.936368178\t591507.310898803\t260232.622896598\t6809650.66711065\t52108.0066840428\t302097.543370192\t2669673.87128252\t6797924.97522905\t608080481.884683\t1249942.28967707\t387359.772548752\t619485.451267781\t1093158.58654422\t292582.969255941\t393260.173910113\t322829.328085645\t311466.238896017\t67980.3184126115\t235917.042528019\t79809.2691081252\t141123.511607319\t410692.406563824\t172647.485631286\t41542.5708173683\t229199.860761181\t349745.759666562\t714591.181152216\t690729.685633624\t58760.5411542359\t162951.716694776\t4710155.27664862\t86701.3290312996\t134461.799649973\t3754716.23512648\t62515.9202444047\t254624.404911054\t305155.292227914\t961022.029191935\t540567.624226532\t208547.918338895\t682683258.60297\t328018.74245691\t466936.776542758\t2410303.382939\t100134.82557748\t227294.902194971\t663499.787776114\t5146445.21144571\t46933.9752065662\t84050.309586464\t1418921.21031416\t138078.867821352\t208099.207247074\t844084.663582396\t201933.132950629\t262702.774765263\t2488702.34271486\t3068896.24914106\t166383.287052717\t3268682.53402307\t62654.4183308775\t1023499.55431711\t717153.348912889\t1004911.55505811\t152739.523887268\t32547.1285883596\t32364.3820380837\t378187.022615471\t2822699.99759349\t412526.782356598\t164117.14382635\t151475.868438157\t22355.394099169\t162139.451814641\t1274172.26222152\t213542.022736542\t1039684.18056762\t224059.120983437\t390197.420071386\t6446979.44757867\t1821543.2671682\t116615.433523564\t461336.290361989\t226841.404377312\t2313784.34863521\t77819.0589368957\t128077.152216948\t526344.103752229\t729995.760348558\t204105.86720904\t904285.338382647\t13901.6387172006\t1333143.00364644\t105427.601767016\t166788.10170103\t378425.0273745\t92266.6638853474\t80787.6483250491\n'
b
diff -r 000000000000 -r 268fcec93d9c test-data/annotated_table.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/annotated_table.tsv Tue May 21 07:44:25 2024 +0000
b
@@ -0,0 +1,36 @@
+query reference matches score
+C001 Uridine_4TMS isomer 1 81 0.7870108353155918
+C004 Asparagine_3TMS 56 0.9097767959597624
+C012 Myo-inositol_6TMS 29 0.6889601235553525
+C016 Acetylglutamine_3TMS 36 0.626807029456144
+C025 Glutamic acid_3TMS spectra 1 28 0.8777837139197799
+C025 Glutamic acid_3TMS spectra 2 26 0.9028865192715256
+C032 Citric acid_4TMS 26 0.9102768232927689
+C035 Maleamic acid_3TMS 25 0.6630039541546467
+C042 Tyrosine_3TMS 15 0.7833587796868388
+C043 Xanthine_3TMS 21 0.9343825213743766
+C044 Guanine_3TMS 19 0.9879561890993698
+C045 Fructose_5TMS isomer 1 17 0.8525338249207454
+C045 Fructose_5TMS isomer 2 17 0.8720082595139022
+C048 Glycine_3TMS 15 0.8899759223441942
+C053 Isoleucine_2TMS 17 0.9618511468752681
+C053 Leucine_2TMS 12 0.9689201964961467
+C059 Asparagine_2TMS 15 0.874229139105799
+C068 Tryptophan_3TMS 9 0.9813702571055418
+C099 Lysine_3TMS 20 0.7179326994285286
+C111 Proline_2TMS 8 0.7340774949729849
+C129 Glutamic acid_2TMS 4 0.8513864715294999
+C129 gamma-Aminobutyric acid_3TMS 7 0.7661841956333684
+C160 Orotic acid_3TMS 17 0.8126095426096038
+C162 Myo-inositol_6TMS 14 0.6725414287502448
+C177 Arginine_3TMS 16 0.7941810738472939
+C206 Alanine_2TMS 9 0.6132326627080693
+C206 Sarcosine_2TMS 5 0.7334160526716176
+C254 trans-Aconitic acid_3TMS 7 0.7845936148464933
+C257 Histidine_4TMS 15 0.7486358620781661
+C320 Uric acid_4TMS 13 0.9144373802322492
+C354 Serine_3TMS 4 0.8111915304679743
+C373 6-Aminocaproic acid_3TMS 4 0.9672953388615115
+C393 Guanine_4TMS 5 0.7315123727541482
+C482 Aspartic acid_3TMS isomer 4 0.9171115408384085
+C482 Aspartic acid_3TMS isomer 4 0.8609332820067314
b
diff -r 000000000000 -r 268fcec93d9c test-data/multi_mode_output.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/multi_mode_output.tsv Tue May 21 07:44:25 2024 +0000
b
b'@@ -0,0 +1,4 @@\n+Unnamed: 0\tUridine_4TMS isomer 1\tC002\tC003\tAsparagine_3TMS\tC005\tC006\tC007\tC008\tC009\tC010\tC011\tMyo-inositol_6TMS\tC013\tC014\tC015\tAcetylglutamine_3TMS\tC017\tC018\tC019\tC020\tC021\tC022\tC023\tC024\tGlutamic acid_3TMS spectra 1, Glutamic acid_3TMS spectra 2\tC026\tC027\tC028\tC029\tC030\tC031\tCitric acid_4TMS\tC033\tC034\tMaleamic acid_3TMS\tC036\tC037\tC038\tC039\tC040\tC041\tTyrosine_3TMS\tXanthine_3TMS\tGuanine_3TMS\tFructose_5TMS isomer 1, Fructose_5TMS isomer 2\tC046\tC047\tGlycine_3TMS\tC049\tC050\tC051\tC052\tIsoleucine_2TMS, Leucine_2TMS\tC054\tC055\tC056\tC057\tC058\tAsparagine_2TMS\tC060\tC061\tC062\tC063\tC064\tC065\tC066\tC067\tTryptophan_3TMS\tC069\tC070\tC071\tC072\tC073\tC074\tC075\tC076\tC077\tC078\tC079\tC080\tC081\tC082\tC083\tC084\tC085\tC086\tC087\tC088\tC089\tC090\tC091\tC092\tC093\tC094\tC095\tC096\tC097\tC098\tLysine_3TMS\tC100\tC101\tC102\tC103\tC104\tC105\tC106\tC107\tC108\tC109\tC110\tProline_2TMS\tC112\tC113\tC114\tC115\tC116\tC117\tC118\tC119\tC120\tC121\tC122\tC123\tC124\tC125\tC126\tC127\tC128\tGlutamic acid_2TMS, gamma-Aminobutyric acid_3TMS\tC130\tC131\tC132\tC133\tC134\tC135\tC136\tC137\tC138\tC139\tC140\tC141\tC142\tC143\tC144\tC145\tC146\tC147\tC148\tC149\tC150\tC151\tC152\tC153\tC154\tC155\tC156\tC157\tC158\tC159\tOrotic acid_3TMS\tC161\tMyo-inositol_6TMS\tC163\tC164\tC165\tC166\tC167\tC168\tC169\tC170\tC171\tC172\tC173\tC174\tC175\tC176\tArginine_3TMS\tC178\tC179\tC180\tC181\tC182\tC183\tC184\tC185\tC186\tC187\tC188\tC189\tC190\tC191\tC192\tC193\tC194\tC195\tC196\tC197\tC198\tC199\tC200\tC201\tC202\tC203\tC204\tC205\tAlanine_2TMS, Sarcosine_2TMS\tC207\tC208\tC209\tC210\tC211\tC212\tC213\tC214\tC215\tC216\tC217\tC218\tC219\tC220\tC221\tC222\tC223\tC224\tC225\tC226\tC227\tC228\tC229\tC230\tC231\tC232\tC233\tC234\tC235\tC236\tC237\tC238\tC239\tC240\tC241\tC242\tC243\tC244\tC245\tC246\tC247\tC248\tC249\tC250\tC251\tC252\tC253\ttrans-Aconitic acid_3TMS\tC255\tC256\tHistidine_4TMS\tC258\tC259\tC260\tC261\tC262\tC263\tC264\tC265\tC266\tC267\tC268\tC269\tC270\tC271\tC272\tC273\tC274\tC275\tC276\tC277\tC278\tC279\tC280\tC281\tC282\tC283\tC284\tC285\tC286\tC287\tC288\tC289\tC290\tC291\tC292\tC293\tC294\tC295\tC296\tC297\tC298\tC299\tC300\tC301\tC302\tC303\tC304\tC305\tC306\tC307\tC308\tC309\tC310\tC311\tC312\tC313\tC314\tC315\tC316\tC317\tC318\tC319\tUric acid_4TMS\tC321\tC322\tC323\tC324\tC325\tC326\tC327\tC328\tC329\tC330\tC331\tC332\tC333\tC334\tC335\tC336\tC337\tC338\tC339\tC340\tC341\tC342\tC343\tC344\tC345\tC346\tC347\tC348\tC349\tC350\tC351\tC352\tC353\tSerine_3TMS\tC355\tC356\tC357\tC358\tC359\tC360\tC361\tC362\tC363\tC364\tC365\tC366\tC367\tC368\tC369\tC370\tC371\tC372\t6-Aminocaproic acid_3TMS\tC374\tC375\tC376\tC377\tC378\tC379\tC380\tC381\tC382\tC383\tC384\tC385\tC386\tC387\tC388\tC389\tC390\tC391\tC392\tGuanine_4TMS\tC394\tC395\tC396\tC397\tC398\tC399\tC400\tC401\tC402\tC403\tC404\tC405\tC406\tC407\tC408\tC409\tC410\tC411\tC412\tC413\tC414\tC415\tC416\tC417\tC418\tC419\tC420\tC421\tC422\tC423\tC424\tC425\tC426\tC427\tC428\tC429\tC430\tC431\tC432\tC433\tC434\tC435\tC436\tC437\tC438\tC439\tC440\tC441\tC442\tC443\tC444\tC445\tC446\tC447\tC448\tC449\tC450\tC451\tC452\tC453\tC454\tC455\tC456\tC457\tC458\tC459\tC460\tC461\tC462\tC463\tC464\tC465\tC466\tC467\tC468\tC469\tC470\tC471\tC472\tC473\tC474\tC475\tC476\tC477\tC478\tC479\tC480\tC481\tAspartic acid_3TMS isomer, Aspartic acid_3TMS isomer\tC483\tC484\tC485\tC486\tC487\tC488\tC489\tC490\tC491\tC492\tC493\tC494\tC495\tC496\tC497\tC498\tC499\tC500\tC501\tC502\tC503\tC504\tC505\tC506\tC507\tC508\tC509\tC510\tC511\tC512\tC513\tC514\tC515\tC516\tC517\tC518\tC519\tC520\tC521\tC522\tC523\tC524\tC525\tC526\tC527\tC528\tC529\tC530\tC531\tC532\tC533\tC534\tC535\tC536\tC537\tC538\tC539\tC540\tC541\tC542\tC543\tC544\tC545\tC546\tC547\tC548\tC549\tC550\tC551\tC552\tC553\tC554\tC555\tC556\tC557\tC558\tC559\tC560\tC561\tC562\tC563\tC564\tC565\tC566\tC567\tC568\tC569\tC570\tC571\n+29_qc_no_dil_milliq\t14440614.0614047\t100829162.950447\t254866018.799615\t15274982.3781313\t5224836.34188986\t5885730.25849524\t951826.455585983\t889479.276736861\t1795609403.16384\t2421762.67187108\t5163569.54055468\t238798215.712716\t354389395.659526\t796483.933541114\t823048.878299925\t23198329.5204869\t292115.435176988\t712515.418590804\t19610929.4892356\t1232587.75701825\t3596492.79850348\t1629639.47376732\t24462390.9163424\t485438.836480317\t868952050.264982\t81375.1586185473\t99599261.6309831\t959158.254779201\t536304.782185507\t4001011.6875862\t7739617.79445237\t1615156866.41566\t3949722.78923788\t2175945.26658084\t40746732.6515362\t6'..b'\t177793.86995454\t149897.26344337\t203127.880067918\t691194.826894931\t1542198.48834296\t1048841.61070759\t5263479.56711395\t1096551.71177588\t4086964.10704739\t62077.1321822708\t7139827.38027483\t2931560.12002706\t739338.317998611\t4047332.59618225\t141942.904558214\t702760.607908284\t167934.254744183\t1447613.91375448\t471133.015683043\t16504167.8280614\t204308.48906554\t5359251.82685376\t695043.435240178\t12003004.4150969\t342752.543408733\t22148637.6710587\t784459.021613767\t439116.604778238\t4721451.97012956\t848003.310441455\t317616.938822832\t108687.425837875\t1235361.76411996\t1077517.6842959\t38905.951617897\t116950.516550806\t1096690.7111615\t2880094.60182139\t5136943.08488264\t673547.774413137\t22392036.0386618\t2415288.09606271\t2003756.29126753\t394077.873841276\t1115603.96352714\t417778.767421155\t11819195.0286552\t76555.4245547247\t7743367.44227409\t86219.2857102191\t351314.690412384\t599995.525467539\t2460772.68362305\t533022.360392473\t694353.520762331\t1346439.22702378\t732792.803930996\t277876.306394059\t624532.078388532\t3179015.67820813\t576021.279400396\t280494.819397593\t134799.623752372\t212768.984776508\t3382421.33569654\t92898512.4311801\t13223985.2130325\t498589.729518623\t183637.56405057\t68802.2298879015\t404358.30488774\t116068.972557888\t429396.952556901\t1296701.25183242\t1521322.80636681\t29765.8618627488\t521065.668857697\t425892.743778167\t401604.676424981\t1110376.94558137\t520056.093266083\t725594.814779287\t85275.43391835\t648833.158157628\t681989.285538676\t174571.160772883\t69864.2971794516\t1203380.76736934\t274728.442550141\t490534.204548014\t168879.838000285\t201847.854173309\t438930.867349431\t5235936.5032364\t200827.152998417\t460869.461412979\t155588.44181464\t145502.897006461\t1494716.86778102\t83883.1120468015\t2192460.0568132\t128780.225719568\t4825351.00009989\t27536510.9922369\t559616.504840751\t82205.6965348961\t901809.673640509\t375667.610860315\t116639.209688359\t127566.558332909\t533034.745956742\t1451958.91597655\t2130895.51711982\t1789252.34307323\t486562.695964036\t180134.910838113\t601329.558263094\t104101.938801513\t324963.288542131\t1612702.63173759\t550651.64417898\t2766138.53520165\t377252.413645581\t123645.758494625\t387984.302285353\t839980.494379911\t166449.589738398\t62989.0720363598\t43500.3045640958\t67599.1059232596\t183767.071005481\t263671.601883412\t31282.7592109649\t143605.049243715\t374413.913927304\t333450.092078756\t958386.9421518\t2024127.8869989\t232757.82387132\t104973.936368178\t591507.310898803\t260232.622896598\t6809650.66711065\t52108.0066840428\t302097.543370192\t2669673.87128252\t6797924.97522905\t608080481.884683\t1249942.28967707\t387359.772548752\t619485.451267781\t1093158.58654422\t292582.969255941\t393260.173910113\t322829.328085645\t311466.238896017\t67980.3184126115\t235917.042528019\t79809.2691081252\t141123.511607319\t410692.406563824\t172647.485631286\t41542.5708173683\t229199.860761181\t349745.759666562\t714591.181152216\t690729.685633624\t58760.5411542359\t162951.716694776\t4710155.27664862\t86701.3290312996\t134461.799649973\t3754716.23512648\t62515.9202444047\t254624.404911054\t305155.292227914\t961022.029191935\t540567.624226532\t208547.918338895\t682683258.60297\t328018.74245691\t466936.776542758\t2410303.382939\t100134.82557748\t227294.902194971\t663499.787776114\t5146445.21144571\t46933.9752065662\t84050.309586464\t1418921.21031416\t138078.867821352\t208099.207247074\t844084.663582396\t201933.132950629\t262702.774765263\t2488702.34271486\t3068896.24914106\t166383.287052717\t3268682.53402307\t62654.4183308775\t1023499.55431711\t717153.348912889\t1004911.55505811\t152739.523887268\t32547.1285883596\t32364.3820380837\t378187.022615471\t2822699.99759349\t412526.782356598\t164117.14382635\t151475.868438157\t22355.394099169\t162139.451814641\t1274172.26222152\t213542.022736542\t1039684.18056762\t224059.120983437\t390197.420071386\t6446979.44757867\t1821543.2671682\t116615.433523564\t461336.290361989\t226841.404377312\t2313784.34863521\t77819.0589368957\t128077.152216948\t526344.103752229\t729995.760348558\t204105.86720904\t904285.338382647\t13901.6387172006\t1333143.00364644\t105427.601767016\t166788.10170103\t378425.0273745\t92266.6638853474\t80787.6483250491\n'
b
diff -r 000000000000 -r 268fcec93d9c test-data/single_mode_output.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/single_mode_output.tsv Tue May 21 07:44:25 2024 +0000
b
b'@@ -0,0 +1,4 @@\n+Unnamed: 0\tUridine_4TMS isomer 1\tC002\tC003\tAsparagine_3TMS\tC005\tC006\tC007\tC008\tC009\tC010\tC011\tMyo-inositol_6TMS\tC013\tC014\tC015\tAcetylglutamine_3TMS\tC017\tC018\tC019\tC020\tC021\tC022\tC023\tC024\tGlutamic acid_3TMS spectra 2\tC026\tC027\tC028\tC029\tC030\tC031\tCitric acid_4TMS\tC033\tC034\tMaleamic acid_3TMS\tC036\tC037\tC038\tC039\tC040\tC041\tTyrosine_3TMS\tXanthine_3TMS\tGuanine_3TMS\tFructose_5TMS isomer 2\tC046\tC047\tGlycine_3TMS\tC049\tC050\tC051\tC052\tLeucine_2TMS\tC054\tC055\tC056\tC057\tC058\tAsparagine_2TMS\tC060\tC061\tC062\tC063\tC064\tC065\tC066\tC067\tTryptophan_3TMS\tC069\tC070\tC071\tC072\tC073\tC074\tC075\tC076\tC077\tC078\tC079\tC080\tC081\tC082\tC083\tC084\tC085\tC086\tC087\tC088\tC089\tC090\tC091\tC092\tC093\tC094\tC095\tC096\tC097\tC098\tLysine_3TMS\tC100\tC101\tC102\tC103\tC104\tC105\tC106\tC107\tC108\tC109\tC110\tProline_2TMS\tC112\tC113\tC114\tC115\tC116\tC117\tC118\tC119\tC120\tC121\tC122\tC123\tC124\tC125\tC126\tC127\tC128\tGlutamic acid_2TMS\tC130\tC131\tC132\tC133\tC134\tC135\tC136\tC137\tC138\tC139\tC140\tC141\tC142\tC143\tC144\tC145\tC146\tC147\tC148\tC149\tC150\tC151\tC152\tC153\tC154\tC155\tC156\tC157\tC158\tC159\tOrotic acid_3TMS\tC161\tMyo-inositol_6TMS\tC163\tC164\tC165\tC166\tC167\tC168\tC169\tC170\tC171\tC172\tC173\tC174\tC175\tC176\tArginine_3TMS\tC178\tC179\tC180\tC181\tC182\tC183\tC184\tC185\tC186\tC187\tC188\tC189\tC190\tC191\tC192\tC193\tC194\tC195\tC196\tC197\tC198\tC199\tC200\tC201\tC202\tC203\tC204\tC205\tSarcosine_2TMS\tC207\tC208\tC209\tC210\tC211\tC212\tC213\tC214\tC215\tC216\tC217\tC218\tC219\tC220\tC221\tC222\tC223\tC224\tC225\tC226\tC227\tC228\tC229\tC230\tC231\tC232\tC233\tC234\tC235\tC236\tC237\tC238\tC239\tC240\tC241\tC242\tC243\tC244\tC245\tC246\tC247\tC248\tC249\tC250\tC251\tC252\tC253\ttrans-Aconitic acid_3TMS\tC255\tC256\tHistidine_4TMS\tC258\tC259\tC260\tC261\tC262\tC263\tC264\tC265\tC266\tC267\tC268\tC269\tC270\tC271\tC272\tC273\tC274\tC275\tC276\tC277\tC278\tC279\tC280\tC281\tC282\tC283\tC284\tC285\tC286\tC287\tC288\tC289\tC290\tC291\tC292\tC293\tC294\tC295\tC296\tC297\tC298\tC299\tC300\tC301\tC302\tC303\tC304\tC305\tC306\tC307\tC308\tC309\tC310\tC311\tC312\tC313\tC314\tC315\tC316\tC317\tC318\tC319\tUric acid_4TMS\tC321\tC322\tC323\tC324\tC325\tC326\tC327\tC328\tC329\tC330\tC331\tC332\tC333\tC334\tC335\tC336\tC337\tC338\tC339\tC340\tC341\tC342\tC343\tC344\tC345\tC346\tC347\tC348\tC349\tC350\tC351\tC352\tC353\tSerine_3TMS\tC355\tC356\tC357\tC358\tC359\tC360\tC361\tC362\tC363\tC364\tC365\tC366\tC367\tC368\tC369\tC370\tC371\tC372\t6-Aminocaproic acid_3TMS\tC374\tC375\tC376\tC377\tC378\tC379\tC380\tC381\tC382\tC383\tC384\tC385\tC386\tC387\tC388\tC389\tC390\tC391\tC392\tGuanine_4TMS\tC394\tC395\tC396\tC397\tC398\tC399\tC400\tC401\tC402\tC403\tC404\tC405\tC406\tC407\tC408\tC409\tC410\tC411\tC412\tC413\tC414\tC415\tC416\tC417\tC418\tC419\tC420\tC421\tC422\tC423\tC424\tC425\tC426\tC427\tC428\tC429\tC430\tC431\tC432\tC433\tC434\tC435\tC436\tC437\tC438\tC439\tC440\tC441\tC442\tC443\tC444\tC445\tC446\tC447\tC448\tC449\tC450\tC451\tC452\tC453\tC454\tC455\tC456\tC457\tC458\tC459\tC460\tC461\tC462\tC463\tC464\tC465\tC466\tC467\tC468\tC469\tC470\tC471\tC472\tC473\tC474\tC475\tC476\tC477\tC478\tC479\tC480\tC481\tAspartic acid_3TMS isomer\tC483\tC484\tC485\tC486\tC487\tC488\tC489\tC490\tC491\tC492\tC493\tC494\tC495\tC496\tC497\tC498\tC499\tC500\tC501\tC502\tC503\tC504\tC505\tC506\tC507\tC508\tC509\tC510\tC511\tC512\tC513\tC514\tC515\tC516\tC517\tC518\tC519\tC520\tC521\tC522\tC523\tC524\tC525\tC526\tC527\tC528\tC529\tC530\tC531\tC532\tC533\tC534\tC535\tC536\tC537\tC538\tC539\tC540\tC541\tC542\tC543\tC544\tC545\tC546\tC547\tC548\tC549\tC550\tC551\tC552\tC553\tC554\tC555\tC556\tC557\tC558\tC559\tC560\tC561\tC562\tC563\tC564\tC565\tC566\tC567\tC568\tC569\tC570\tC571\n+29_qc_no_dil_milliq\t14440614.0614047\t100829162.950447\t254866018.799615\t15274982.3781313\t5224836.34188986\t5885730.25849524\t951826.455585983\t889479.276736861\t1795609403.16384\t2421762.67187108\t5163569.54055468\t238798215.712716\t354389395.659526\t796483.933541114\t823048.878299925\t23198329.5204869\t292115.435176988\t712515.418590804\t19610929.4892356\t1232587.75701825\t3596492.79850348\t1629639.47376732\t24462390.9163424\t485438.836480317\t868952050.264982\t81375.1586185473\t99599261.6309831\t959158.254779201\t536304.782185507\t4001011.6875862\t7739617.79445237\t1615156866.41566\t3949722.78923788\t2175945.26658084\t40746732.6515362\t618603.541165935\t9321812.02744594\t1806309.45076003\t946808.521216693\t1380448.93849442\t4008025.45350866\t774432771.67135\t6185010.41280613\t3977041.'..b'\t177793.86995454\t149897.26344337\t203127.880067918\t691194.826894931\t1542198.48834296\t1048841.61070759\t5263479.56711395\t1096551.71177588\t4086964.10704739\t62077.1321822708\t7139827.38027483\t2931560.12002706\t739338.317998611\t4047332.59618225\t141942.904558214\t702760.607908284\t167934.254744183\t1447613.91375448\t471133.015683043\t16504167.8280614\t204308.48906554\t5359251.82685376\t695043.435240178\t12003004.4150969\t342752.543408733\t22148637.6710587\t784459.021613767\t439116.604778238\t4721451.97012956\t848003.310441455\t317616.938822832\t108687.425837875\t1235361.76411996\t1077517.6842959\t38905.951617897\t116950.516550806\t1096690.7111615\t2880094.60182139\t5136943.08488264\t673547.774413137\t22392036.0386618\t2415288.09606271\t2003756.29126753\t394077.873841276\t1115603.96352714\t417778.767421155\t11819195.0286552\t76555.4245547247\t7743367.44227409\t86219.2857102191\t351314.690412384\t599995.525467539\t2460772.68362305\t533022.360392473\t694353.520762331\t1346439.22702378\t732792.803930996\t277876.306394059\t624532.078388532\t3179015.67820813\t576021.279400396\t280494.819397593\t134799.623752372\t212768.984776508\t3382421.33569654\t92898512.4311801\t13223985.2130325\t498589.729518623\t183637.56405057\t68802.2298879015\t404358.30488774\t116068.972557888\t429396.952556901\t1296701.25183242\t1521322.80636681\t29765.8618627488\t521065.668857697\t425892.743778167\t401604.676424981\t1110376.94558137\t520056.093266083\t725594.814779287\t85275.43391835\t648833.158157628\t681989.285538676\t174571.160772883\t69864.2971794516\t1203380.76736934\t274728.442550141\t490534.204548014\t168879.838000285\t201847.854173309\t438930.867349431\t5235936.5032364\t200827.152998417\t460869.461412979\t155588.44181464\t145502.897006461\t1494716.86778102\t83883.1120468015\t2192460.0568132\t128780.225719568\t4825351.00009989\t27536510.9922369\t559616.504840751\t82205.6965348961\t901809.673640509\t375667.610860315\t116639.209688359\t127566.558332909\t533034.745956742\t1451958.91597655\t2130895.51711982\t1789252.34307323\t486562.695964036\t180134.910838113\t601329.558263094\t104101.938801513\t324963.288542131\t1612702.63173759\t550651.64417898\t2766138.53520165\t377252.413645581\t123645.758494625\t387984.302285353\t839980.494379911\t166449.589738398\t62989.0720363598\t43500.3045640958\t67599.1059232596\t183767.071005481\t263671.601883412\t31282.7592109649\t143605.049243715\t374413.913927304\t333450.092078756\t958386.9421518\t2024127.8869989\t232757.82387132\t104973.936368178\t591507.310898803\t260232.622896598\t6809650.66711065\t52108.0066840428\t302097.543370192\t2669673.87128252\t6797924.97522905\t608080481.884683\t1249942.28967707\t387359.772548752\t619485.451267781\t1093158.58654422\t292582.969255941\t393260.173910113\t322829.328085645\t311466.238896017\t67980.3184126115\t235917.042528019\t79809.2691081252\t141123.511607319\t410692.406563824\t172647.485631286\t41542.5708173683\t229199.860761181\t349745.759666562\t714591.181152216\t690729.685633624\t58760.5411542359\t162951.716694776\t4710155.27664862\t86701.3290312996\t134461.799649973\t3754716.23512648\t62515.9202444047\t254624.404911054\t305155.292227914\t961022.029191935\t540567.624226532\t208547.918338895\t682683258.60297\t328018.74245691\t466936.776542758\t2410303.382939\t100134.82557748\t227294.902194971\t663499.787776114\t5146445.21144571\t46933.9752065662\t84050.309586464\t1418921.21031416\t138078.867821352\t208099.207247074\t844084.663582396\t201933.132950629\t262702.774765263\t2488702.34271486\t3068896.24914106\t166383.287052717\t3268682.53402307\t62654.4183308775\t1023499.55431711\t717153.348912889\t1004911.55505811\t152739.523887268\t32547.1285883596\t32364.3820380837\t378187.022615471\t2822699.99759349\t412526.782356598\t164117.14382635\t151475.868438157\t22355.394099169\t162139.451814641\t1274172.26222152\t213542.022736542\t1039684.18056762\t224059.120983437\t390197.420071386\t6446979.44757867\t1821543.2671682\t116615.433523564\t461336.290361989\t226841.404377312\t2313784.34863521\t77819.0589368957\t128077.152216948\t526344.103752229\t729995.760348558\t204105.86720904\t904285.338382647\t13901.6387172006\t1333143.00364644\t105427.601767016\t166788.10170103\t378425.0273745\t92266.6638853474\t80787.6483250491\n'