CMS 3D CMS Logo

Functions | Variables
ValidationMatrix Namespace Reference

Functions

def add_to_blacklist (blacklist, pattern, target, blist_piece)
 
def call_compare_using_files (args)
 
def check_root_files (names_list)
 
def count_alive_processes (p_list)
 
def do_comparisons_threaded (options)
 
def do_html (options, hashing_flag, standalone)
 
def do_reports (indir)
 
def get_clean_fileanames (ref_samples, test_samples)
 
def get_filenames_from_pool (all_samples)
 
def get_roofiles_in_dir (directory)
 
def guess_blacklists (samples, ver1, ver2, hlt)
 
def guess_params (ref_filenames, test_filenames)
 
def name2globaltag (filename)
 
def name2run (filename)
 
def name2runskim (filename)
 
def name2sample (filename)
 
def name2version (filename)
 

Variables

 action
 —HASHING—## More...
 
 all_samples
 
 args
 
 argv
 
 default
 
 dest
 
 help
 
 hlt
 
 in_dir
 
 n_processes
 
 n_threads
 
 options
 
 out_dir
 
 parser
 
 ref_samples
 
 run
 
 stat_test
 
 test_samples
 
 test_threshold
 
 usage
 

Function Documentation

def ValidationMatrix.add_to_blacklist (   blacklist,
  pattern,
  target,
  blist_piece 
)

Definition at line 127 of file ValidationMatrix.py.

References cond::persistency.search().

Referenced by guess_blacklists().

127 def add_to_blacklist(blacklist, pattern, target, blist_piece):
128  int_pattern=pattern
129  int_pattern=pattern.strip()
130  flip_condition=False
131  if int_pattern[0]=='!':
132  int_pattern=int_pattern[1:]
133  flip_condition=True
134 
135  condition = search(int_pattern,target)!=None
136  if flip_condition:
137  condition = not condition
138 
139  if condition:
140  #print "Found %s in %s" %(pattern,target)
141  if blacklist!="": # if not the first, add a comma
142  blacklist+=","
143  blacklist+=blist_piece
144  #else:
145  #print " NOT Found %s in %s" %(pattern,target)
146  return blacklist
147 
148 #-------------------------------------------------------------------------------
149 
std::vector< T >::const_iterator search(const cond::Time_t &val, const std::vector< T > &container)
Definition: IOVProxy.cc:314
def add_to_blacklist(blacklist, pattern, target, blist_piece)
def ValidationMatrix.call_compare_using_files (   args)
Creates shell command to compare two files using compare_using_files.py
script and calls it.

Definition at line 274 of file ValidationMatrix.py.

References guess_blacklists(), name2globaltag(), name2version(), and edm.print().

275  """Creates shell command to compare two files using compare_using_files.py
276  script and calls it."""
277  sample, ref_filename, test_filename, options = args
278  gt = name2globaltag(ref_filename)
279  blacklists=guess_blacklists([sample],name2version(ref_filename),name2version(test_filename),options.hlt)
280  command = " compare_using_files.py "
281  command+= "%s %s " %(ref_filename,test_filename)
282  command+= " -C -R "
283  if options.do_pngs:
284  command+= " -p "
285  command+= " -o %s_%s " %(sample, gt)
286  # Change threshold to an experimental and empirical value of 10^-5
287  command+= " --specify_run "
288  if options.stat_test in ["Bin2Bin", "BinToBin"]:
289  options.test_threshold = 0.9999
290  command+= " -t %s " %options.test_threshold
291  command+= " -s %s " %options.stat_test
292 
293  # Inspect the HLT directories
294  if options.hlt:
295  command+=" -d HLT "
296 
297  if options.hash_name:
298  command += " --hash_name "
299 
300  if options.blacklist_file:
301  command += " --use_black_file "
302 
303  if options.standalone:
304  command += " --standalone "
305  if len(blacklists[sample]) >0:
306  command+= '-B %s ' %blacklists[sample]
307  print("\nExecuting -- %s" %command)
308 
309  process=call([x for x in command.split(" ") if len(x)>0])
310  return process
311 
312 
313 #--------------------------------------------------------------------------------
314 
def name2globaltag(filename)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
def call_compare_using_files(args)
def name2version(filename)
def guess_blacklists(samples, ver1, ver2, hlt)
def ValidationMatrix.check_root_files (   names_list)

Definition at line 118 of file ValidationMatrix.py.

References edm.print().

Referenced by get_clean_fileanames().

118 def check_root_files(names_list):
119  for name in names_list:
120  if not name.endswith(".root"):
121  print("File %s does not seem to be a rootfile. Please check.")
122  return False
123  return True
124 
125 #-------------------------------------------------------------------------------
126 
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
def check_root_files(names_list)
def ValidationMatrix.count_alive_processes (   p_list)

