Skip to content

Reading FCS files with flowCore package

6 messages · Luigi Marongiu, Martin Morgan, Jeff Newmiller +1 more

#
Dear all,
I would like to use the R's Bioconductor package flowCore to do flow 
cytometry analysis.
I generated a FCS file using the file>export function of the FACSDiva 
Software Version 8 from a BD LSRII machine. I then used the functions:
     file.name <-system.file("extdata", "cd cells_FMO 8_003.fcs", 
package="flowCore")
     x <-read.FCS(file.name, transformation = FALSE)
as shown in the flowCore: data structure package... vignette (20 May 
2014) as available from the internet. However the result is an error:
     >Error in read.FCS(file.name, transformation = FALSE) : ' ' is not 
a valid file
I then used the function:
     isFCSfile("cd cells_FMO 8_003.fcs")
where cd cells_FMO 8_003.fcs is the name of the file. As expected I 
obtained the following message:
     >cd cells_FMO 8_003.fcs FALSE
meaning I reckon that the file is not a FCS. Since I am completely new 
to this kind of analysis but I would not like to use flowJo, could 
anybody tell me how to load the FCS files? In the rest of the file I am 
pasting the beginning of the cd cells_FMO 8_003.fcs file for further 
reference (I can't attach the whole thing or even attaching the file 
because it is too big). From its gibberish I reckon that the encoding is 
probably wrong: I was expecting a flatfile after all not ASCII. Would 
the problem be how the run was exported? FlowJo however recognizes the 
files...
Best regards,
Luigi

==============================
FCS3.0         256    1927    1933 1192532       
0 0 
$BEGINANALYSIS0$ENDANALYSIS0$BEGINSTEXT0$ENDSTEXT0$BEGINDATA1933$ENDDATA1192532 
$FIL180444.fcs$SYSWindows 7 6.1$TOT29765 
$PAR10$MODEL$BYTEORD4,3,2,1$DATATYPEF$NEXTDATA0CREATORBD 
FACSDiva Software Version 8.0TUBE 
NAMEFMO 8$SRCcd cellsEXPERIMENT 
NAMEExperiment_001GUID4171c2f1-427b-4cc5-bf86-39bb76803c48$DATE31-OCT-2014$BTIM16:07:12$ETIM16:09:25SETTINGSCytometerWINDOW 
EXTENSION0.00EXPORT USER NAMELuigiMarongiuEXPORT 
TIME31-OCT-2014-16:07:11FSC ASF0.78AUTOBSTRUE$INST 
$TIMESTEP0.01SPILL3,405-450/50-A,405-655/8-A,405-525/50-A,1,0.0028442147740618787,0.0923076944711957,0,1,0,0.3425525014147933,0.08630456626553264,1APPLY 
COMPENSATIONTRUETHRESHOLDFSC,5000$P1NTime$P1R262144$P1B32$P1E0,0$P1G0.01P1BS0P1MS0$P2NFSC-A$P2R262144$P2B32$P2E0,0$P2V450$P2G1.0P2DISPLAYLINP2BS-1P2MS0$P3NFSC-H$P3R262144$P3B32$P3E0,0$P3V450$P3G1.0P3DISPLAYLINP3BS-1P3MS0$P4NFSC-W$P4R262144$P4B32$P4E0,0$P4V450$P4G1.0P4BS-1P4MS0$P5NSSC-A$P5R262144$P5B32$P5E0,0$P5V319$P5G1.0P5DISPLAYLINP5BS-1P5MS0$P6NSSC-H$P6R262144$P6B32$P6E0,0$P6V319$P6G1.0P6DISPLAYLINP6BS-1P6MS0$P7NSSC-W$P7R262144$P7B32$P7E0,0$P7V319$P7G1.0P7BS-1P7MS0$P8N405-450/50-A$P8Scd8 
- pac 
blue$P8R262144$P8B32$P8E0,0$P8V450$P8G1.0P8DISPLAYLOGP8BS-1P8MS0$P9N405-655/8-A$P9Scd45ra 
- 
q655$P9R262144$P9B32$P9E0,0$P9V450$P9G1.0P9DISPLAYLOGP9BS-1P9MS0$P10N405-525/50-A$P10Sld 
- 
acqua$P10R262144$P10B32$P10E0,0$P10V450$P10G1.0P10DISPLAYLOGP10BS-1P10MS0CST 
BEADS EXPIREDFalse     BHffE???GwI,E p F??gG?    F{? 
D????G?C???BI33GA??G??GA G1?qG?
?G"? B?k?Ab=pB?.BI33E?-?G???E?  Fe??G?h?Fc DN
=?A??C??qBK33F??G?JF?? FV?G{?eF| Bp?Cb=pA?  BM33G??G???G?? 
G???G?;G?? C??REY6?CiO\BO33E??fG?PlE?8 El G?4.E0 
Cp??H?qC!??BQ33FK?G?U?F6  F?G??vF  ?-?RC0? ?J  BTffG^??G?m at G5L 
GH??G???G8? Ap?F??B???BV??F???G??dFr? G8??G???G!? C&?fB?? ??G?BZ  
F???G?)~F?b F???G???F ? ??=pB?W
B    \)B]33F?u?G?0?F?? G?.G?E?G
? B?=pF0fB=?HB_??E???G??dE?( FR?G???FE? Dg????C?z?Ba??F???G???F?? 
F??HG??:F?~ B?u?C#??BA??Bb??G?a?G?G?: G$?OG???G? 
C#??F??=B?ffBhffG??^G???Gw@ G~G?SF?( B?Q?F???CW
BhffF?
(G??OF?? F}v)G???FHL B????b=pB9?
Bi??G?MG?i0G???GD?G?f?G*? B?\)C???CA??Bj  G5[?G?s?GG 
G]?G??!G3 CR{F$HB?G?Bj  F??G?/F? G(?G?G? B
ffGxRC??Bl??E??G???E?? E??G??E? ??=pCtk?@?G?Bn??G???G?cG? 
G/$;G??]G!` B???F??BfG?BzffE??QG?:zE ? F0y G???F/? 
D?E???C???B{??G??\G?)JGz G,?G???G? B?k?G(??B?.B|ffG*<?G??}G? 
F???G??8F?` A?z???L?B?\B|??G?}\G??G???GY
G???G@) C??qGp?CnB~??F??3G??pF? F??G??F?? C?G?F9

