FCM Library Documentation¶
Classes and functions from fcm¶
setup all things exported from FCM
- class fcm.FCMdata(name, pnts, channels, scatters=None, notes=None)¶
Object representing flow cytometry data FCMdata.pnts : a numpy array of data points FCMdata.channels : a list of which markers/scatters are on which column of the array. FCMdata.scatters : a list of which indexes in fcmdata.channels are scatters
- add_view(node)¶
add a new node to the view tree
- boundary_events()¶
returns dictionary of fraction of events in first and last channel for each channel
- channels¶
- compensate(sidx=None, spill=None)¶
Compensate the fcm data
- copy()¶
return a copy of fcm data object
- current_node¶
return the current node
- export(file_name)¶
export out current view to a fcs file
- gate(g, chan=None)¶
return gated region of fcm data
- get_channel_by_name(channels)¶
Return the data associated with specific channel names
- get_cur_node()¶
get current node
- get_markers()¶
return the data associated with all the markers
- get_spill()¶
return the spillover matrix from the original fcs used in compisating
- hyperlog(channels, b, d, r, order=2, intervals=1000.0)¶
return hyperlog transformed channels
- log(channels=None)¶
return log base 10 transformed channels
- logicle(channels=None, T=262144, m=4.5, r=None, scale_max=100000.0, scale_min=0)¶
return logicle transformed channels
- name_to_index(channels)¶
Return the channel indexes for the named channels
- subsample(s)¶
return subsampled/sliced fcm data
- summary()¶
returns summary of current view
- view()¶
return the current view of the data
- visit(name)¶
Switch current view of the data
- class fcm.FCMcollection(name, fcms=None, notes=None)¶
Represent collection of FCMdata objects. Attributes: note = collection level annotations tree = tree of operations
- check_names()¶
Checks for channel name consistency.
Returns dictionary of (fcmcollecion.name, [bool] | dictionary) where True = all fcm have same name for the channel and False = at least one different name.
- classify(mixture)¶
classify each fcs object in the collection using a mixture model
- compensate(*args, **kwargs)¶
apply compensation to the fcs objects in a collection
- fit(model, *args, **kwargs)¶
fit a mixture model to each fcs object in a collection
- gate(*args, **kwargs)¶
apply a gate to the fcs objects in a collection
- keys() → list of D's keys¶
- log(*args, **kwargs)¶
apply log transform the fcs objects in the collection
- logicle(*args, **kwargs)¶
apply logicle transform to the fcs objects in the collection
- summary()¶
produce summary statitsics for each fcs object in the collection
- to_list()¶
return a list of the fcmdata objects contained in the collection
- class fcm.PolyGate(vert, channels, name=None)¶
An object representing a polygonal gatable region
- gate(fcm, chan=None, invert=False, name=None)¶
return gated region of FCM data
- class fcm.QuadGate(vert, channels, name=None)¶
An object to divide a region to four quadrants
- gate(fcm, chan=None, name=None, _full=False)¶
return gated region
- class fcm.IntervalGate(vert, channels, name=None)¶
An objeect to return events within an interval in any one channel.
- gate(fcm, chan=None, name=None)¶
return interval region.
- class fcm.ThresholdGate(vert, channels, op='g', name=None)¶
an object to return events above or below a threshold in any one channel
- gate(fcm, chan=None, op=None, name=None)¶
return all events greater (or less) than a threshold allowed op are ‘g’ (greater) or ‘l’ (less)
- class fcm.FCSreader(filename, transform='logicle', sidx=None, spill=None)¶
class to hold object to read and parse fcs files. main usage is to get a FCMdata object out of a fcs file
- fix_lmd(offset, start, stop)¶
function to handle lmd counting differently then most other FCS data
- get_FCMdata(auto_comp=True, **kwargs)¶
Return the next FCM data set stored in a FCS file
- parse_analysis(offset, start, stop)¶
return parsed analysis segment of fcs file
- parse_ascii_data(offset, start, stop, bitwidth, dtype, tot, order)¶
Parse out ascii encoded data from fcs file
- parse_data(offset, start, stop, text)¶
return numpy.array of data segment of fcs file
- parse_float_data(offset, start, stop, dtype, tot, order)¶
Parse out and return float list data from fcs file
- parse_header(offset)¶
Parse the FCM data in fcs file at the offset (supporting multiple data segments in a file
- parse_int_data(offset, start, stop, bitwidth, drange, tot, order)¶
Parse out and return integer list data from fcs file
- parse_text(offset, start, stop)¶
return parsed text segment of fcs file
- read_bytes(offset, start, stop)¶
Read in bytes from start to stop inclusive.
- class fcm.Annotation(annotations=None)¶
Annotation object for storing metadata about FCM data
- copy() → a shallow copy of D¶
- class fcm.FlowjoWorkspace(tubes, comp=None)¶
Object representing the files, gates, and compensation matricies from a flowjo xml worksapce
- file_names¶
- gates¶
- logicle(T=262144, m=4.5, r=None, w=0.5, scale_max=100000.0)¶
convert gate cordinates for all tubes into logicle scale from linear scale
- pprint()¶
- exception fcm.BadFCMPointDataTypeError(data, message)¶
Exception raised on bad FCM data type
data: the wrong data message: explanation of the error
- exception fcm.UnimplementedFcsDataMode(mode)¶
Exception raised on unimplemented data modes in fcs files
mode: mode
- exception fcm.CompensationError(message)¶
Exception raised on problems with compensation
message: explanation of the error
- fcm.generate_f_score_gate(neg_smaple, pos_sample, chan, beta=1, theta=2, high=True)¶
given a negative and a positive sample, calculate the ‘optimal’ threshold gate position from aproximate f-score calculation
- fcm.logicle(fcm, channels, T, m, r=None, scale_max=100000.0, scale_min=0, w=None, rquant=None)¶
return logicle transformed points in fcm data for channels listed
- fcm.hyperlog(fcm, channels, b, d, r, order=2, intervals=1000.0)¶
- fcm.loadFCS(filename, transform='logicle', auto_comp=True, spill=None, sidx=None, **kwargs)¶
Load and return a FCM data object from an FCS file
- fcm.loadMultipleFCS(files, transform='logicle', auto_comp=True, spill=None, sidx=None, **kwargs)¶
- fcm.load_compensate_matrix(file_name)¶
Load a compensation matrix from a text file like those generated by flowjo Returns a list of markers and a compensation matrix
- fcm.load_flowjo_xml(fh)¶
create a FlowjoWorkspace object from a xml file
Graphics convience functions provided by fcm.graphics¶
- fcm.graphics.pair_plot(data, savefile=None, display=True, **kwargs)¶
- fcm.graphics.pseudocolor(fcm, indices, nrows=1, ncols=1, s=1, edgecolors='none', savefile=None, display=True, **kwargs)¶
Plot a pseudocolor.
indices = list of marker index pairs nrows = number of rows to plot ncols = number of cols to plot nrows * ncols should be >= len(indices) display = boolean indicating whether to show plot save = filename to save plot (e.g. ‘x.png’) **kwargs are passed on to pylab.scatter
- fcm.graphics.hist(fcms, index, savefile=None, display=True, **kwargs)¶
Plot overlay histogram.
fcms is a list of FCMData objects/arrays index is channel to plot
- fcm.graphics.pseudocolors(fcm, savefile=None, display=True, **kwargs)¶
PLot scatter matrix of all pseudocolors.
- fcm.graphics.contour(data, indices, savefile=None, display=True, **kwargs)¶
- fcm.graphics.bilinear_interpolate(x, y, bins=None)¶
Returns interpolated density values on points (x, y).
- fcm.graphics.trilinear_interpolate(x, y, z, bins=None)¶
Returns interpolated density values on points (x, y, z).
- fcm.graphics.set_logicle(ax, xy, T=262144, m=4.5, w=0.5, scale_max=100000)¶
- fcm.graphics.plot_gate(data, gate, ax, chan=None, name=None, **kwargs)¶
wrapper around several plots aimed at plotting gates (and gating at the same time) see the wrapped functions plot_ploy_gate, plot_threshold_gate, plot_threshold_hist for more information
Clustering and statistical methods¶
- class fcm.statistics.Dime(cluster=None, pi=None, mu=None, sigma=None, cmap=None)¶
DiME analysis object
- drop(target, drop=None)¶
calculate discriminitory information
- class fcm.statistics.DPCluster(pi, mu, sig)¶
Single component cluster in mixture model
- draw(n=1)¶
draw a random sample of size n form this cluster
- prob(x, logged=False, **kwargs)¶
DPCluster.prob(x): returns probability of x beloging to this mixture compoent
- class fcm.statistics.DPMixture(clusters, niter=1, m=False, s=False, identified=False)¶
collection of components that describe a mixture model
- average()¶
average over mcmc draws to try and find the ‘average’ weights, means, and covariances
- classify(x, **kwargs)¶
DPMixture.classify(x): returns the classification (which mixture) x is a member of
- draw(n)¶
draw n samples from the represented mixture model
- last(n=1)¶
return the last n (defaults to 1) mcmc draws
- log_likelihood(x)¶
return the log liklihood of x belonging to this mixture
- make_modal(tol=1e-05, maxiter=20)¶
find the modes and return a modal dp mixture
- mus(normed=False)¶
DPMixture.mus(): returns an array of all cluster means
- pis()¶
return an array of all cluster weights/proportions
- prob(x)¶
returns an array of probabilities of x being in each component of the mixture
- sigmas(normed=False)¶
DPMixture.sigmas(): returns an array of all cluster variance/covariances
- class fcm.statistics.ModalDPMixture(clusters, cmap, modes, m=False, s=False)¶
collection of modal components that describe a mixture model
- classify(x, **kwargs)¶
ModalDPMixture.classify(x): returns the classification (which mixture) x is a member of
- modes()¶
ModalDPMixture.modes(): return an array of mode locations
- prob(x)¶
returns an array of probabilities of x being in each mode of the modal mixture
- class fcm.statistics.DPMixtureModel(nclusts, niter=1000, burnin=100, last=None, type='mcmc')¶
Fits a DP Mixture model to a fcm dataset.
- fit(fcmdata, verbose=False)¶
- get_class()¶
get the last classification from the model
- get_results()¶
get the results of the fitted mixture model
- load_mu(mu)¶
- load_pi(pi)¶
- load_ref(ref)¶
- load_sigma(sigma)¶
- step(verbose=False)¶
- class fcm.statistics.HDPMixtureModel(nclusts, niter=1000, burnin=100, last=None, type='mcmc')¶
HDPMixtureModel(nclusts, niter=1000, burnin= 100, last= None) nclusts = number of clusters to fit niter = number of mcmc itterations burning = number of mcmc burnin itterations last = number of mcmc itterations to draw samples from. if None last = niter
- fit(datasets, verbose=False, tune_interval=100)¶
- get_results()¶
get the results of the fitted mixture model
- class fcm.statistics.KMeansModel(k, niter=20, tol=1e-05)¶
KmeansModel(data, k, niter=20, tol=1e-5) kmeans clustering model
- fit(fcmdata)¶
- get_results()¶
- fcm.statistics.mvnormpdf(x, mu, va, **kwargs)¶
calculate the multi-variate normal pdf D(x, mu, sigma) -> float
- fcm.statistics.mixnormpdf(x, prop, mu, Sigma, **kwargs)¶
Mixture of multivariate normal pdfs
- fcm.statistics.mixnormrnd(pi, mu, sigma, k)¶
Generate random variables from mixture of Guassians