Giter Site home page Giter Site logo

cytonorm's People

Contributors

dillonhammill avatar jacobpwagner avatar sofievg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

cytonorm's Issues

Error in the step of training the model

Using the data from the flow repository, I succesfully ran the code and steps until receiving an error at the training model step.
The error was
"Error in FlowSOM::AggregateFlowFrames(files, nCells, channels = colsToUse, :
unused argument (channels = colsToUse)"

I doubled check all the previous steps, and the data structure and input seem to be fine. Are there any suggestions?

K-mean clustering instead of FlowSOM

Hi everyone,
For some reason FlowSOM can't cluster my T cells into naive and memory, K-mean can, is there a way to use K-mean clustering instead?
Thank you a lot

Skipping the clustering

Dear all,
I already know my data clustering affected by my batches and I read thatI can skip the clustering part in the training but I am not sure how this is achieved! should I just skip the FlowSOM.params in the training function and then the clustering is skipped? sorry but this was't so clear to me in the documentation.
Also I have a question regarding to the training data. Can the training data be used with normalized facs files or do I need to normalize the training data too by somehow including them in the normalization process?

Thank you so much!

What type of data should be used?

Hi,
I would like to apply CytoNorm to my mass-cytometry dataset but I would like to know more about the data used.
Do you use raw FCS files (after beads normalization and debarcoding) or do you "clean" your data first (singlets, live cells etc...)?

Best

How to specify which batch is good?

Hello everyone,

I have 2 batches (B1 and B2), in each batch I have 5 samples (B1_X1, B1_X2, B1_X3, B1_X4, B1_X5) (B2_X1, B2_X2, B2_X6, B2_X7, B2_X8)
I have only X1 and X2 in common between B1 and B2.
I know that B1 is good, the staining in B2 was not perfect for some markers. I want to correct the staining in B2 to look like the staining in B1.
Should I only use X1 and X2 to train my model and then use the model to normalize X6,X7,X8?
How do I specify that B1 is good and that I want B2 to be corrected and not the opposite?

Thank you a lot for your feedback!

no output on cytonorm

hello I'm seeing the following message after inputing my data/controls. Can anyone assist?

Error in FlowSOM::AggregateFlowFrames(files, nCells, channels = colsToUse) :
unused argument (channels = colsToUse)

nClus parameter not working

Hello again :),

I have been running into a weird issue where I specify the number of clusters as e.g. 20, and it's running flowsom with nClus=20, the plot for the CV looks ok, but when it's doing the training it's only using 10 clusters, so it says Processing cluster 1... up to 10. The same with the actual normalisation, it seems to only be using 10 clusters.
Any idea what's happening there?

Many thanks and best wishes,
Emma

sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS release 6.10 (Final)

Matrix products: default
BLAS/LAPACK: /usr/lib64/libopenblas-r0.3.3.so

locale:
[1] LC_CTYPE=en_GB.ISO-8859-1 LC_NUMERIC=C LC_TIME=en_GB.ISO-8859-1 LC_COLLATE=en_GB.ISO-8859-1
[5] LC_MONETARY=en_GB.ISO-8859-1 LC_MESSAGES=en_GB.ISO-8859-1 LC_PAPER=en_GB.ISO-8859-1 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_GB.ISO-8859-1 LC_IDENTIFICATION=C

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] flowCore_1.52.1 FlowSOM_1.18.0 igraph_1.2.5 dplyr_1.0.0 CytoNorm_0.0.5 optparse_1.6.6

