RGLab / flowCore

Core flow cytometry infrastructure
43 stars 25 forks source link

Cannot open Sysmex Partec Cube 6 .fcs (FCS3.0) with read.FCS #260

Open mrescan opened 10 months ago

mrescan commented 10 months ago

Hello,

I am trying to read .fcs (FCS3.0) from a Sysmex Partec Cube 6 V2M flow cytometer, and get an error (with (R 4.2.1, flowCore2.10.0).

read.FCS('AEboth') returns (AEboth being one sample file):

Error in readFCSdata(con, offsets, txt, transformation, which.lines, scale, : object 'dat' not found

With the function readFCS() from the IFC package, I can access to the data, but with a warning:

Warning: TEXT (or sup. TEXT) segment: can't find final delimiter Warning: TEXT (or sup. TEXT) segment: can't find final delimiter Warning: TEXT (or sup. TEXT) segment: supplemental TEXT segment is not readable: embedded nul in string: 'PK\003\004\024\0\b\0\b\0\316|WG\314\233B\312)\0\0\211[\001\0\024\0\0\0config/config_20.xsd\355}[s\032I\326\340\363N\304\374\207\034"v\333\356q!@\226\355\361\272\325\201%$1\215\004!\260\333=1\021\212\202J\240\027UL]t\231\347\375K\273O\373\264\363\307\366\234\223\231u\201\252\242\n\201\204\272q\314E@^\3179y\362\334\363\323\317\3673\213\335r\3273\035\373\247J\275Z\2530n\217\034\303\264'?U\002\177\254}\250\374|\374\347?}\372\213\2461n\230>7\330\235\351O\331\267\313N\177\376\300n\033\265z\203\271\334\252\262\006{u\377\356\355k\366j\352\373\363\217\a\awwwU\335\362\235[\275:rf\257\331\360\201\235\272U\3267g\216\315:\272=\341\354UOw}>b\347\263\341\305k\246ij\242?\377\351\317\177:\267\234\241nq\217\365GS>\323\331\277\003\227\365\334\377\374\337q`O\230\301]v\362\345sK\373\305\261\307\346$pu\037\326\357\031\272\317Mncw\306\276\212M\261\217\254Q\255\341\027}_\267\r\306\360\213Z\375\350\246\366\376\24 [... truncated]

The file is here: https://www.dropbox.com/scl/fi/3xk48ogmzdmjqx9gnkt1b/AEboth.fcs?rlkey=t8fud39ikvvqt9ju0n0ddf0p9&dl=0

Thank you for your help,

Best,

Marie

SamGG commented 10 months ago

Hi, This FCS file is not handled by my flowCore 2.12.0. Maybe the latest version could handle this format. Either try to upgrade https://bioconductor.org/install/ or wait for developers to answer.

In my 2.12.0 version, I ended up with the datatype being "integer" and fails the "numeric" test near

      bytes <- readBin(con = con, what = "raw", n = nBytes, 
                       size = 1)
      if (dattype == "numeric" && length(unique(size)) > 
          1) 
        stop("we don't support different bitwdiths for numeric data type!")
Browse[2]> dattype
[1] "integer"
Browse[2]>
size [1] 2 2 2 2 2 4 1