etc.
#
On 11/24/2014 06:18 AM, Luigi wrote:
Please address questions about Bioconductor packages to the Bioconductor support 
site

   https://support.bioconductor.org

and...
system.file() is used to access files installed in R packages, but probably you 
want to access your own file. Try

   file.name = file.choose()

and selecting the file that you want to iniptu. Verify that the path is correct 
by displaying the result

   file.name

Martin

  
    
#
Wrong list. See http://www.bioconductor.org/help/support/
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.
On November 24, 2014 6:18:07 AM PST, Luigi <marongiu.luigi at gmail.com> wrote:
fB=?HB_??E???G??dE?( FR?G???FE? Dg????C?z?Ba??F???G???F??
G?/F?
 G(?G?G>? B
??Bl??E??G???E?? E?>?G??E? ??=pCtk?@?G?Bn??G???G?c
G?
?BfG?BzffE??QG?:zE ? F0y G???F/?
G???G? B?k?G(??B?.B|ffG*<?G??}G?
?\B|??G?}\G??G???GY
#
If help files used the mustWork=TRUE argument to system.file() this sort of
problem
would become more apparent to the user.  It would give a clear error
message from
system.file() instead of a mysterious error about file "" not being valid
or, worse, a hang
from an input command waiting for the user to type something into standard
input (because
scan() and others treat file="" the same as scan=stdin()).

Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Mon, Nov 24, 2014 at 10:36 AM, Martin Morgan <mtmorgan at fredhutch.org>
wrote:

  
  
#
On 11/24/2014 11:38 AM, William Dunlap wrote:
or to change the default to mustWork=TRUE, since there are not many use cases 
for querying a non-existent system file?

(one irony I've stumbled across in my own code is to misspell 'mustWork', e.g., 
system.file("foo", mustwork=TRUE), which happily returns "").

Martin

  
    
#
There are a fair number of packages depending on the current semantics.
E.g.
  ./proxy/R/dissimilarities.R:    if (system.file(package="cba") == "")
  ./openNLP/R/pos.R:                      if(system.file(package = package)
== "") {
  ./relations/R/plot.R:    if(system.file(package = "Rgraphviz") == "")
  ./e1071/R/bclust.R:        if (system.file(package = "cluster") == "")
  ./repmis/R/utils.R:     idx = mapply(system.file, package = x) == ''
In most of those, the next statement is stop("package <name> is required")
but
in the last there is only a warning.
I've run into the same issue.  Functions with ... in the argument list
often let
things go by that should not.

Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Mon, Nov 24, 2014 at 12:23 PM, Martin Morgan <mtmorgan at fredhutch.org>
wrote: