diff --git a/workflows/metabomics/gcms-metams/.dockstore.yml b/workflows/metabomics/gcms-metams/.dockstore.yml new file mode 100644 index 000000000..7615ccdbd --- /dev/null +++ b/workflows/metabomics/gcms-metams/.dockstore.yml @@ -0,0 +1,12 @@ +version: 1.2 +workflows: +- name: main + subclass: Galaxy + publish: true + primaryDescriptorPath: /Mass-spectrometry__GCMS-with-metaMS.ga + testParameterFiles: + - /Mass-spectrometry__GCMS-with-metaMS-tests.yml + authors: + - name: workflow4metabolomics + image: https://raw.githubusercontent.com/workflow4metabolomics/workflow4metabolomics/master/images/logo/logo_w4m-0.1-black-orange.png + url: https://workflow4metabolomics.org/ diff --git a/workflows/metabomics/gcms-metams/CHANGELOG.md b/workflows/metabomics/gcms-metams/CHANGELOG.md new file mode 100644 index 000000000..38910c77d --- /dev/null +++ b/workflows/metabomics/gcms-metams/CHANGELOG.md @@ -0,0 +1,7 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## [0.1] - 2023-11-22 + +First release diff --git a/workflows/metabomics/gcms-metams/Mass-spectrometry__GCMS-with-metaMS-tests.yml b/workflows/metabomics/gcms-metams/Mass-spectrometry__GCMS-with-metaMS-tests.yml new file mode 100644 index 000000000..d85e6aaf6 --- /dev/null +++ b/workflows/metabomics/gcms-metams/Mass-spectrometry__GCMS-with-metaMS-tests.yml @@ -0,0 +1,54 @@ +- doc: Test outline for Mass-spectrometry__GCMS-with-metaMS.ga + job: + sampleMetadata: + class: File + location: https://zenodo.org/record/3631074/files/sampleMetadata.tsv + filetype: tabular + Mass-spectrometry Dataset Collection: + class: Collection + collection_type: list + elements: + - class: File + identifier: alg11.mzData + location: https://zenodo.org/record/3631074/files/alg11.mzData + filetype: mzdata + - class: File + identifier: alg2.mzData + location: https://zenodo.org/record/3631074/files/alg2.mzData + filetype: mzdata + - class: File + identifier: alg3.mzData + location: https://zenodo.org/record/3631074/files/alg3.mzData + filetype: mzdata + - class: File + identifier: alg7.mzData + location: https://zenodo.org/record/3631074/files/alg7.mzData + filetype: mzdata + - class: File + identifier: alg8.mzData + location: https://zenodo.org/record/3631074/files/alg8.mzData + filetype: mzdata + - class: File + identifier: alg9.mzData + location: https://zenodo.org/record/3631074/files/alg9.mzData + filetype: mzdata + outputs: + metaMS.runGC dataMatrix: + path: test-data/metaMS.runGC_dataMatrix.tabular + lines_diff: 10 + Multivariate variableMetadata: + asserts: + - that: has_n_lines + n: 42 + - that: has_text + text: "Unknown 1\tUnknown\t0.0046\t19.499\t-0.17" + - that: has_text + text: "Unknown 41\tUnknown\t0.0039\t14.857\t-0.08" + Multivariate sampleMetadata: + asserts: + - that: has_n_lines + n: 7 + - that: has_text + text: "alg11\tFWS_100perNaCl\t-6.2" + - that: has_text + text: "alg8\tFWS_5percNaCL\t-0.6" diff --git a/workflows/metabomics/gcms-metams/Mass-spectrometry__GCMS-with-metaMS.ga b/workflows/metabomics/gcms-metams/Mass-spectrometry__GCMS-with-metaMS.ga new file mode 100644 index 000000000..1c2ce685c --- /dev/null +++ b/workflows/metabomics/gcms-metams/Mass-spectrometry__GCMS-with-metaMS.ga @@ -0,0 +1,469 @@ +{ + "a_galaxy_workflow": "true", + "annotation": "This workflow is composed with the XCMS tool R package (Smith, C.A. 2006) able to extract and the metaMS R package (Wehrens, R 2014) for the field of untargeted metabolomics. \n\nhttps://training.galaxyproject.org/training-material/topics/metabolomics/tutorials/gcms/tutorial.html", + "creator": [ + { + "class": "Organization", + "image": "https://raw.githubusercontent.com/workflow4metabolomics/workflow4metabolomics/master/images/logo/logo_w4m-0.1-black-orange.png", + "name": "workflow4metabolomics", + "url": "https://workflow4metabolomics.org/" + } + ], + "format-version": "0.1", + "release": "0.1", + "license": "MIT", + "name": "Mass spectrometry: GCMS with metaMS", + "steps": { + "0": { + "annotation": "", + "content_id": null, + "errors": null, + "id": 0, + "input_connections": {}, + "inputs": [ + { + "description": "", + "name": "Mass-spectrometry Dataset Collection" + } + ], + "label": "Mass-spectrometry Dataset Collection", + "name": "Input dataset collection", + "outputs": [], + "position": { + "left": 15, + "top": 101 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": null, \"collection_type\": \"list\"}", + "tool_version": null, + "type": "data_collection_input", + "uuid": "27aea272-13ef-4ab2-81ef-329830985fe0", + "when": null, + "workflow_outputs": [] + }, + "1": { + "annotation": "", + "content_id": null, + "errors": null, + "id": 1, + "input_connections": {}, + "inputs": [ + { + "description": "", + "name": "sampleMetadata" + } + ], + "label": "sampleMetadata", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 0, + "top": 314 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "a3d47eb1-e815-4219-86c0-23ce34b662d7", + "when": null, + "workflow_outputs": [] + }, + "2": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/lecorguille/msnbase_readmsdata/msnbase_readmsdata/2.16.1+galaxy2", + "errors": null, + "id": 2, + "input_connections": { + "input": { + "id": 0, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool MSnbase readMSData", + "name": "input" + } + ], + "label": null, + "name": "MSnbase readMSData", + "outputs": [ + { + "name": "xsetRData", + "type": "rdata.msnbase.raw" + } + ], + "position": { + "left": 295, + "top": 80 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/lecorguille/msnbase_readmsdata/msnbase_readmsdata/2.16.1+galaxy2", + "tool_shed_repository": { + "changeset_revision": "12def6edac2f", + "name": "msnbase_readmsdata", + "owner": "lecorguille", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"input\": {\"__class__\": \"RuntimeValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.16.1+galaxy2", + "type": "tool", + "uuid": "60192f76-c4a8-4505-a24e-e730fe87694e", + "when": null, + "workflow_outputs": [] + }, + "3": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/lecorguille/xcms_xcmsset/abims_xcms_xcmsSet/3.12.0+galaxy0", + "errors": null, + "id": 3, + "input_connections": { + "image": { + "id": 2, + "output_name": "xsetRData" + } + }, + "inputs": [], + "label": null, + "name": "xcms findChromPeaks (xcmsSet)", + "outputs": [ + { + "name": "xsetRData", + "type": "rdata.xcms.findchrompeaks" + }, + { + "name": "log", + "type": "txt" + } + ], + "position": { + "left": 575, + "top": 311 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/lecorguille/xcms_xcmsset/abims_xcms_xcmsSet/3.12.0+galaxy0", + "tool_shed_repository": { + "changeset_revision": "b02d1992a43a", + "name": "xcms_xcmsset", + "owner": "lecorguille", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"file_load_section\": {\"file_load_conditional\": {\"file_load_select\": \"no\", \"__current_case__\": 0}}, \"filterSection\": {\"filterAcquisitionNum\": \"\", \"filterRt\": \"\", \"filterMz\": \"\"}, \"image\": {\"__class__\": \"ConnectedValue\"}, \"methods\": {\"method\": \"MatchedFilter\", \"__current_case__\": 1, \"fwhm\": \"5\", \"binSize\": \"0.5\", \"MatchedFilterAdv\": {\"impute_cond\": {\"impute\": \"none\", \"__current_case__\": 0}, \"sigma\": null, \"max\": \"500\", \"snthresh\": \"2\", \"steps\": \"2\", \"mzdiff\": \"0.5\", \"peaklist\": false}}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "3.12.0+galaxy0", + "type": "tool", + "uuid": "117244c7-a9b0-4143-bfba-48c6cca56ee5", + "when": null, + "workflow_outputs": [] + }, + "4": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/lecorguille/xcms_plot_chromatogram/xcms_plot_chromatogram/3.12.0+galaxy0", + "errors": null, + "id": 4, + "input_connections": { + "images": { + "id": 3, + "output_name": "xsetRData" + }, + "sampleMetadata": { + "id": 1, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "xcms plot chromatogram", + "outputs": [ + { + "name": "ticsPdf", + "type": "pdf" + }, + { + "name": "bpisPdf", + "type": "pdf" + } + ], + "position": { + "left": 915, + "top": 0 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/lecorguille/xcms_plot_chromatogram/xcms_plot_chromatogram/3.12.0+galaxy0", + "tool_shed_repository": { + "changeset_revision": "024974037c4e", + "name": "xcms_plot_chromatogram", + "owner": "lecorguille", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"rdata.xcms.findchrompeaks\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"file_load_section\": {\"file_load_conditional\": {\"file_load_select\": \"no\", \"__current_case__\": 0}}, \"images\": {\"__class__\": \"ConnectedValue\"}, \"sampleMetadata\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "3.12.0+galaxy0", + "type": "tool", + "uuid": "a5e5e89e-4521-49b4-9554-1004cefb3842", + "when": null, + "workflow_outputs": [ + { + "label": null, + "output_name": "bpisPdf", + "uuid": "98f84d78-fb87-4ba8-9781-d4935013f052" + }, + { + "label": null, + "output_name": "ticsPdf", + "uuid": "3a9785ad-afad-410f-8f17-6f7b9644f37b" + } + ] + }, + "5": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/lecorguille/xcms_merge/xcms_merge/3.12.0+galaxy0", + "errors": null, + "id": 5, + "input_connections": { + "images": { + "id": 3, + "output_name": "xsetRData" + }, + "sampleMetadata": { + "id": 1, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "xcms findChromPeaks Merger", + "outputs": [ + { + "name": "xsetRData", + "type": "rdata.xcms.findchrompeaks" + } + ], + "position": { + "left": 861, + "top": 521 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/lecorguille/xcms_merge/xcms_merge/3.12.0+galaxy0", + "tool_shed_repository": { + "changeset_revision": "5bd125a3f3b0", + "name": "xcms_merge", + "owner": "lecorguille", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"rdata.xcms.findchrompeaks\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"file_load_section\": {\"file_load_conditional\": {\"file_load_select\": \"no\", \"__current_case__\": 0}}, \"images\": {\"__class__\": \"ConnectedValue\"}, \"sampleMetadata\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "3.12.0+galaxy0", + "type": "tool", + "uuid": "cb2b0664-f992-4e0b-8a40-58c83a0e47f9", + "when": null, + "workflow_outputs": [] + }, + "6": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/yguitton/metams_rungc/metams_runGC/3.0.0+metaMS1.24.0-galaxy0", + "errors": null, + "id": 6, + "input_connections": { + "input": { + "id": 5, + "output_name": "xsetRData" + } + }, + "inputs": [], + "label": null, + "name": "metaMS.runGC", + "outputs": [ + { + "name": "peaktable", + "type": "tabular" + }, + { + "name": "sampleMetadata", + "type": "tabular" + }, + { + "name": "variableMetadata", + "type": "tabular" + }, + { + "name": "dataMatrix", + "type": "tabular" + }, + { + "name": "peakspectra", + "type": "txt" + }, + { + "name": "rungcRData", + "type": "rdata" + } + ], + "position": { + "left": 1140, + "top": 202 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/yguitton/metams_rungc/metams_runGC/3.0.0+metaMS1.24.0-galaxy0", + "tool_shed_repository": { + "changeset_revision": "93508ea69eb5", + "name": "metams_rungc", + "owner": "yguitton", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"options_rifilter\": {\"option\": \"false\", \"__current_case__\": 1}, \"settings\": {\"setting\": \"usersettings\", \"__current_case__\": 1, \"options_rtrange\": {\"option\": \"hide\", \"__current_case__\": 1}, \"rtdiff\": \"0.05\", \"minfeat\": \"5\", \"simthreshold\": \"0.7\", \"minclassfraction\": \"0.5\", \"minclasssize\": \"3\", \"options_db\": {\"option\": \"hide\", \"__current_case__\": 1}, \"options_ri\": {\"option\": \"hide\", \"__current_case__\": 1}}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "3.0.0+metaMS1.24.0-galaxy0", + "type": "tool", + "uuid": "4f636be8-c31f-474e-8c47-8fd644710863", + "when": null, + "workflow_outputs": [ + { + "label": "metaMS.runGC dataMatrix", + "output_name": "dataMatrix", + "uuid": "2ad0157b-8587-47ba-8481-3e8b6c2fe7f2" + }, + { + "label": null, + "output_name": "peaktable", + "uuid": "2f467902-d943-431b-89d5-731911e06f2d" + } + ] + }, + "7": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/ethevenot/checkformat/checkFormat/3.0.0", + "errors": null, + "id": 7, + "input_connections": { + "dataMatrix_in": { + "id": 6, + "output_name": "dataMatrix" + }, + "sampleMetadata_in": { + "id": 1, + "output_name": "output" + }, + "variableMetadata_in": { + "id": 6, + "output_name": "variableMetadata" + } + }, + "inputs": [], + "label": null, + "name": "Check Format", + "outputs": [ + { + "name": "dataMatrix_out", + "type": "tabular" + }, + { + "name": "sampleMetadata_out", + "type": "tabular" + }, + { + "name": "variableMetadata_out", + "type": "tabular" + }, + { + "name": "information", + "type": "txt" + } + ], + "position": { + "left": 1496, + "top": 281 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/ethevenot/checkformat/checkFormat/3.0.0", + "tool_shed_repository": { + "changeset_revision": "e7c5811ec12f", + "name": "checkformat", + "owner": "ethevenot", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"dataMatrix_in\": {\"__class__\": \"ConnectedValue\"}, \"makeNameL\": \"FALSE\", \"sampleMetadata_in\": {\"__class__\": \"ConnectedValue\"}, \"variableMetadata_in\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "3.0.0", + "type": "tool", + "uuid": "a3701788-b7fd-4eb9-adf1-d3834a935567", + "when": null, + "workflow_outputs": [] + }, + "8": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/ethevenot/multivariate/Multivariate/2.3.10", + "errors": null, + "id": 8, + "input_connections": { + "dataMatrix_in": { + "id": 7, + "output_name": "dataMatrix_out" + }, + "sampleMetadata_in": { + "id": 7, + "output_name": "sampleMetadata_out" + }, + "variableMetadata_in": { + "id": 7, + "output_name": "variableMetadata_out" + } + }, + "inputs": [], + "label": null, + "name": "Multivariate", + "outputs": [ + { + "name": "sampleMetadata_out", + "type": "tabular" + }, + { + "name": "variableMetadata_out", + "type": "tabular" + }, + { + "name": "figure", + "type": "pdf" + }, + { + "name": "information", + "type": "txt" + } + ], + "position": { + "left": 1827, + "top": 293 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/ethevenot/multivariate/Multivariate/2.3.10", + "tool_shed_repository": { + "changeset_revision": "5526f8258e8a", + "name": "multivariate", + "owner": "ethevenot", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"advCpt\": {\"opcC\": \"full\", \"__current_case__\": 1, \"scaleC\": \"standard\", \"permI\": \"20\", \"log10L\": \"FALSE\", \"algoC\": \"default\", \"crossvalI\": \"3\"}, \"advGph\": {\"opgC\": \"full\", \"__current_case__\": 1, \"typeC\": \"summary\", \"parMahalC\": \"NA\", \"parAsColC\": \"class\", \"parLabVc\": \"none\", \"parPc1I\": \"1\", \"parPc2I\": \"2\", \"parCexN\": \"0.8\"}, \"dataMatrix_in\": {\"__class__\": \"ConnectedValue\"}, \"orthoI\": \"0\", \"predI\": \"NA\", \"respC\": \"none\", \"sampleMetadata_in\": {\"__class__\": \"ConnectedValue\"}, \"save_rdata\": false, \"testL\": \"FALSE\", \"variableMetadata_in\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.3.10", + "type": "tool", + "uuid": "52e89249-a543-441c-8da6-60b7e40178b2", + "when": null, + "workflow_outputs": [ + { + "label": "Multivariate variableMetadata", + "output_name": "variableMetadata_out", + "uuid": "376507dd-94ff-4bf1-8481-5fe5ed61918e" + }, + { + "label": "Multivariate sampleMetadata", + "output_name": "sampleMetadata_out", + "uuid": "d574dc78-9310-44e9-a6c3-b02b104e598c" + } + ] + } + }, + "tags": [ + "metabolomics", + "MS", + "workflow4metabolomics", + "GC-MS", + "GTN", + "metaMS" + ], + "uuid": "a2b0d4f7-164c-40d3-ac34-f248db18bbef", + "version": 2 +} \ No newline at end of file diff --git a/workflows/metabomics/gcms-metams/README.md b/workflows/metabomics/gcms-metams/README.md new file mode 100644 index 000000000..4376aa041 --- /dev/null +++ b/workflows/metabomics/gcms-metams/README.md @@ -0,0 +1,36 @@ +# Mass spectrometry: GCMS with metaMS + +This workflow uses the XCMS tool R package [(Smith, C.A. 2006)](https://bioconductor.org/packages/release/bioc/html/xcms.html) to extract, filter, align and fill gaps, and uses the CAMERA R package [(Kuhl, C 2012)](https://bioconductor.org/packages/release/bioc/html/CAMERA.html) to annotate isotopes, adducts and fragments. + +This workflow is composed with the XCMS tool R package [(Smith, C.A. 2006)](https://bioconductor.org/packages/release/bioc/html/xcms.html) to extract and the metaMS R package [(Wehrens, R 2014)](https://bioconductor.org/packages/release/bioc/html/metaMS.html) for the field of untargeted metabolomics. + +🎓 For more information see the [Galaxy Training Network tutorial: Mass spectrometry: GC-MS analysis with metaMS package](https://training.galaxyproject.org/training-material/topics/metabolomics/tutorials/gcms/tutorial.html) + +## Inputs +### sampleMetadata +The sampleMetadata tabular file corresponds to a table containing information about your samples + +A sample metadata file contains various information for each of your raw files: +- Classes which will be used during the preprocessing steps +- Analytical batches which will be useful for a batch correction step, along with sample types (pool/sample) and injection order +- Different experimental conditions which can be used for statistics +- Any information about samples that you want to keep, in a column format + +The content of your sample metadata file has to be filled by you, since it is not contained in your raw data. Note that you can either: +- Upload an existing metadata file +- Use a template to create one (because it can be painful to get the sample list without misspelling or omission) + - Generate a template with the `xcms get a sampleMetadata file` tool available in Galaxy + - Fill it using your favorite table editor (Excel, LibreOffice) + - Upload it within Galaxy + +**Formats:** tab-separated values as tsv, tab, txt, ... + +### Mass-spectrometry Dataset Collection +Mass-spectrometry data files gathered in a Galaxy Dataser Collection + +**Formats:** open format as mzXML, mzMl, mzData and netCDF + +## Main steps +1. MSnbase readMSData: read the mzXML and prepare for xcms +2. XCMS findChromPeaks: peak picking +3. metaMS.runGC: definition of pseudo-spectra diff --git a/workflows/metabomics/gcms-metams/test-data/metaMS.runGC_dataMatrix.tabular b/workflows/metabomics/gcms-metams/test-data/metaMS.runGC_dataMatrix.tabular new file mode 100644 index 000000000..1e5a6bf1b --- /dev/null +++ b/workflows/metabomics/gcms-metams/test-data/metaMS.runGC_dataMatrix.tabular @@ -0,0 +1,42 @@ +Name alg11 alg2 alg3 alg7 alg8 alg9 +Unknown 1 171208192 19403078 51689436 196528995 111241302 180946294 +Unknown 2 85088688 1386827 4976677 10589259 8917809 11005200 +Unknown 3 75099028 5873408 16302374 56198912 40418507 47836465 +Unknown 4 73997431 2895358 8986693 23638072 18739515 64542302 +Unknown 5 49891456 0 0 57808911 34317665 36298101 +Unknown 6 46647944 0 0 64737554 47489338 44537215 +Unknown 7 39902198 860385 4363914 4717721 1450738 48186709 +Unknown 8 28189000 0 0 11992763 20790174 19217984 +Unknown 9 25076752 0 0 9137481 19261173 18374954 +Unknown 10 21548640 147001 68652 0 7588721 33772365 +Unknown 11 19375952 0 0 6892322 14909830 13761534 +Unknown 12 14178558 0 0 641511 2206833 8574065 +Unknown 13 13866886 454935 2093751 2134194 0 5900383 +Unknown 14 11467026 28030267 55915933 0 0 5658858 +Unknown 15 9142884 452747 1213592 5440450 11763699 9759910 +Unknown 16 7689193 353781 855345 0 1759539 5866687 +Unknown 17 6263489 0 0 13625540 8486545 3597172 +Unknown 18 5826631 0 0 0 810446 2272925 +Unknown 19 4757424 0 0 3555129 5885047 3042068 +Unknown 20 4531453 0 0 1969706 547480 6037403 +Unknown 21 3458279 147325 459152 1113658 1235064 3151582 +Unknown 22 3257217 573894 2204313 12231634 9409050 3489301 +Unknown 23 2804272 0 0 6213130 1749255 5216164 +Unknown 24 2599444 0 0 3363988 1510248 1862616 +Unknown 25 2197001 0 0 2973548 2519169 2095249 +Unknown 26 1957660 0 0 1872245 2052373 2018283 +Unknown 27 1596555 0 0 1481361 0 2750137 +Unknown 28 1467117 0 0 1810878 1079164 867219 +Unknown 29 1093693 0 0 329435 417404 768388 +Unknown 30 1081990 0 0 333776 754995 594591 +Unknown 31 912243 0 0 537871 471554 956720 +Unknown 32 2569379 0 0 2947028 3457418 0 +Unknown 33 669269 0 0 230182 477082 406381 +Unknown 34 509995 0 0 1345463 1436544 0 +Unknown 35 413495 0 0 225550 0 417419 +Unknown 36 279749 38785 107787 65314 0 276001 +Unknown 37 195916 0 0 140391 173339 193688 +Unknown 38 126812 0 0 58744 0 120821 +Unknown 39 88527 0 0 0 71387 48406 +Unknown 40 0 101114 250239 456049 488211 0 +Unknown 41 0 0 0 197303 94946 549170