Definition at line 269 of file ValidationMatrix.py.

270  return len([p for p in p_list if p.returncode==None])
271 
272 #-------------------------------------------------------------------------------
273 
def count_alive_processes(p_list)
def ValidationMatrix.do_comparisons_threaded (   options)

Definition at line 315 of file ValidationMatrix.py.

References get_clean_fileanames(), get_filenames_from_pool(), guess_params(), createfilelist.int, list(), genParticles_cff.map, edm.print(), cond::persistency.search(), and ComparisonHelper.zip().

316 
317  n_processes= int(options.n_processes)
318 
319  ref_filenames=[]
320  test_filenames=[]
321 
322  if len(options.all_samples)>0:
323  ref_filenames,test_filenames=get_filenames_from_pool(options.all_samples)
324  else:
325  ref_filenames,test_filenames=get_clean_fileanames(options.ref_samples,options.test_samples)
326 
327  # make the paths absolute
328  ref_filenames=map(os.path.abspath,ref_filenames)
329  test_filenames=map(os.path.abspath,test_filenames)
330 
331  samples,cmssw_version1,cmssw_version2=guess_params(ref_filenames,test_filenames)
332 
333  if len(samples)==0:
334  print("No Samples found... Quitting")
335  return 0
336 
337 # blacklists=guess_blacklists(samples,cmssw_version1,cmssw_version2,options.hlt)
338 
339  # Launch the single comparisons
340  original_dir=os.getcwd()
341 
342  outdir=options.out_dir
343  if len(outdir)==0:
344  print("Creating automatic outdir:", end=' ')
345  outdir="%sVS%s" %(cmssw_version1,cmssw_version2)
346  print(outdir)
347  if len(options.input_dir)==0:
348  print("Creating automatic indir:", end=' ')
349  options.input_dir=outdir
350  print(options.input_dir)
351 
352  if not os.path.exists(outdir):
353  os.mkdir(outdir)
354  os.chdir(outdir)
355 
356  # adjust the number of threads
357  n_comparisons=len(ref_filenames)
358  if n_comparisons < n_processes:
359  print("Less comparisons than possible processes: reducing n processes to", end=' ')
360  n_processes=n_comparisons
361  #elif n_processes/n_comparisons == 0:
362  #print "More comparisons than possible processes, can be done in N rounds: reducing n processes to",
363  #original_nprocesses=n_processes
364  #first=True
365  #n_bunches=0
366  #while first or n_processes > original_nprocesses:
367  #n_processes=n_comparisons/2
368  #if n_comparisons%2 !=0:
369  #n_processes+=1
370  #first=False
371 
372  #print n_processes
373  #print n_processes
374 
375  # Test if we treat data
376  skim_name=""
377  if search("20[01]",cmssw_version1)!=None:
378  skim_name=cmssw_version1.split("_")[-1]
379 
380  running_subprocesses=[]
381  process_counter=0
382  #print ref_filenames
383 
384  ## Compare all pairs of root files
385  pool = Pool(n_processes)
386  args_iterable = [list(args) + [options] for args in zip(samples, ref_filenames, test_filenames)]
387  pool.map(call_compare_using_files, args_iterable)
388  # move the pickles on the top, hack
389  os.system("mv */*pkl .")
390 
391  os.chdir("..")
392 #-------------------------------------------------------------------------------
def guess_params(ref_filenames, test_filenames)
std::vector< T >::const_iterator search(const cond::Time_t &val, const std::vector< T > &container)
Definition: IOVProxy.cc:314
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
def get_filenames_from_pool(all_samples)
def get_clean_fileanames(ref_samples, test_samples)
def do_comparisons_threaded(options)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def ValidationMatrix.do_html (   options,
  hashing_flag,
  standalone 
)

Definition at line 421 of file ValidationMatrix.py.

References do_reports(), directories2html.make_summary_table(), and edm.print().