loaded via a namespace (and not attached):
[1] Biobase_2.46.0 splines_3.6.3 jsonlite_1.6.1 ConsensusClusterPlus_1.50.0 R.utils_2.9.2
[6] ellipse_0.4.2 gtools_3.8.2 RcppParallel_5.0.1 stats4_3.6.3 latticeExtra_0.6-29
[11] RBGL_1.62.1 flowWorkspace_3.34.1 yaml_2.2.1 robustbase_0.93-6 pillar_1.4.4
[16] lattice_0.20-41 glue_1.3.2 digest_0.6.25 RColorBrewer_1.1-2 colorspace_1.4-1
[21] ggcyto_1.14.1 Matrix_1.2-18 R.oo_1.23.0 plyr_1.8.6 pcaPP_1.9-73
[26] XML_3.99-0.3 pkgconfig_2.0.3 pheatmap_1.0.12 tsne_0.1-3 fda_5.1.4
[31] zlibbioc_1.32.0 purrr_0.3.4 corpcor_1.6.9 mvtnorm_1.1-1 scales_1.1.1
[36] jpeg_0.1-8.1 getopt_1.20.3 openCyto_1.24.0 flowStats_3.44.0 tibble_3.0.1
[41] generics_0.0.2 ggplot2_3.3.1 ellipsis_0.3.1 flowViz_1.50.0 BiocGenerics_0.32.0
[46] hexbin_1.28.1 mnormt_1.5-6 magrittr_1.5 crayon_1.3.4 IDPmisc_1.1.20
[51] mclust_5.4.6 ks_1.11.7 R.methodsS3_1.8.0 MASS_7.3-51.6 graph_1.64.0
[56] tools_3.6.3 data.table_1.12.8 ncdfFlow_2.32.0 flowClust_3.24.0 lifecycle_0.2.0
[61] matrixStats_0.56.0 stringr_1.4.0 munsell_0.5.0 cluster_2.1.0 compiler_3.6.3
[66] rlang_0.4.6 grid_3.6.3 base64enc_0.1-3 gtable_0.3.0 rrcov_1.5-2
[71] R6_2.4.1 gridExtra_2.3 clue_0.3-57 CytoML_1.12.1 KernSmooth_2.23-17
[76] Rgraphviz_2.30.0 stringi_1.4.6 parallel_3.6.3 Rcpp_1.0.4.6 vctrs_0.3.0
[81] png_0.1-7 DEoptimR_1.0-8 tidyselect_1.1.0

prep.cytonorm does not keep original cellular.cols columns

While following the Batch Alignment walk-through, found that prep.cytonorm function does not keep original cell marker columns (cellular.cols) even when specifying to keep both the original and coarse aligned columns ( cellular.cols = c(cellular.cols, paste0(cellular.cols, crs.append)) ).

I am clustering by the coarse aligned cell makers ( paste0(cellular.cols, crs.append) ), this impacts several down-stream commands which require the original column names (e.g. train.cytonorm & run.cytonorm)

Thanks in advance

CytoNorm for fluorescent flowdata

Hi,
thanks for this great tool.
I'm trying to use CytoNorm with my fluorescent flowdata as you explain in you paper (using CYTOF data) but after the normalizzation of my control (to validate the training model) i saw that all the events for each channel are on the chart edges.
I changed the cofactor to understand if the problem was related with this step but the result was the same.
Below there are the code that i used to change the cofactor and the CV of my analysis.

if you had any suggestions for solving problems I would be grateful?

best regards,
Domenico

