Repository 'infercnv'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/infercnv

Changeset 1:ddbace8f3277 (2024-08-27)
Previous changeset 0:be7c0c692879 (2024-07-23)
Commit message:
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/infercnv commit 6770266e3437edcb569d9361aadd5ed02caf3662
modified:
infercnv.xml
macros.xml
added:
test-data/barcodes.tsv
test-data/genes.tsv
test-data/matrix.mtx
b
diff -r be7c0c692879 -r ddbace8f3277 infercnv.xml
--- a/infercnv.xml Tue Jul 23 15:43:10 2024 +0000
+++ b/infercnv.xml Tue Aug 27 13:17:01 2024 +0000
b
b'@@ -9,6 +9,12 @@\n             ## extract gene order from gtf file\n             python \'$__tool_directory__/gtf_to_position_file.py\' --attribute_name $attribute \'$gtf_file\' \'gene_order.tabular\' &&\n         #end if\n+        #if str($input_mat.format) == "mtx":\n+            mkdir matrix_10x &&\n+            ln -s \'$input_mat.mtx\' matrix_10x/matrix.mtx &&\n+            ln -s \'$input_mat.mtx_genes\' matrix_10x/genes.tsv &&\n+            ln -s \'$input_mat.mtx_barcodes\' matrix_10x/barcodes.tsv &&\n+        #end if\n         Rscript \'$infercnv_script\'\n     ]]></command>\n     <configfiles>\n@@ -19,9 +25,16 @@\n             # load library\n             library(\'infercnv\')\n \n+            #if str($input_mat.format) == "mtx":\n+            library(Seurat)\n+            mtx = Read10X("matrix_10x/")\n+            #else:\n+            mtx = \'$input_mat.raw_mtx\'\n+            #end if\n+\n             # create the infercnv object\n             infercnv_obj = CreateInfercnvObject(\n-                                                raw_counts_matrix=\'$raw_mtx\', # the matrix of genes (rows) vs. cells (columns) containing the raw counts\n+                                                raw_counts_matrix=mtx, # the matrix of genes (rows) vs. cells (columns) containing the raw counts\n                                                 #if $annotation.gene_annotation == "gtf":\n                                                     gene_order_file=\'gene_order.tabular\', # tabular file containing the positions of each gene along each chromosome in the genome.\n                                                 #end if\n@@ -44,6 +57,11 @@\n                                                 chr_exclude = c($chr_exclude) # chromosomes to exclude from the analysis\n                                                 )\n \n+            num_threads = as.numeric(Sys.getenv("GALAXY_SLOTS"))\n+            if (is.na(num_threads) || nchar(num_threads) == 0) {\n+                num_threads = 1\n+            }\n+            \n             # perform infercnv operations to reveal cnv signal\n             infercnv_obj = infercnv::run(\n                                 infercnv_obj,\n@@ -53,6 +71,9 @@\n                                 num_ref_groups = NULL, # keep this as default\n                                 ref_subtract_use_mean_bounds = TRUE, # keep this as default\n \n+                                # Control number of threads for multiprocessesor use\n+                                num_threads = num_threads,\n+\n                                 ## Smoothing params\n                                 window_length = $window_length,\n                                 smooth_method = "$smooth_method",\n@@ -169,7 +190,20 @@\n         </configfile>\n     </configfiles>\n     <inputs>\n-        <param name="raw_mtx" type="data" format="tabular" label="Raw counts matrix" help="The matrix of genes (rows) vs. cells (columns) containing the raw counts" />\n+        <conditional name="input_mat">\n+            <param name="format" type="select" label="Matrix format">\n+                <option value="tsv">Tabular (non-sparse matrix)</option>\n+                <option value="mtx" selected="true">10x sparse matrix</option>\n+            </param>\n+            <when value="tsv">\n+                <param name="raw_mtx" type="data" format="tabular" label="Raw counts matrix" help="The matrix of genes (rows) vs. cells (columns) containing the raw counts" />\n+            </when>\n+            <when value="mtx">\n+                <param name="mtx" type="data" format="mtx,tabular,txt" label="Raw counts matrix (matrix market)" help="The matrix of genes (rows) vs. cells (columns) containing the raw counts" />\n+                <param name="mtx_genes" type="data" format="tabular,txt" label="Genes file" help="The genes file for matrix market matrix, a two column symbol - symbol or gene_id - symbol tab separated file" />\n+                <param name="mtx_barcodes" type="data" format="tabular,txt" label="Barcodes file" help="The barcodes file for matrix mar'..b'm Color&quot; &quot;Annotation Group&quot; &quot;Annotation Color&quot;"/>\n+                        <has_text text="tumor_grp_1_cell_5"/>\n+                        <has_text text="#8DD3C7"/>\n+                    </assert_contents>\n+                </element>\n+                <element name="infercnv_subclusters.heatmap_thresholds" file="output/test1_infercnv_subclusters.heatmap_thresholds.txt" ftype="tabular">\n+                    <assert_contents>\n+                        <has_text_matching expression="0.792686678669785"/>\n+                        <has_text_matching expression="0.919329314347129"/>\n+                        <has_text_matching expression="1.29925722137916"/>\n+                    </assert_contents>\n+                </element>\n+                <element name="infercnv_subclusters.observation_groupings" file="output/test1_infercnv_subclusters.observation_groupings.txt" ftype="tabular">\n+                    <assert_contents>\n+                        <has_text_matching expression="tumor_grp_1_cell_7"/>\n+                        <has_text_matching expression="#8DD3C7"/>\n+                    </assert_contents>\n+                </element>\n+            </output_collection>\n+            <output_collection name="infercnv_plots" type="list">\n+                <element name="infercnv" file="output/test1_infercnv.png" ftype="png" compare="sim_size"/>\n+                <element name="infercnv_subclusters" file="output/test1_infercnv_subclusters.png" ftype="png" compare="sim_size"/>\n+            </output_collection>\n+        </test>\n+        <test expect_num_outputs="2">\n+            <conditional name="input_mat">\n+                <param name="format" value="tsv"/>\n+                <param name="raw_mtx" value="oligodendroglioma_expression_downsampled.counts.matrix.gz"/>\n+            </conditional>\n             <conditional name="annotation">\n                 <param name="gene_annotation" value="local"/>\n                 <param name="gene_order" value="gencode_downsampled.EXAMPLE_ONLY_DONT_REUSE.txt"/>\n@@ -397,7 +489,10 @@\n             </output_collection>\n         </test>\n         <test expect_num_outputs="2">\n-            <param name="raw_mtx" value="oligodendroglioma_expression_downsampled.counts.matrix.gz"/>\n+            <conditional name="input_mat">\n+                <param name="format" value="tsv"/>\n+                <param name="raw_mtx" value="oligodendroglioma_expression_downsampled.counts.matrix.gz"/>\n+            </conditional>\n             <conditional name="annotation">\n                 <param name="gene_annotation" value="local"/>\n                 <param name="gene_order" value="gencode_downsampled.EXAMPLE_ONLY_DONT_REUSE.txt"/>\n@@ -445,7 +540,10 @@\n             </output_collection>\n         </test>\n         <test expect_num_outputs="3">\n-            <param name="raw_mtx" value="oligodendroglioma_expression_downsampled.counts.matrix.gz"/>\n+            <conditional name="input_mat">\n+                <param name="format" value="tsv"/>\n+                <param name="raw_mtx" value="oligodendroglioma_expression_downsampled.counts.matrix.gz"/>\n+            </conditional>\n             <conditional name="annotation">\n                 <param name="gene_annotation" value="gtf"/>\n                 <param name="gtf_file" value="test.gtf.gz"/>\n@@ -505,7 +603,7 @@\n ...         ...             ...             ...             ...             ...             ...   \n ========    =============   =============   =============   =============   =============   ================\n \n-The matrix can be provided as a tabular file.  (sparse matrices are also supported)\n+The matrix can be provided as a tabular file, or ideally, as a 10x matrix market (sparse) format, as what the Seurat Read10x method expects (matrix.mtx, genes.tsv, barcodes.tsv).\n \n \n **Sample annotation file**\n@@ -605,4 +703,4 @@\n .. _TrinityCTAT: https://github.com/NCIP/Trinity_CTAT/wiki\n     </help>\n     <expand macro="citations" />\n-</tool>\n\\ No newline at end of file\n+</tool>\n'
b
diff -r be7c0c692879 -r ddbace8f3277 macros.xml
--- a/macros.xml Tue Jul 23 15:43:10 2024 +0000
+++ b/macros.xml Tue Aug 27 13:17:01 2024 +0000
b
@@ -1,7 +1,7 @@
 <macros>
     <token name="@TOOL_VERSION@">1.20.0</token>