421 def do_html(options, hashing_flag, standalone):
422 
423  if options.reports:
424  print("Preparing reports for the single files...")
425  do_reports(options.input_dir)
426  # Do the summary page
427  aggregation_rules={}
428  aggregation_rules_twiki={}
429  # check which aggregation rules are to be used
430  if options.hlt:
431  print("Aggregating directories according to HLT rules")
432  aggregation_rules=definitions.aggr_pairs_dict['HLT']
433  aggregation_rules_twiki=definitions.aggr_pairs_twiki_dict['HLT']
434  else:
435  aggregation_rules=definitions.aggr_pairs_dict['reco']
436  aggregation_rules_twiki=definitions.aggr_pairs_twiki_dict['reco']
437  table_html = make_summary_table(options.input_dir,aggregation_rules,aggregation_rules_twiki, hashing_flag, standalone)
438 
439  # create summary html file
440  ofile = open("RelMonSummary.html","w")
441  ofile.write(table_html)
442  ofile.close()
443 
444 #-------------------------------------------------------------------------------
445 
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
def do_html(options, hashing_flag, standalone)
def make_summary_table(indir, aggregation_rules, aggregation_rules_twiki, hashing_flag, standalone_flag)
def ValidationMatrix.do_reports (   indir)

Definition at line 393 of file ValidationMatrix.py.

References createfilelist.int, and edm.print().

Referenced by do_html().

393 def do_reports(indir):
394  #print indir
395  os.chdir(indir)
396  pkl_list=[x for x in os.listdir("./") if ".pkl" in x]
397  running_subprocesses=[]
398  n_processes=int(options.n_processes)
399  process_counter=0
400  for pklfilename in pkl_list:
401  command = "compare_using_files.py "
402  command+= "-R "
403  if options.do_pngs:
404  command+= " -p "
405  command+= "-P %s " %pklfilename
406  command+= "-o %s " %pklfilename[:-4]
407  print("Executing %s" %command)
408  process=call([x for x in command.split(" ") if len(x)>0])
409  process_counter+=1
410  # add it to the list
411  running_subprocesses.append(process)
412  if process_counter>=n_processes:
413  process_counter=0
414  for p in running_subprocesses:
415  #print "Waiting for %s" %p.name
416  p.wait()
417 
418  os.chdir("..")
419 
420 #-------------------------------------------------------------------------------
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
def ValidationMatrix.get_clean_fileanames (   ref_samples,
  test_samples 
)

Definition at line 254 of file ValidationMatrix.py.

References check_root_files(), cmsRelvalreport.exit, genParticles_cff.map, and edm.print().

Referenced by do_comparisons_threaded().

254 def get_clean_fileanames(ref_samples,test_samples):
255  # Process the samples starting from the names
256  ref_filenames=map(lambda s:s.strip(),ref_samples.split(","))
257  test_filenames=map(lambda s:s.strip(),test_samples.split(","))
258 
259  if len(ref_filenames)!=len(test_filenames):
260  print("The numebr of reference and test files does not seem to be the same. Please check.")
261  exit(2)
262 
263  if not (check_root_files(ref_filenames) and check_root_files(test_filenames)):
264  exit(2)
265  return ref_filenames,test_filenames
266 
267 #-------------------------------------------------------------------------------
268 
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
def check_root_files(names_list)
def get_clean_fileanames(ref_samples, test_samples)
def ValidationMatrix.get_filenames_from_pool (   all_samples)

Definition at line 200 of file ValidationMatrix.py.

References get_roofiles_in_dir(), utils.make_files_pairs(), edm.print(), and ComparisonHelper.zip().

Referenced by do_comparisons_threaded().

200 def get_filenames_from_pool(all_samples):
201 
202  # get a list of the files
203  files_list=get_roofiles_in_dir(all_samples)
204 
205  if len(files_list)==0:
206  print("Zero files found in directory %s!" %all_samples)
207  return [],[]
208 
209  # Are they an even number?
210  for name in files_list:
211  print("* ",name)
212  if len(files_list)%2!=0:
213  print("The numbuer of file is not even... Trying to recover a catastrophe.")
214 
215  files_list=make_files_pairs(files_list)
216 
217  # Try to couple them according to their sample
218  ref_filenames=[]
219  test_filenames=[]
220  #files_list.sort(key=name2version)
221  #files_list.sort(key=name2sample)
222  #files_list.sort(key=name2run)
223  for iname in range(len(files_list)):
224  filename=files_list[iname]
225  if iname%2==0:
226  ref_filenames.append(filename)
227  else:
228  test_filenames.append(filename)
229 
230  print("The guess would be the following:")
231  for ref,test in zip(ref_filenames,test_filenames):
232  refbasedir=os.path.dirname(ref)
233  testbasedir=os.path.dirname(test)
234  dir_to_print=refbasedir
235  if refbasedir!=testbasedir:
236  dir_to_print="%s and %s" %(refbasedir,testbasedir)
237  print("* Directory: %s " %dir_to_print)
238  refname=os.path.basename(ref)
239  testname=os.path.basename(test)
240  print(" o %s" %refname)
241  print(" o %s" %testname)
242 
243  #is_ok=ask_ok("Is that ok?")
244  #if not is_ok:
245  #print "Manual input needed then!"
246  #exit(2)
247 
248 
249  return ref_filenames,test_filenames
250 
251 
252 #-------------------------------------------------------------------------------
253 
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
def get_roofiles_in_dir(directory)
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
def get_filenames_from_pool(all_samples)
def make_files_pairs(files, verbose=True)
Definition: utils.py:571
def ValidationMatrix.get_roofiles_in_dir (   directory)