transformList <- flowCore::transformList(channels,list(arcsinhTransform(a = 0, b = 1/300, c = 0),
arcsinhTransform(a = 0, b = 1/600, c = 0))

transformList.reverse <- flowCore::transformList(channels,list(function(x){
return(sinh(x)/(1/300))
},function(x){
return(sinh(x)/(1/600))
}))
Rplot04

CytoNorm for anaconda install

Hello,
I have been unable to find the CytoNorm package available for installation through popular package repositories like Bioconductor or conda-forge, including Anaconda. As a user interested in utilizing CytoNorm for data analysis, I kindly request the owners of CytoNorm to consider making it available as an installer package on platforms like Anaconda. This would greatly enhance the accessibility and ease of installation for the community of users relying on Anaconda for their data analysis workflows.

License and version

Hi, with respect to adding the tool to bio.tools I am wondering whether you could specify a license and a version of the tool? Thanks.

Error in t.default(data) : argument is not a matrix

Hello, when testing for best clusters this Error occurs: Error in t.default(data) : argument is not a matrix. I reinstalled FlowSOM and Cytonorm, because you explained this might be an issue in a previous discussion on this error. Could you let me know which versions are compatible? Thanks you very much! Lena

Cytonorm creating highly negative or very large values

Hi all,

Thank you for the excellent package. I have used CytoNorm on previous projects and been really happy with the results. On my current CyTOF project, I'm finding that after batch normalisation, CytoNorm seems to create some highly negative alignment values, and also some very high positive ones.

The plots below show a couple of examples or markers plotted against themselves pre and post alignment.

FceR
CD45_aligned

I'm afraid I'm not able to provide a reproducible example of this yet because I don't have permission to share the data, but have you seen this before and do you know what causes it? The number of events that are very low or very high is very small, so I'm happy excluding them, but I'm worried this is a symptom of something wrong?

The data have been compensated (nnls), asin(x/5) transformed, and then put through cytonorm.

Error when normalizing one channel

Hi Sofie,

Could it be that there should be a drop= FALSE in line 95 of QuantileNorm.R. I get an error: "Error in apply(flowCore::exprs(ff)[, channels], 2, function(x) { :
dim(X) must have a positive length" when normalizing one channel only.

Regards
Artuur

combine cytonorm with PeacoQC?

Thanks for the software!

I was wondering if you have a recommendation for combining your cytonorm workflow with PeacoQC (also from your group)? It looks like cytonorm estimates it's own per-channel transformations, but I would like to input (PeacoQC) cleaned files which do not have such nuanced transformations. Or do you recommend this is done in a different order? thanks for any advice.

README.md

Hi Sofie,

I think there is something missing in the sentence

normParams takes "nQ", the number of quantiles. Additionally, quantile_values The goal can be "mean", one of the batch labels, or nQ numbers (e.g. nQ = 2, )

Moreover, I think you should describe a basic workflow showing the use of nQ. I tried it and I think it could be more robust in some cases. In the following the setup tends to lead to a line (nQ=2) or relative straight line (nQ=5).

# A straight model is nQ = 2, quantileValues = c(0.001, 0.999)
# Model relying 5 quantiles (nQ = 5), which are described below
png("nQ_5.png",
    width = length(channels) * 300,
    height = (nrow(train_data) * 2 + 1) * 300)
model_nQ_5 <- QuantileNorm.train(
  files = train_data$Path,
  labels = train_data$Batch,
  channels = channels,
  transformList = transformList,
  nQ = 5,
  quantileValues = c(0.001, 0.01, 0.95, 0.98, 0.999),
  plot = TRUE)
dev.off()
# Check the result among the training data
QuantileNorm.normalize(
  model = model_nQ_5,
  files = train_data$Path,
  labels = train_data$Batch,
  transformList = transformList,
  transformList.reverse = transformList.reverse,
  outputDir = "nQ_5",
  prefix = "nQ_5_",
  verbose = TRUE)
# Apply to whole set
QuantileNorm.normalize(
  model = model_nQ_5,
  files = validation_data$Path,
  labels = validation_data$Batch,
  transformList = transformList,
  transformList.reverse = transformList.reverse,
  outputDir = "nQ_5",
  prefix = "nQ_5_",
  verbose = TRUE)

Best.

Differential marker expression after using Cytonorm

Hi,

I was wondering whether it makes sense to use the values obtained after performing Cytonorm for differential marker expression between two conditions? Or would that be incorrect and result in wrong conclusions?
Any comments on that?

Thanks!

Normalization question

Hello,

this is not an issue with CytoNorm, I would just need to know if what I am trying to do is possible.
My colleague collected several batches, from 1 to 6. Batches 1,2,3,4, and 6 have the control A that I can use for normalization.
The problem is that Batch 5 has no control A.
She also collected a control B for batches 5 and 6.
Is there a way to normalize all the samples ?
I was thinking to normalize batches 5 and 6 by control B, then normalizing every batch by control A but I get errors like:

Avis : 39322 cells (52.24%) seem far from their cluster centers.Splitting Normalized/Norm_Batch05-1E18-Live cells.fcs
Error in MapDataToCodes(fsom$map$codes, fsom_new$data) : 
  NA/NaN/Inf in foreign function call (arg 1)

Is this normalization doable or doomed?

Choosing appropriate reference control

Dear Sofie,

I noticed that Cytonorm does not normalise channels where there is no signal in the control sample. How would you recommend getting around this? I understand that appropriate control sample choice is crucial but it will be difficult to find a sample with signal in all channels. Alternatively would you run the algorithm twice in 2 different control samples in order to cover all the channels?

removeOriginal and prefix = ""

Hi Sofie,

When the original files are to be removed (removeOriginal = TRUE) and prefix = "", the normalized files get removed too. I would suggest using file.remove(file) before write.FCS().

Regards
Artuur

script is interrupted

Hello everyone,

I try to use CytoNOrm as FlowJo plugin for the first time.
At the following step the script is stopped:
"## Step 02 of Initial Workflow ##
**> ##################################

fsom <- CytoNorm::prepareFlowSOM(train_data$Path,

  • channels,
  • nCells = 6000,
  • FlowSOM.params = list(xdim = 5,
  • ydim = 5,
  • nClus = nCluster,
  • scale = FALSE),
  • transformList = transformList,
  • seed = 1)

cVals = sort(c(5,nCluster,10,15))

cvs <- testCVs(fsom,

  • cluster_values = cVals)

p <- PlotOverviewCV(fsom, cvs)
Error in (function (file = if (onefile) "Rplots.pdf" else "Rplot%03d.pdf", :
can file 'Rplots.pdf' not open
Calls up: PlotOverviewCV -> -> grid.newpage ->
Execution stopped**"

Got an idea? I have already exchanged some packages (ggplot2, ploty..)

Thanks a lot in advance.

Benjamin

some markers show artefacts after normalisation

Hello,
I've run CytoNorm on 4 files that were generated in 4 different batches. Many markers look amazing afterwards and the batch effect between samples is gone after running CytoNorm. But some markers show some unexpected artefacts (see screenshots below). Is there anything I can do to prevent this?

I noticed the following issues:

  • batch correction caused one positive population to be split into two
  • new random unexpected populations show up
  • lines show up in the negative population

I would appreciate any advice how I could fix this,
Thank you very much for your help and efforts in advance,
Kind regards,
Joachim

Left plots: uncorrected. Right plots: batch-corrected

image
image
image

testCV() Error in t.default(data) : argument is not a matrix

Hi,

I was following your usage guide and this function was producing the error above for me.

I noticed that the format of fsom provided to testCV() didn't seem to be correct, fsom$FlowSOM needed to be provided.

Error code:
cvs <- testCV(fsom, cluster_values = c(5, 10, 15), plot = FALSE)

Fix:
cvs <- testCV(fsom$FlowSOM, cluster_values = c(5, 10, 15), plot = FALSE)

CytoNorm by Flowjo=> No normalized files created

Hi,
I am a CytoNorm user via FlowJo software.

The normalization process seems to work but when it ends, I can't find any "nomalised" fcs files. In contrast, some new R scripts such as "RScript.CytoNorm.1670259468256.R" are present in the original folder containing the fcs files I used for normalisation.

Where can I find the normalized files? How can I be sure that no error occurred during the normailsation?
Thank you

testCV error

Hello,
First of all, thank you for putting this together, batch normalisation in CyTOF data has been a large problem in the community for a while now.
I have come across some unexpected behaviour when running testCV. It runs for some values of the cluster_values argument but gives an error under different values. For example:
cvs <- testCV(fsom, cluster_values = seq(5,25,by=2))
runs fine but not

cvs <- testCV(fsom, cluster_values = seq(5,25,by=3))
Error in array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x),  : 
  'data' must be of a vector type, was 'NULL'

I was wondering if you have any insight on what could be causing the problem.
Many thanks,
Emma

R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS release 6.10 (Final)

Matrix products: default
BLAS/LAPACK: /usr/lib64/libopenblas-r0.3.3.so

locale:
 [1] LC_CTYPE=en_GB.ISO-8859-1       LC_NUMERIC=C                    LC_TIME=en_GB.ISO-8859-1        LC_COLLATE=en_GB.ISO-8859-1    
 [5] LC_MONETARY=en_GB.ISO-8859-1    LC_MESSAGES=en_GB.ISO-8859-1    LC_PAPER=en_GB.ISO-8859-1       LC_NAME=C                      
 [9] LC_ADDRESS=C                    LC_TELEPHONE=C                  LC_MEASUREMENT=en_GB.ISO-8859-1 LC_IDENTIFICATION=C            

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] flowCore_1.52.1 dplyr_1.0.0     CytoNorm_0.0.5 

loaded via a namespace (and not attached):
 [1] Biobase_2.46.0              splines_3.6.3               jsonlite_1.6.1              ConsensusClusterPlus_1.50.0 R.utils_2.9.2              
 [6] ellipse_0.4.2               gtools_3.8.2                RcppParallel_5.0.1          stats4_3.6.3                latticeExtra_0.6-29        
[11] RBGL_1.62.1                 flowWorkspace_3.34.1        yaml_2.2.1                  robustbase_0.93-6           pillar_1.4.4               
[16] lattice_0.20-41             glue_1.3.2                  digest_0.6.25               RColorBrewer_1.1-2          colorspace_1.4-1           
[21] ggcyto_1.14.1               Matrix_1.2-18               R.oo_1.23.0                 plyr_1.8.6                  pcaPP_1.9-73               
[26] XML_3.99-0.3                pkgconfig_2.0.3             pheatmap_1.0.12             tsne_0.1-3                  fda_5.1.4                  
[31] zlibbioc_1.32.0             purrr_0.3.4                 corpcor_1.6.9               mvtnorm_1.1-1               scales_1.1.1               
[36] jpeg_0.1-8.1                openCyto_1.24.0             flowStats_3.44.0            tibble_3.0.1                generics_0.0.2             
[41] ggplot2_3.3.1               ellipsis_0.3.1              flowViz_1.50.0              BiocGenerics_0.32.0         hexbin_1.28.1              
[46] mnormt_1.5-6                magrittr_1.5                crayon_1.3.4                IDPmisc_1.1.20              mclust_5.4.6               
[51] ks_1.11.7                   R.methodsS3_1.8.0           MASS_7.3-51.6               graph_1.64.0                tools_3.6.3                
[56] data.table_1.12.8           ncdfFlow_2.32.0             flowClust_3.24.0            lifecycle_0.2.0             matrixStats_0.56.0         
[61] stringr_1.4.0               munsell_0.5.0               cluster_2.1.0               compiler_3.6.3              rlang_0.4.6                
[66] grid_3.6.3                  igraph_1.2.5                base64enc_0.1-3             gtable_0.3.0                rrcov_1.5-2                
[71] R6_2.4.1                    gridExtra_2.3               clue_0.3-57                 FlowSOM_1.18.0              CytoML_1.12.1              
[76] KernSmooth_2.23-17          Rgraphviz_2.30.0            stringi_1.4.6               parallel_3.6.3              Rcpp_1.0.4.6               
[81] vctrs_0.3.0                 png_0.1-7                   DEoptimR_1.0-8              tidyselect_1.1.0          ```

Not a real issue, but rather I just don't understand how to read the testCV function results. Help?

A (somewhat) related question regarding the testCV function graphical results. I don't understand what I'm looking at, quite frankly.

I run it as such:

cvs <- CytoNorm:testCV(fsom, cluster_values = c(a, b), plot = true, verbose = true) where a is (I assume) the start cluster number, and b is the end cluster number (from a ridiculously low value of 3 to an equally ridiculously high value of 20). It generates two plots, and I'm not sure I understand what they are telling me.

On the first plot, the top part shows what looks like downward moving "stairs", from 3 to 20 in length (from left to right); they are all shades of blue. If I assume this means that there are no batch effects causing issues with my data, then I really don't understand the following part of the plot! This is followed on the same plot by a box of varying shades of yellow (and red) to blue with values (a 20x20 grid) and with "Original clustering" on the right. I'm not sure how to read this. I understand that anything over 1.5 (or between 1 and 1.5) shows batch effects causing potential issues?

The second plot is an 11 x 20 grid, again with numbers (there are 11 technical controls in the group tested), 20 across and 11 deep. What does this plot mean? Again, the colors range from blue to red...

A third plot is simply a combination of the two previous plots, all on the same page. This one can obviously be read if I knew how to read the other ones. I hate to be ignorant, but... :) I'm having to explain this to others at work and my google-fu appears weak. I would be grateful for any help anyone could give.

Thanks,

Diana

Could CytoNorm impede discovery of novel clusters?

Hi!
If the training set is from healthy controls and the hypothesis is to discover novel clusters (using Diffcyt) that occur only in cases but not in controls, could CytoNorm pre-processing wash-off the signal?

Thanks,
Vivek

Clustering fails after CytoNorm

I was able to successfully run FlowSOM on the raw data but failed when the fcs files were normalized using CytoNorm. I believe, this error is because of introductions of NAs. How can I debug / circumvent this?

     sce <- cluster(sce, features = "type",
     +                xdim = 10, ydim = 10, maxK = 10,
     +                verbose = T, seed = 1)
     > o running FlowSOM clustering...
     > Error in SOM(fsom$data[, colsToUse], silent = silent, ...) : 
     > NA/NaN/Inf in foreign function call (arg 1)

By default,

     > options("na.action")
     $na.action
     [1] "na.omit"

I am using:
R v4.0.0
FlowSOM v1.20.0
CytoNorm v0.0.5
CATALYST v1.12.1

Thanks a lot!
Vivek

Code proposal

Hi Sofie,

Does the gsub mean basename? At

CytoNorm/R/QuantileNorm.R

Lines 494 to 495 in e94732c

paste0(prefix,
gsub(".*/","",file)))))

I think it you would interesting to store the untransformed along with the transformed channels. This redundant with the quantile plot but this will allow the user to see the transform with a classical flow software. I mean something like copying original expression of the transformed channels, renaming the colnames, and fr_append_cols them before wirting.

By the way, as the current process replaces the expression but do not alter the range, I wonder if there could be a problem if the transformed maximum is higher than the previous as the range does not change. This might be linked to previous issues.

Best

script is interrupted and doesn't produce output

Hi,

I am trying to run cytonorm and everytime I get the following error:

Error in prepareFlowSOM(files = files, nCells = nCells, FlowSOM.params = FlowSOM.params, :
unused argument (plot = plot)
execution stopped

Any idea why this happens? I am using Cytonorm_v1.1 together with R4.0.1 on windows 10

Thank you in advance!

FlowSOM fail on new normalized FCS files

Hi everyone,

After I normalize the files, I upload them to cytobank to do FLOWSOM clustering, it keeps failing, any idea why?
Also the fcs file size of the normalize file is 3X smaller than that before normalization, is there a reason for that?

Thank you a lot

Less then 50 cells in batch17 (42). No quantiles computed.

Hi

I get the message below after training the model. I have thousands of cells in every sample. Could you please help me understand why it says that there are less than 50 cells? Also, should I worry about the warnings? I mean, should I trust the normalized results even if I get these warnings?

Regards
Juan

model <- CytoNorm.train(files = train_data$Path,
labels = train_data$Batch,
channels = channels,
transformList = transformList,
FlowSOM.params = list(nCells = 6000,
xdim = 5,
ydim = 5,
nClus = 10,
scale = FALSE),
normMethod.train = QuantileNorm.train,
normParams = list(nQ = 101,
goal = "mean"),
seed = 1,
verbose = F)

Less then 50 cells in batch17 (42). No quantiles computed.
Less then 50 cells in batch11 (23). No quantiles computed.
Warning messages:
1: In FlowSOM::NewData(fsom$FlowSOM, ff) :
3804 cells (7.1%) seem far from their cluster centers.
2: In FlowSOM::NewData(fsom$FlowSOM, ff) :
5225 cells (3.52%) seem far from their cluster centers.
3: In FlowSOM::NewData(fsom$FlowSOM, ff) :
8601 cells (5.54%) seem far from their cluster centers.
4: In FlowSOM::NewData(fsom$FlowSOM, ff) :
1494 cells (3.65%) seem far from their cluster centers.
5: In (function (files, labels, channels, transformList, nQ = 101, :
Not enough cells for batch17
The identity function will be used.
6: In (function (files, labels, channels, transformList, nQ = 101, :
Not enough cells for batch11
The identity function will be used.

License missing

Hello there, thanks for making CytoNorm public. Could I ask you to clarify its license? Many thanks

CytoNorm not working in R 4.2

Hi Sofy,

We have successfully run CytoNorm in R 4.1.2 but struggling to run it in the newest version R 4.2 ('error in updateFlowSOM(fsom): fsom should be a FlowSOM object").

Any advice?

Infinite max range on normed FCS files

Hello - Firstly thank you so much for this code, it will be a game changer for analyzing CyTOF data between batches.

It has worked perfectly for me to normalize the FCS files and analyze the resulting files using other R packages, however some of my collaborators do not have coding experience and prefer the user-friendly versions of viSNE and FlowSOM through Cytobank. I've had trouble getting the normalized FCS files to be compatible with Cytobank. Originally I thought it may have been an issue with my FCS files, so I then normalized the flow repository files provided and I think it is an issue with the normed output files.

The algorithm changes the max range for the expression of each channel in a way that causes infinite outputs for some channels as show below:
image
image

Unfortunately the code in Cytobank requires the max range to be a finite value in order to do any higher order analyses (viSNE, FlowSOM, CITRUS, etc.). I've tried to play around with the code a bit to manually set the max range but haven't been successful. Do you have a suggestion as to how to address this issue?

Thanks!
Elise

Update needed for FlowSOM object update?

Hi Sofie,

I could be wrong, but it seems like CytoNorm's internal handling of FlowSOM objects may need to be updated after the Big Update commit to FlowSOM reorganized the list structure.

If I install both packages from the current GitHub master branches (or FlowSOM from Bioconductor 3.13) and attempt to run through the examples from the README, I run into issues from testCV or CytoNorm.train. For example, from CytoNorm.train, I get one of these:

Error in UpdateFlowSOM(fsom) : fsom should be a FlowSOM object.

It's not hard to trace the cause of this to here, where fsom$FlowSOM will yield a NULL for the newer format fsom object generated by prepareFlowSOM. There are also a few other locations that seem to directly depend on the old FlowSOM object structure.

Please let me know if I'm just missing something. I could also probably put together a quick patch PR as this should be pretty straightforward.

Thanks,
Jake

Typo

Hi,
The link to the graphical overview is
man/figures/algorithm_overview.PNG
This will make the package even more attractive.
Best,
Samuel

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.