-    <token name="@VERSION_SUFFIX@">0</token>
-    <token name="@PROFILE@">24.1</token>
+    <token name="@VERSION_SUFFIX@">1</token>
+    <token name="@PROFILE@">21.09</token>
     <xml name="requirements">
         <requirements>
             <requirement type="package" version="@TOOL_VERSION@">bioconductor-infercnv</requirement>
b
diff -r be7c0c692879 -r ddbace8f3277 test-data/barcodes.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/barcodes.tsv Tue Aug 27 13:17:01 2024 +0000
b
@@ -0,0 +1,20 @@
+normal_9
+tumor_grp_1_cell_8
+tumor_grp_1_cell_3
+normal_7
+normal_5
+normal_10
+normal_4
+normal_2
+tumor_grp_1_cell_10
+normal_8
+normal_3
+tumor_grp_1_cell_6
+tumor_grp_1_cell_4
+tumor_grp_1_cell_7
+normal_1
+tumor_grp_1_cell_5
+tumor_grp_1_cell_1
+tumor_grp_1_cell_9
+normal_6
+tumor_grp_1_cell_2
b
diff -r be7c0c692879 -r ddbace8f3277 test-data/genes.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/genes.tsv Tue Aug 27 13:17:01 2024 +0000
b
b'@@ -0,0 +1,8252 @@\n+KIF1B\tKIF1B\n+PGD\tPGD\n+DFFA\tDFFA\n+CASZ1\tCASZ1\n+TARDBP\tTARDBP\n+SRM\tSRM\n+EXOSC10\tEXOSC10\n+MTOR\tMTOR\n+UBIAD1\tUBIAD1\n+FBXO44\tFBXO44\n+FBXO6\tFBXO6\n+MAD2L2\tMAD2L2\n+AGTRAP\tAGTRAP\n+MTHFR\tMTHFR\n+CLCN6\tCLCN6\n+KIAA2013\tKIAA2013\n+PLOD1\tPLOD1\n+MFN2\tMFN2\n+MIIP\tMIIP\n+TNFRSF8\tTNFRSF8\n+TNFRSF1B\tTNFRSF1B\n+VPS13D\tVPS13D\n+DHRS3\tDHRS3\n+PDPN\tPDPN\n+PRDM2\tPRDM2\n+TMEM51\tTMEM51\n+FHAD1\tFHAD1\n+EFHD2\tEFHD2\n+CASP9\tCASP9\n+DNAJC16\tDNAJC16\n+DDI2\tDDI2\n+RSC1A1\tRSC1A1\n+PLEKHM2\tPLEKHM2\n+SLC25A34\tSLC25A34\n+FBLIM1\tFBLIM1\n+SPEN\tSPEN\n+ZBTB17\tZBTB17\n+EPHA2\tEPHA2\n+ARHGEF19\tARHGEF19\n+FBXO42\tFBXO42\n+SZRD1\tSZRD1\n+NECAP2\tNECAP2\n+CROCCP3\tCROCCP3\n+NBPF1\tNBPF1\n+CROCCP2\tCROCCP2\n+CROCC\tCROCC\n+ATP13A2\tATP13A2\n+SDHB\tSDHB\n+PADI2\tPADI2\n+PADI4\tPADI4\n+RCC2\tRCC2\n+ARHGEF10L\tARHGEF10L\n+IGSF21\tIGSF21\n+ALDH4A1\tALDH4A1\n+IFFO2\tIFFO2\n+UBR4\tUBR4\n+EMC1\tEMC1\n+MRTO4\tMRTO4\n+AKR7A2\tAKR7A2\n+PQLC2\tPQLC2\n+CAPZB\tCAPZB\n+MINOS1\tMINOS1\n+TMCO4\tTMCO4\n+OTUD3\tOTUD3\n+UBXN10\tUBXN10\n+MUL1\tMUL1\n+CDA\tCDA\n+PINK1\tPINK1\n+DDOST\tDDOST\n+HP1BP3\tHP1BP3\n+EIF4G3\tEIF4G3\n+ECE1\tECE1\n+NBPF3\tNBPF3\n+ALPL\tALPL\n+USP48\tUSP48\n+HSPG2\tHSPG2\n+LINC00339\tLINC00339\n+CDC42\tCDC42\n+ZBTB40\tZBTB40\n+C1QA\tC1QA\n+C1QC\tC1QC\n+C1QB\tC1QB\n+EPHB2\tEPHB2\n+KDM1A\tKDM1A\n+LUZP1\tLUZP1\n+HNRNPR\tHNRNPR\n+ZNF436\tZNF436\n+ID3\tID3\n+RPL11\tRPL11\n+TCEB3\tTCEB3\n+PITHD1\tPITHD1\n+LYPLA2\tLYPLA2\n+GALE\tGALE\n+HMGCL\tHMGCL\n+FUCA1\tFUCA1\n+PNRC2\tPNRC2\n+SRSF10\tSRSF10\n+IFNLR1\tIFNLR1\n+NIPAL3\tNIPAL3\n+RCAN3\tRCAN3\n+SRRM1\tSRRM1\n+CLIC4\tCLIC4\n+RUNX3\tRUNX3\n+SYF2\tSYF2\n+C1orf63\tC1orf63\n+TMEM50A\tTMEM50A\n+TMEM57\tTMEM57\n+LDLRAP1\tLDLRAP1\n+MAN1C1\tMAN1C1\n+SEPN1\tSEPN1\n+MTFR1L\tMTFR1L\n+PAQR7\tPAQR7\n+STMN1\tSTMN1\n+PAFAH2\tPAFAH2\n+PDIK1L\tPDIK1L\n+ZNF593\tZNF593\n+CEP85\tCEP85\n+SH3BGRL3\tSH3BGRL3\n+UBXN11\tUBXN11\n+CD52\tCD52\n+ZNF683\tZNF683\n+DHDDS\tDHDDS\n+HMGN2\tHMGN2\n+RPS6KA1\tRPS6KA1\n+ARID1A\tARID1A\n+PIGV\tPIGV\n+ZDHHC18\tZDHHC18\n+GPN2\tGPN2\n+GPATCH3\tGPATCH3\n+NUDC\tNUDC\n+SLC9A1\tSLC9A1\n+WDTC1\tWDTC1\n+TMEM222\tTMEM222\n+SYTL1\tSYTL1\n+MAP3K6\tMAP3K6\n+WASF2\tWASF2\n+AHDC1\tAHDC1\n+FGR\tFGR\n+IFI6\tIFI6\n+FAM76A\tFAM76A\n+STX12\tSTX12\n+PPP1R8\tPPP1R8\n+THEMIS2\tTHEMIS2\n+RPA2\tRPA2\n+XKR8\tXKR8\n+EYA3\tEYA3\n+PTAFR\tPTAFR\n+DNAJC8\tDNAJC8\n+ATPIF1\tATPIF1\n+SESN2\tSESN2\n+MED18\tMED18\n+PHACTR4\tPHACTR4\n+RCC1\tRCC1\n+SNHG3\tSNHG3\n+TRNAU1AP\tTRNAU1AP\n+SNHG12\tSNHG12\n+TAF12\tTAF12\n+RAB42\tRAB42\n+GMEB1\tGMEB1\n+YTHDF2\tYTHDF2\n+EPB41\tEPB41\n+SRSF4\tSRSF4\n+MECR\tMECR\n+LAPTM5\tLAPTM5\n+SDC3\tSDC3\n+PUM1\tPUM1\n+SNRNP40\tSNRNP40\n+ZCCHC17\tZCCHC17\n+FABP3\tFABP3\n+TINAGL1\tTINAGL1\n+PEF1\tPEF1\n+COL16A1\tCOL16A1\n+PTP4A2\tPTP4A2\n+KHDRBS1\tKHDRBS1\n+TMEM39B\tTMEM39B\n+KPNA6\tKPNA6\n+TXLNA\tTXLNA\n+CCDC28B\tCCDC28B\n+TMEM234\tTMEM234\n+EIF3I\tEIF3I\n+MTMR9LP\tMTMR9LP\n+FAM167B\tFAM167B\n+LCK\tLCK\n+HDAC1\tHDAC1\n+MARCKSL1\tMARCKSL1\n+BSDC1\tBSDC1\n+ZBTB8A\tZBTB8A\n+ZBTB8OS\tZBTB8OS\n+RBBP4\tRBBP4\n+SYNC\tSYNC\n+KIAA1522\tKIAA1522\n+YARS\tYARS\n+S100PBP\tS100PBP\n+RNF19B\tRNF19B\n+AK2\tAK2\n+ADC\tADC\n+TRIM62\tTRIM62\n+ZNF362\tZNF362\n+PHC2\tPHC2\n+SMIM12\tSMIM12\n+GJA4\tGJA4\n+ZMYM6\tZMYM6\n+ZMYM6NB\tZMYM6NB\n+ZMYM1\tZMYM1\n+SFPQ\tSFPQ\n+ZMYM4\tZMYM4\n+KIAA0319L\tKIAA0319L\n+NCDN\tNCDN\n+PSMB2\tPSMB2\n+C1orf216\tC1orf216\n+CLSPN\tCLSPN\n+AGO4\tAGO4\n+AGO1\tAGO1\n+AGO3\tAGO3\n+ADPRHL2\tADPRHL2\n+TRAPPC3\tTRAPPC3\n+MAP7D1\tMAP7D1\n+THRAP3\tTHRAP3\n+STK40\tSTK40\n+LSM10\tLSM10\n+MRPS15\tMRPS15\n+CSF3R\tCSF3R\n+ZC3H12A\tZC3H12A\n+MEAF6\tMEAF6\n+SNIP1\tSNIP1\n+GNL2\tGNL2\n+C1orf109\tC1orf109\n+CDCA8\tCDCA8\n+YRDC\tYRDC\n+C1orf122\tC1orf122\n+MTF1\tMTF1\n+INPP5B\tINPP5B\n+SF3A3\tSF3A3\n+FHL3\tFHL3\n+UTP11L\tUTP11L\n+RRAGC\tRRAGC\n+MYCBP\tMYCBP\n+AKIRIN1\tAKIRIN1\n+NDUFS5\tNDUFS5\n+MACF1\tMACF1\n+KIAA0754\tKIAA0754\n+BMP8A\tBMP8A\n+PPIEL\tPPIEL\n+PABPC4\tPABPC4\n+HEYL\tHEYL\n+PPIE\tPPIE\n+TRIT1\tTRIT1\n+MFSD2A\tMFSD2A\n+CAP1\tCAP1\n+PPT1\tPPT1\n+RLF\tRLF\n+ZMPSTE24\tZMPSTE24\n+SMAP2\tSMAP2\n+ZFP69B\tZFP69B\n+EXO5\tEXO5\n+ZNF684\tZNF684\n+NFYC\tNFYC\n+CTPS1\tCTPS1\n+SCMH1\tSCMH1\n+HIVEP3\tHIVEP3\n+FOXJ3\tFOXJ3\n+PPCS\tPPCS\n+PPIH\tPPIH\n+YBX1\tYBX1\n+LEPRE1\tLEPRE1\n+C1orf50\tC1orf50\n+CCDC23\tCCDC23\n+ERMAP\tERMAP\n+ZNF691\tZNF691\n+SLC2A1\tSLC2A1\n+EBNA1BP2\tEBNA1BP2\n+TIE1\tTIE1\n+CDC20\tCDC20\n+ELOVL1\tELOVL1\n+MED8\tMED8\n+SZT2\tSZT2\n+HYI\tHYI\n+KDM4A\tKDM4A\n+KDM4A-AS1\tKDM4A-AS1\n+ST3GAL3\tST3GAL3\n+IPO13\tIPO13\n+DPH2\tDPH2\n+ATP6V0B\tATP6V0B\n+DMAP1\tDMAP1\n+ERI3\tERI3\n+RNF220\tRNF220\n+TMEM53\tTMEM53\n+C1orf2'..b'3\n+DDX17\tDDX17\n+CBY1\tCBY1\n+TOMM22\tTOMM22\n+JOSD1\tJOSD1\n+GTPBP1\tGTPBP1\n+SUN2\tSUN2\n+DNAL4\tDNAL4\n+CBX6\tCBX6\n+APOBEC3A\tAPOBEC3A\n+APOBEC3B\tAPOBEC3B\n+APOBEC3C\tAPOBEC3C\n+APOBEC3D\tAPOBEC3D\n+APOBEC3F\tAPOBEC3F\n+APOBEC3G\tAPOBEC3G\n+APOBEC3H\tAPOBEC3H\n+CBX7\tCBX7\n+PDGFB\tPDGFB\n+RPL3\tRPL3\n+SYNGR1\tSYNGR1\n+TAB1\tTAB1\n+ATF4\tATF4\n+RPS19BP1\tRPS19BP1\n+GRAP2\tGRAP2\n+TNRC6B\tTNRC6B\n+ADSL\tADSL\n+SGSM3\tSGSM3\n+MKL1\tMKL1\n+SLC25A17\tSLC25A17\n+ST13\tST13\n+XPNPEP3\tXPNPEP3\n+RBX1\tRBX1\n+CYBB\tCYBB\n+DYNLT3\tDYNLT3\n+SRPX\tSRPX\n+RPGR\tRPGR\n+TSPAN7\tTSPAN7\n+BCOR\tBCOR\n+ATP6AP2\tATP6AP2\n+CXorf38\tCXorf38\n+MED14\tMED14\n+USP9X\tUSP9X\n+DDX3X\tDDX3X\n+CASK\tCASK\n+GPR34\tGPR34\n+GPR82\tGPR82\n+MAOA\tMAOA\n+MAOB\tMAOB\n+EFHC2\tEFHC2\n+FUNDC1\tFUNDC1\n+KDM6A\tKDM6A\n+CXorf36\tCXorf36\n+KRBOX4\tKRBOX4\n+ZNF674\tZNF674\n+ZNF674-AS1\tZNF674-AS1\n+CHST7\tCHST7\n+SLC9A7\tSLC9A7\n+RP2\tRP2\n+NDUFB11\tNDUFB11\n+RBM10\tRBM10\n+UBA1\tUBA1\n+INE1\tINE1\n+CDK16\tCDK16\n+USP11\tUSP11\n+ZNF41\tZNF41\n+ARAF\tARAF\n+TIMP1\tTIMP1\n+CFP\tCFP\n+ELK1\tELK1\n+UXT\tUXT\n+ZNF81\tZNF81\n+ZNF182\tZNF182\n+ZNF630\tZNF630\n+SLC38A5\tSLC38A5\n+FTSJ1\tFTSJ1\n+PORCN\tPORCN\n+EBP\tEBP\n+TBC1D25\tTBC1D25\n+RBM3\tRBM3\n+WDR13\tWDR13\n+WAS\tWAS\n+SUV39H1\tSUV39H1\n+GATA1\tGATA1\n+HDAC6\tHDAC6\n+TIMM17B\tTIMM17B\n+PQBP1\tPQBP1\n+SLC35A2\tSLC35A2\n+PIM2\tPIM2\n+OTUD5\tOTUD5\n+GRIPAP1\tGRIPAP1\n+TFE3\tTFE3\n+PRAF2\tPRAF2\n+WDR45\tWDR45\n+GPKOW\tGPKOW\n+PLP2\tPLP2\n+PRICKLE3\tPRICKLE3\n+CCDC22\tCCDC22\n+CLCN5\tCLCN5\n+SHROOM4\tSHROOM4\n+NUDT11\tNUDT11\n+GSPT2\tGSPT2\n+MAGED1\tMAGED1\n+FAM156A\tFAM156A\n+TSPYL2\tTSPYL2\n+KDM5C\tKDM5C\n+SMC1A\tSMC1A\n+HSD17B10\tHSD17B10\n+HUWE1\tHUWE1\n+PHF8\tPHF8\n+FAM120C\tFAM120C\n+TSR2\tTSR2\n+GNL3L\tGNL3L\n+MAGED2\tMAGED2\n+TRO\tTRO\n+APEX2\tAPEX2\n+FAM104B\tFAM104B\n+MTRNR2L10\tMTRNR2L10\n+MAGEH1\tMAGEH1\n+RRAGB\tRRAGB\n+KLF8\tKLF8\n+UBQLN2\tUBQLN2\n+SPIN3\tSPIN3\n+SPIN2B\tSPIN2B\n+FAAH2\tFAAH2\n+ZXDB\tZXDB\n+ZXDA\tZXDA\n+SPIN4\tSPIN4\n+ARHGEF9\tARHGEF9\n+AMER1\tAMER1\n+MTMR8\tMTMR8\n+ZC4H2\tZC4H2\n+ZC3H12B\tZC3H12B\n+LAS1L\tLAS1L\n+MSN\tMSN\n+VSIG4\tVSIG4\n+HEPH\tHEPH\n+EDA2R\tEDA2R\n+OPHN1\tOPHN1\n+YIPF6\tYIPF6\n+STARD8\tSTARD8\n+EFNB1\tEFNB1\n+PJA1\tPJA1\n+EDA\tEDA\n+IGBP1\tIGBP1\n+PDZD11\tPDZD11\n+KIF4A\tKIF4A\n+SNX12\tSNX12\n+IL2RG\tIL2RG\n+MED12\tMED12\n+ZMYM3\tZMYM3\n+NONO\tNONO\n+TAF1\tTAF1\n+OGT\tOGT\n+ACRC\tACRC\n+CXCR3\tCXCR3\n+NHSL2\tNHSL2\n+RGAG4\tRGAG4\n+PIN4\tPIN4\n+RPS4X\tRPS4X\n+HDAC8\tHDAC8\n+CHIC1\tCHIC1\n+TSIX\tTSIX\n+XIST\tXIST\n+JPX\tJPX\n+FTX\tFTX\n+RLIM\tRLIM\n+ABCB7\tABCB7\n+UPRT\tUPRT\n+PBDC1\tPBDC1\n+ATRX\tATRX\n+MAGT1\tMAGT1\n+COX7B\tCOX7B\n+ATP7A\tATP7A\n+PGK1\tPGK1\n+TAF9B\tTAF9B\n+CYSLTR1\tCYSLTR1\n+P2RY10\tP2RY10\n+GPR174\tGPR174\n+ITM2A\tITM2A\n+BRWD3\tBRWD3\n+HMGN5\tHMGN5\n+SH3BGRL\tSH3BGRL\n+HDX\tHDX\n+APOOL\tAPOOL\n+CHM\tCHM\n+DIAPH2\tDIAPH2\n+TSPAN6\tTSPAN6\n+CSTF2\tCSTF2\n+TRMT2B\tTRMT2B\n+TIMM8A\tTIMM8A\n+BTK\tBTK\n+RPL36A\tRPL36A\n+RPL36A-HNRNPH2\tRPL36A-HNRNPH2\n+GLA\tGLA\n+HNRNPH2\tHNRNPH2\n+ARMCX4\tARMCX4\n+ARMCX1\tARMCX1\n+ARMCX6\tARMCX6\n+ARMCX3\tARMCX3\n+ARMCX2\tARMCX2\n+ZMAT1\tZMAT1\n+ARMCX5\tARMCX5\n+GPRASP1\tGPRASP1\n+GPRASP2\tGPRASP2\n+NXF3\tNXF3\n+BEX4\tBEX4\n+TCEAL8\tTCEAL8\n+BEX2\tBEX2\n+TCEAL7\tTCEAL7\n+WBP5\tWBP5\n+NGFRAP1\tNGFRAP1\n+TCEAL4\tTCEAL4\n+TCEAL3\tTCEAL3\n+TCEAL1\tTCEAL1\n+MORF4L2\tMORF4L2\n+FAM199X\tFAM199X\n+CXorf57\tCXorf57\n+RNF128\tRNF128\n+TBC1D8B\tTBC1D8B\n+MORC4\tMORC4\n+RBM41\tRBM41\n+PRPS1\tPRPS1\n+TSC22D3\tTSC22D3\n+MID2\tMID2\n+VSIG1\tVSIG1\n+PSMD10\tPSMD10\n+ATG4A\tATG4A\n+NXT2\tNXT2\n+ACSL4\tACSL4\n+TMEM164\tTMEM164\n+AMMECR1\tAMMECR1\n+ALG13\tALG13\n+PLS3\tPLS3\n+WDR44\tWDR44\n+DOCK11\tDOCK11\n+IL13RA1\tIL13RA1\n+LONRF3\tLONRF3\n+PGRMC1\tPGRMC1\n+SLC25A43\tSLC25A43\n+SLC25A5\tSLC25A5\n+CXorf56\tCXorf56\n+UBE2A\tUBE2A\n+NKRF\tNKRF\n+SEPT6\tSEPT6\n+RPL39\tRPL39\n+UPF3B\tUPF3B\n+RNF113A\tRNF113A\n+NDUFA1\tNDUFA1\n+NKAP\tNKAP\n+ZBTB33\tZBTB33\n+LAMP2\tLAMP2\n+CUL4B\tCUL4B\n+MCTS1\tMCTS1\n+C1GALT1C1\tC1GALT1C1\n+THOC2\tTHOC2\n+XIAP\tXIAP\n+STAG2\tSTAG2\n+SH2D1A\tSH2D1A\n+TENM1\tTENM1\n+SMARCA1\tSMARCA1\n+OCRL\tOCRL\n+APLN\tAPLN\n+SASH3\tSASH3\n+ZDHHC9\tZDHHC9\n+UTP14A\tUTP14A\n+BCORL1\tBCORL1\n+ELF4\tELF4\n+AIFM1\tAIFM1\n+ZNF280C\tZNF280C\n+SLC25A14\tSLC25A14\n+RBMX2\tRBMX2\n+FAM45B\tFAM45B\n+ENOX2\tENOX2\n+MST4\tMST4\n+RAP2C\tRAP2C\n+MBNL3\tMBNL3\n+GPC4\tGPC4\n+GPC3\tGPC3\n+PHF6\tPHF6\n+HPRT1\tHPRT1\n+FAM122B\tFAM122B\n+FAM122C\tFAM122C\n+MOSPD1\tMOSPD1\n+SMIM10\tSMIM10\n+FAM127C\tFAM127C\n+FAM127A\tFAM127A\n+FAM127B\tFAM127B\n+ZNF75D\tZNF75D\n+USP9Y\tUSP9Y\n+DDX3Y\tDDX3Y\n+UTY\tUTY\n+NLGN4Y\tNLGN4Y\n'
b
diff -r be7c0c692879 -r ddbace8f3277 test-data/matrix.mtx
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/matrix.mtx Tue Aug 27 13:17:01 2024 +0000
b
b'@@ -0,0 +1,43915 @@\n+%%MatrixMarket matrix coordinate integer general\n+8252 20 43913\n+6 1 12\n+10 1 26\n+11 1 18\n+13 1 36\n+14 1 31\n+18 1 3\n+26 1 43\n+28 1 125\n+31 1 4\n+32 1 5\n+36 1 45\n+38 1 8\n+41 1 57\n+53 1 38\n+56 1 31\n+57 1 5\n+67 1 58\n+72 1 76\n+78 1 14\n+80 1 116\n+82 1 46\n+83 1 9\n+90 1 10\n+91 1 6\n+94 1 35\n+104 1 5\n+106 1 17\n+109 1 12\n+116 1 3\n+124 1 12\n+129 1 357\n+130 1 5\n+131 1 13\n+146 1 1\n+147 1 13\n+148 1 3\n+151 1 86\n+152 1 4\n+157 1 12\n+161 1 157\n+163 1 8\n+174 1 28\n+176 1 77\n+178 1 3\n+189 1 51\n+190 1 20\n+196 1 40\n+198 1 2\n+200 1 13\n+208 1 268\n+213 1 860\n+220 1 44\n+223 1 18\n+225 1 48\n+228 1 4\n+234 1 7\n+237 1 23\n+240 1 50\n+242 1 64\n+243 1 1\n+244 1 289\n+246 1 53\n+252 1 1\n+255 1 10\n+257 1 14\n+263 1 3\n+268 1 6\n+280 1 29\n+281 1 180\n+282 1 1\n+287 1 128\n+291 1 140\n+296 1 8\n+306 1 381\n+313 1 37\n+316 1 6\n+323 1 4\n+329 1 39\n+334 1 162\n+354 1 63\n+366 1 7\n+367 1 33\n+376 1 5\n+377 1 67\n+379 1 36\n+381 1 9\n+386 1 41\n+387 1 16\n+388 1 14\n+390 1 29\n+392 1 42\n+397 1 1\n+398 1 89\n+399 1 48\n+400 1 24\n+402 1 4\n+414 1 50\n+425 1 18\n+432 1 3\n+440 1 6\n+444 1 4\n+447 1 52\n+448 1 14\n+452 1 20\n+461 1 6\n+462 1 9\n+464 1 7\n+473 1 20\n+475 1 1\n+478 1 222\n+484 1 110\n+488 1 11\n+492 1 13\n+497 1 15\n+499 1 8\n+502 1 93\n+508 1 71\n+510 1 31\n+517 1 15\n+521 1 8\n+526 1 10\n+533 1 17\n+536 1 79\n+539 1 34\n+541 1 33\n+544 1 15\n+548 1 55\n+551 1 17\n+553 1 3\n+557 1 20\n+561 1 7\n+567 1 36\n+573 1 179\n+576 1 23\n+583 1 19\n+584 1 82\n+598 1 12\n+602 1 3\n+606 1 85\n+612 1 31\n+613 1 6\n+617 1 34\n+618 1 5\n+624 1 7\n+636 1 42\n+638 1 2\n+648 1 25\n+650 1 3\n+651 1 11\n+653 1 16\n+662 1 60\n+663 1 6\n+667 1 34\n+670 1 50\n+671 1 41\n+676 1 1\n+680 1 188\n+688 1 317\n+689 1 7\n+690 1 7\n+695 1 56\n+701 1 2\n+702 1 21\n+707 1 147\n+710 1 44\n+714 1 33\n+718 1 76\n+720 1 16\n+721 1 22\n+722 1 11\n+724 1 273\n+725 1 7\n+728 1 67\n+733 1 35\n+735 1 11\n+740 1 18\n+742 1 2\n+750 1 12\n+752 1 60\n+758 1 16\n+759 1 28\n+764 1 34\n+769 1 6\n+773 1 38\n+775 1 80\n+777 1 97\n+778 1 284\n+782 1 36\n+785 1 31\n+787 1 3\n+797 1 3\n+799 1 33\n+801 1 4\n+802 1 21\n+803 1 79\n+804 1 7\n+805 1 17\n+807 1 23\n+809 1 26\n+812 1 11\n+816 1 20\n+819 1 19\n+832 1 9\n+833 1 169\n+842 1 140\n+844 1 3\n+845 1 1\n+846 1 14\n+854 1 62\n+855 1 15\n+865 1 12\n+867 1 9\n+868 1 105\n+869 1 2\n+875 1 10\n+884 1 8\n+885 1 4\n+888 1 14\n+894 1 178\n+895 1 34\n+901 1 1\n+904 1 39\n+905 1 16\n+907 1 2\n+916 1 7\n+917 1 12\n+922 1 37\n+925 1 21\n+931 1 37\n+933 1 21\n+936 1 54\n+942 1 44\n+943 1 28\n+945 1 4\n+954 1 3\n+955 1 341\n+962 1 22\n+963 1 111\n+966 1 2\n+972 1 5\n+979 1 45\n+993 1 21\n+996 1 58\n+1001 1 97\n+1002 1 1\n+1008 1 10\n+1017 1 46\n+1018 1 26\n+1022 1 29\n+1023 1 11\n+1024 1 4\n+1032 1 127\n+1049 1 19\n+1056 1 14\n+1064 1 7\n+1066 1 45\n+1068 1 2\n+1071 1 59\n+1074 1 8\n+1076 1 104\n+1086 1 15\n+1098 1 18\n+1103 1 183\n+1107 1 38\n+1108 1 23\n+1111 1 9\n+1112 1 27\n+1117 1 11\n+1119 1 20\n+1120 1 25\n+1128 1 2\n+1129 1 2\n+1132 1 2\n+1139 1 1\n+1141 1 13\n+1143 1 30\n+1145 1 102\n+1148 1 42\n+1151 1 25\n+1153 1 2\n+1163 1 4\n+1165 1 10\n+1166 1 26\n+1169 1 91\n+1173 1 20\n+1176 1 17\n+1177 1 13\n+1178 1 32\n+1180 1 27\n+1191 1 9\n+1194 1 52\n+1198 1 4\n+1200 1 96\n+1214 1 4\n+1215 1 28\n+1218 1 67\n+1219 1 6\n+1227 1 28\n+1229 1 194\n+1231 1 7\n+1241 1 41\n+1242 1 133\n+1245 1 15\n+1252 1 29\n+1261 1 97\n+1264 1 4\n+1266 1 102\n+1267 1 16\n+1272 1 62\n+1274 1 8\n+1277 1 6\n+1280 1 206\n+1282 1 29\n+1299 1 34\n+1300 1 3\n+1302 1 14\n+1303 1 125\n+1310 1 8\n+1315 1 32\n+1323 1 13\n+1327 1 74\n+1328 1 61\n+1344 1 3\n+1346 1 990\n+1358 1 7\n+1361 1 12\n+1362 1 13\n+1365 1 143\n+1370 1 25\n+1373 1 3\n+1376 1 829\n+1378 1 82\n+1380 1 1\n+1384 1 51\n+1388 1 4\n+1389 1 48\n+1394 1 115\n+1398 1 104\n+1403 1 73\n+1404 1 101\n+1409 1 9\n+1414 1 40\n+1415 1 56\n+1417 1 74\n+1422 1 9\n+1425 1 21\n+1427 1 14\n+1428 1 15\n+1436 1 83\n+1437 1 37\n+1440 1 176\n+1443 1 150\n+1461 1 17\n+1463 1 11\n+1464 1 57\n+1466 1 13\n+1468 1 47\n+1476 1 1\n+1480 1 39\n+1481 1 28\n+1482 1 2\n+1485 1 86\n+1487 1 108\n+1497 1 164\n+1500 1 224\n+1502 1 155\n+1510 1 11\n+1512 1 8\n+1513 1 20\n+1516 1 5\n+1517 1 46\n+1523 1 29\n+1526 1 4\n+1528 1 149\n+1529 1 28\n+1532 1 6\n+1536 1 66\n+1538 1 420\n+1539 1 2\n+1540 1 9\n+1546 1 16\n+1551 1 116\n+1552 1 16\n+1553 1 4\n+1555 1 4\n+1569 1 72\n'..b'7010 20 14\n+7012 20 26\n+7014 20 28\n+7018 20 21\n+7021 20 2\n+7024 20 5\n+7027 20 16\n+7031 20 579\n+7032 20 221\n+7040 20 18\n+7042 20 112\n+7046 20 57\n+7047 20 11\n+7049 20 14\n+7050 20 43\n+7051 20 7\n+7061 20 52\n+7064 20 24\n+7073 20 28\n+7074 20 10\n+7076 20 118\n+7077 20 82\n+7089 20 16\n+7101 20 16\n+7105 20 11\n+7112 20 56\n+7113 20 23\n+7116 20 39\n+7123 20 72\n+7126 20 40\n+7137 20 10\n+7141 20 12\n+7142 20 20\n+7146 20 19\n+7148 20 23\n+7151 20 6\n+7152 20 217\n+7154 20 4100\n+7162 20 122\n+7164 20 3\n+7165 20 31\n+7168 20 24\n+7174 20 26\n+7180 20 20\n+7182 20 11\n+7183 20 135\n+7184 20 22\n+7187 20 7\n+7194 20 56\n+7196 20 17\n+7200 20 12\n+7211 20 49\n+7213 20 26\n+7216 20 43\n+7218 20 5\n+7222 20 62\n+7230 20 48\n+7232 20 121\n+7233 20 3\n+7237 20 25\n+7238 20 26\n+7249 20 59\n+7250 20 13\n+7255 20 6\n+7259 20 67\n+7264 20 4\n+7266 20 21\n+7271 20 10\n+7272 20 19\n+7273 20 5\n+7278 20 94\n+7280 20 54\n+7283 20 7\n+7293 20 37\n+7294 20 53\n+7312 20 21\n+7316 20 34\n+7330 20 450\n+7333 20 185\n+7342 20 12\n+7344 20 767\n+7345 20 56\n+7348 20 71\n+7361 20 482\n+7372 20 1\n+7379 20 19\n+7380 20 13\n+7383 20 14\n+7385 20 532\n+7387 20 13\n+7391 20 13\n+7393 20 77\n+7395 20 7\n+7396 20 27\n+7398 20 4\n+7400 20 29\n+7403 20 5\n+7404 20 9\n+7420 20 138\n+7421 20 14\n+7422 20 17\n+7428 20 60\n+7430 20 12\n+7432 20 2\n+7437 20 6\n+7440 20 27\n+7447 20 21\n+7454 20 14\n+7455 20 5\n+7462 20 30\n+7463 20 42\n+7464 20 89\n+7465 20 2\n+7466 20 28\n+7467 20 27\n+7468 20 21\n+7471 20 4\n+7472 20 3\n+7476 20 6\n+7482 20 23\n+7490 20 22\n+7496 20 3\n+7497 20 36\n+7499 20 5\n+7500 20 85\n+7502 20 23\n+7505 20 1\n+7509 20 40\n+7515 20 19\n+7523 20 19\n+7531 20 32\n+7533 20 36\n+7539 20 96\n+7540 20 15\n+7542 20 1\n+7551 20 31\n+7558 20 67\n+7563 20 3\n+7565 20 129\n+7567 20 48\n+7570 20 7\n+7576 20 18\n+7577 20 670\n+7582 20 8\n+7584 20 44\n+7591 20 24\n+7593 20 6\n+7610 20 96\n+7612 20 8\n+7614 20 29\n+7615 20 11\n+7617 20 16\n+7620 20 47\n+7623 20 4\n+7627 20 69\n+7630 20 1\n+7632 20 4\n+7633 20 17\n+7634 20 48\n+7637 20 27\n+7638 20 27\n+7639 20 6\n+7641 20 39\n+7645 20 23\n+7648 20 23\n+7650 20 1\n+7651 20 819\n+7654 20 88\n+7657 20 13\n+7662 20 70\n+7664 20 22\n+7670 20 5\n+7671 20 122\n+7679 20 21\n+7681 20 18\n+7686 20 4\n+7692 20 36\n+7700 20 75\n+7706 20 15\n+7708 20 79\n+7709 20 79\n+7716 20 41\n+7726 20 16\n+7734 20 4\n+7736 20 26\n+7737 20 33\n+7739 20 4\n+7740 20 9\n+7749 20 43\n+7750 20 14\n+7754 20 3\n+7755 20 29\n+7764 20 8\n+7768 20 40\n+7770 20 90\n+7774 20 59\n+7775 20 186\n+7777 20 17\n+7779 20 124\n+7780 20 78\n+7783 20 12\n+7804 20 15\n+7810 20 24\n+7811 20 10\n+7816 20 186\n+7819 20 7\n+7820 20 7\n+7823 20 171\n+7827 20 48\n+7832 20 1\n+7835 20 52\n+7837 20 31\n+7840 20 186\n+7842 20 119\n+7843 20 29\n+7845 20 24\n+7848 20 67\n+7851 20 9\n+7853 20 70\n+7855 20 14\n+7858 20 37\n+7863 20 56\n+7874 20 52\n+7893 20 4\n+7894 20 73\n+7895 20 2\n+7896 20 26\n+7897 20 12\n+7898 20 9\n+7901 20 41\n+7903 20 104\n+7905 20 4\n+7906 20 24\n+7909 20 420\n+7910 20 15\n+7911 20 16\n+7918 20 1\n+7927 20 4\n+7929 20 23\n+7937 20 5\n+7939 20 32\n+7940 20 12\n+7942 20 28\n+7944 20 49\n+7945 20 320\n+7946 20 42\n+7952 20 173\n+7953 20 49\n+7954 20 197\n+7955 20 17\n+7960 20 1\n+7964 20 2\n+7966 20 26\n+7967 20 74\n+7970 20 25\n+7971 20 47\n+7972 20 3\n+7975 20 8\n+7981 20 52\n+7986 20 4\n+7992 20 8\n+7993 20 37\n+7995 20 67\n+8000 20 30\n+8002 20 9\n+8003 20 17\n+8008 20 8\n+8016 20 7\n+8020 20 62\n+8021 20 16\n+8024 20 97\n+8025 20 1\n+8029 20 51\n+8033 20 94\n+8036 20 17\n+8040 20 41\n+8044 20 146\n+8045 20 13\n+8046 20 6\n+8052 20 8\n+8062 20 2\n+8064 20 1206\n+8068 20 7\n+8076 20 11\n+8079 20 43\n+8080 20 14\n+8081 20 2\n+8085 20 26\n+8092 20 6\n+8096 20 3\n+8101 20 38\n+8103 20 13\n+8108 20 31\n+8109 20 15\n+8112 20 63\n+8114 20 21\n+8116 20 14\n+8120 20 61\n+8122 20 35\n+8129 20 16\n+8130 20 4\n+8134 20 34\n+8135 20 3\n+8137 20 180\n+8138 20 136\n+8142 20 15\n+8144 20 94\n+8155 20 111\n+8156 20 4\n+8158 20 33\n+8165 20 17\n+8166 20 28\n+8167 20 35\n+8170 20 36\n+8176 20 121\n+8178 20 221\n+8186 20 14\n+8187 20 2\n+8192 20 2\n+8197 20 3\n+8198 20 57\n+8199 20 2\n+8201 20 5\n+8204 20 23\n+8208 20 22\n+8213 20 32\n+8215 20 26\n+8216 20 315\n+8217 20 48\n+8219 20 5\n+8221 20 1\n+8226 20 16\n+8236 20 16\n+8239 20 24\n+8244 20 52\n+8246 20 26\n+8247 20 4\n'