Definition at line 191 of file ValidationMatrix.py.

References genParticles_cff.map, and edm.print().

Referenced by get_filenames_from_pool().

191 def get_roofiles_in_dir(directory):
192  print(directory)
193  files_list = [s for s in os.listdir(directory) if s.endswith(".root")]
194  files_list_path=map(lambda s: os.path.join(directory,s), files_list)
195 
196  return files_list_path
197 
198 #-------------------------------------------------------------------------------
199 
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
def get_roofiles_in_dir(directory)
def ValidationMatrix.guess_blacklists (   samples,
  ver1,
  ver2,
  hlt 
)
Build a blacklist for each sample accordind to a set of rules

Definition at line 150 of file ValidationMatrix.py.

References add_to_blacklist(), edm.print(), and cond::persistency.search().

Referenced by call_compare_using_files().

150 def guess_blacklists(samples,ver1,ver2,hlt):
151  """Build a blacklist for each sample accordind to a set of rules
152  """
153  blacklists={}
154  for sample in samples:
155  blacklists[sample]="FED@1,AlcaBeamMonitor@1,HLT@1,AlCaReco@1"
156 
157  # HLT
158  if hlt: #HLT
159  blacklists[sample]+=",AlCaEcalPi0@2"
160  if not search("2010+|2011+|2012+|2015+",ver1):
161  print("We are treating MC files for the HLT")
162  for pattern,blist in definitions.hlt_mc_pattern_blist_pairs:
163  blacklists[sample]=add_to_blacklist(blacklists[sample],pattern,sample,blist)
164  else:
165  print("We are treating Data files for the HLT")
166  # at the moment it does not make sense since hlt is ran already
167 
168  else: #RECO
169  #Monte Carlo
170  if not search("2010+|2011+|2012+",ver1):
171  print("We are treating MC files")
172 
173  for pattern,blist in definitions.mc_pattern_blist_pairs:
174  blacklists[sample]=add_to_blacklist(blacklists[sample],pattern,sample,blist)
175 # print "MC RECO"
176  #print blacklists[sample]
177 
178  # Data
179  else:
180  print("We are treating Data files:")
181  blacklists[sample]+=",By__Lumi__Section@-1,AlCaReco@1"
182  for pattern,blist in definitions.data_pattern_blist_pairs:
183  blacklists[sample]=add_to_blacklist(blacklists[sample],pattern,ver1,blist)
184 # print "DATA RECO: %s %s %s -->%s" %( ver1, pattern, blist, blacklists[sample])
185 
186 
187  return blacklists
188 
189 #-------------------------------------------------------------------------------
190 
std::vector< T >::const_iterator search(const cond::Time_t &val, const std::vector< T > &container)
Definition: IOVProxy.cc:314
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
def guess_blacklists(samples, ver1, ver2, hlt)
def add_to_blacklist(blacklist, pattern, target, blist_piece)
def ValidationMatrix.guess_params (   ref_filenames,
  test_filenames 
)

Definition at line 69 of file ValidationMatrix.py.

References list(), genParticles_cff.map, name2sample(), name2version(), edm.print(), cond::persistency.search(), and ComparisonHelper.zip().

Referenced by do_comparisons_threaded().

69 def guess_params(ref_filenames,test_filenames):
70 
71  if len(ref_filenames)*len(test_filenames)==0:
72  print("Empty reference and test filenames lists!")
73  return [],"",""
74 
75  samples=[]
76  ref_versions=[]
77  test_versions=[]
78 
79  for ref, test in zip(map(os.path.basename,ref_filenames),map(os.path.basename,test_filenames)):
80 
81  ref_sample=name2sample(ref)
82  ref_version=name2version(ref)
83  test_sample=name2sample(test)
84  test_version=name2version(test)
85 
86  print(" ## sample 1: %s vs sample 2: %s"%(ref_sample, test_sample))
87 
88  if ref_sample!=test_sample:
89  print("Files %s and %s do not seem to be relative to the same sample." %(ref, test))
90  # exit(2)
91 
92  # Slightly modify for data
93  if search("20[01]",ref_version)!=None:
94  ref_sample+=ref_version.split("_")[-1]
95  samples.append(ref_sample)
96 
97  # append the versions
98  ref_versions.append(ref_version)
99  test_versions.append(test_version)
100 
101  # Check if ref and test versions are always the same.
102  ref_versions=list(set(ref_versions))
103  test_versions=list(set(test_versions))
104 
105  #for versions in ref_versions,test_versions:
106  #if len(versions)!=1:
107  #print "More than one kind of CMSSW version selected (%s)" %versions
108  #exit(2)
109 
110  cmssw_version1=ref_versions[0]
111  cmssw_version2=test_versions[0]
112 
113  return samples,cmssw_version1,cmssw_version2
114 
115 
116 #-------------------------------------------------------------------------------
117 
def guess_params(ref_filenames, test_filenames)
std::vector< T >::const_iterator search(const cond::Time_t &val, const std::vector< T > &container)
Definition: IOVProxy.cc:314
def name2sample(filename)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
def name2version(filename)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def ValidationMatrix.name2globaltag (   filename)

