Open juyeongkim opened 5 years ago
@juyeongkim Thank you for the detailed report of the issue and the good workarounds provided!
Yes, channel_alias
was handled at flowCore::read.FCS
level to address the discrepancies among fcs files that presumably belong to the same group
in flowJo
.
To solve the inter-group
discrepancies, I prefer to your post-parsing
merging of gs
s or pre-parsing
cleanup to xml
file, which are really QC steps that'd better separate from parser itself.
When I pass
channel_alias
argument inparseWorkspace
, I expect that it will update the channel names in compensation matrices, transformations, and gates; however, it's only changing the channel names inflowData
I think.For example,
The only difference between these two groups is the channel names, and I'd like to merge them into one gating set by passing a channel alias map when parsing the workspace; however, we get an error because the channel names are not updated in the compensation matrix.
Alternatively (in more traditional way of handling this issue), we can parse the workspace into two gating sets by group, change the channel names in one group to match the other, and create a gating set list, and merge them into a gating set.
The latter solution is fine, but allowing
parseWorkspace
to update channel names in compensation matrices, transformation, and gates whenchannel_alias
is more user friendly and expected behavior to the users (or just me).I understand that what I proposed might require big changes to c level code (passing aliases and updating channel names on the fly). The easier solution might be to update channel names in workspace is to pre-process (search and replace channel names) the file and pass the pre-processed file to
parseWorkspace
. It could be a part ofCytoML
or another utility package.