Definition at line 63 of file ValidationMatrix.py.

References split.

Referenced by call_compare_using_files().

63 def name2globaltag(filename):
64  namebase = os.path.basename(filename)
65  return namebase.split("__")[2].split("-")[1] #returns GT from file basename
66 
67 #-------------------------------------------------------------------------------
68 
def name2globaltag(filename)
double split
Definition: MVATrainer.cc:139
def ValidationMatrix.name2run (   filename)

Definition at line 51 of file ValidationMatrix.py.

References split.

Referenced by name2runskim().

51 def name2run(filename):
52  namebase=os.path.basename(filename)
53  return namebase.split("__")[0].split("_")[2]
54 
def name2run(filename)
double split
Definition: MVATrainer.cc:139
def ValidationMatrix.name2runskim (   filename)

Definition at line 55 of file ValidationMatrix.py.

References name2run(), name2version(), and split.

55 def name2runskim(filename):
56  run=name2run(filename)
57  skim=name2version(filename).split("_")[-1]
58  # remove skim version
59  if "-v" in skim:
60  skim = skim[:skim.rfind('-v')]
61  return "%s_%s"%(run,skim)
62 
def name2run(filename)
def name2version(filename)
def name2runskim(filename)
double split
Definition: MVATrainer.cc:139
def ValidationMatrix.name2sample (   filename)

Definition at line 43 of file ValidationMatrix.py.

Referenced by guess_params().

43 def name2sample(filename):
44  namebase=os.path.basename(filename)
45  return namebase.split("__")[1]
46 
def name2sample(filename)
def ValidationMatrix.name2version (   filename)

Definition at line 47 of file ValidationMatrix.py.

Referenced by call_compare_using_files(), guess_params(), and name2runskim().

47 def name2version(filename):
48  namebase=os.path.basename(filename)
49  return namebase.split("__")[2]
50 
def name2version(filename)

Variable Documentation

ValidationMatrix.action

—HASHING—##

– USE CSS files in web access, for stand-alone usage –##

–Blacklist File –##

Definition at line 466 of file ValidationMatrix.py.

ValidationMatrix.all_samples

Definition at line 451 of file ValidationMatrix.py.

ValidationMatrix.args

Definition at line 555 of file ValidationMatrix.py.

ValidationMatrix.argv

Definition at line 25 of file ValidationMatrix.py.

ValidationMatrix.default

Definition at line 468 of file ValidationMatrix.py.

ValidationMatrix.dest

Definition at line 467 of file ValidationMatrix.py.

ValidationMatrix.help

Definition at line 469 of file ValidationMatrix.py.

ValidationMatrix.hlt
ValidationMatrix.in_dir

Definition at line 454 of file ValidationMatrix.py.

ValidationMatrix.n_processes

Definition at line 452 of file ValidationMatrix.py.

ValidationMatrix.n_threads

Definition at line 455 of file ValidationMatrix.py.

ValidationMatrix.options

Definition at line 555 of file ValidationMatrix.py.

ValidationMatrix.out_dir

Definition at line 453 of file ValidationMatrix.py.

ValidationMatrix.parser

Definition at line 463 of file ValidationMatrix.py.

ValidationMatrix.ref_samples

Definition at line 449 of file ValidationMatrix.py.

ValidationMatrix.run

Definition at line 456 of file ValidationMatrix.py.

ValidationMatrix.stat_test

Definition at line 457 of file ValidationMatrix.py.

ValidationMatrix.test_samples

Definition at line 450 of file ValidationMatrix.py.

ValidationMatrix.test_threshold

Definition at line 458 of file ValidationMatrix.py.

ValidationMatrix.usage

Definition at line 463 of file ValidationMatrix.py.