@@ -434,8 +434,8 @@ def default_annotation
434
434
if !default_cluster . nil? && default_cluster . cell_annotations . any?
435
435
annot = default_cluster . cell_annotations . first
436
436
default_annot = "#{ annot [ :name ] } --#{ annot [ :type ] } --cluster"
437
- elsif self . study_metadata . any?
438
- metadatum = self . study_metadata . first
437
+ elsif self . cell_metadata . any?
438
+ metadatum = self . cell_metadata . first
439
439
default_annot = "#{ metadatum . name } --#{ metadatum . annotation_type } --study"
440
440
else
441
441
# annotation won't be set yet if a user is parsing metadata without clusters, or vice versa
@@ -568,7 +568,7 @@ def all_cells
568
568
# cell lists from individual expression matrices
569
569
def all_cells_array
570
570
vals = [ ]
571
- arrays = DataArray . where ( study_id : self . id , linear_data_type : 'Study' , linear_data_id : self . id , name : 'All Cells' )
571
+ arrays = DataArray . where ( study_id : self . id , linear_data_type : 'Study' , linear_data_id : self . id , name : 'All Cells' ) . order_by ( & :array_index )
572
572
if arrays . any?
573
573
arrays . each do |array |
574
574
vals += array . values
@@ -593,25 +593,23 @@ def all_expression_matrix_cells
593
593
end
594
594
595
595
# return a hash keyed by cell name of the requested study_metadata values
596
- def study_metadata_values ( metadata_name , metadata_type )
597
- metadata_objects = self . study_metadata . by_name_and_type ( metadata_name , metadata_type )
598
- vals = { }
599
- metadata_objects . each do |metadata |
600
- vals . merge! ( metadata . cell_annotations )
596
+ def cell_metadata_values ( metadata_name , metadata_type )
597
+ cell_metadatum = self . cell_metadata . by_name_and_type ( metadata_name , metadata_type )
598
+ if cell_metadatum . present?
599
+ cell_metadatum . cell_annotations
600
+ else
601
+ { }
601
602
end
602
- vals
603
603
end
604
604
605
605
# return array of possible values for a given study_metadata annotation (valid only for group-based)
606
- def study_metadata_keys ( metadata_name , metadata_type )
607
- vals = [ ]
608
- unless metadata_type == 'numeric'
609
- metadata_objects = self . study_metadata . by_name_and_type ( metadata_name , metadata_type )
610
- metadata_objects . each do |metadata |
611
- vals += metadata . values
612
- end
606
+ def cell_metadata_keys ( metadata_name , metadata_type )
607
+ cell_metadatum = self . cell_metadata . by_name_and_type ( metadata_name , metadata_type )
608
+ if cell_metadatum . present?
609
+ cell_metadatum . values
610
+ else
611
+ [ ]
613
612
end
614
- vals . uniq
615
613
end
616
614
617
615
###
@@ -1380,8 +1378,8 @@ def initialize_cluster_group_and_data_arrays(ordinations_file, user, opts={local
1380
1378
# set a default color profile if this is a numeric annotation
1381
1379
study_obj . default_options [ :color_profile ] = 'Reds'
1382
1380
end
1383
- elsif study_obj . study_metadata . any?
1384
- metadatum = study_obj . study_metadata . first
1381
+ elsif study_obj . cell_metadata . any?
1382
+ metadatum = study_obj . cell_metadata . first
1385
1383
study_obj . default_options [ :annotation ] = "#{ metadatum . name } --#{ metadatum . annotation_type } --study"
1386
1384
if metadatum . annotation_type == 'numeric'
1387
1385
# set a default color profile if this is a numeric annotation
@@ -1397,7 +1395,7 @@ def initialize_cluster_group_and_data_arrays(ordinations_file, user, opts={local
1397
1395
study_obj . save
1398
1396
1399
1397
# create subsampled data_arrays for visualization
1400
- study_metadata = CellMetadatum . where ( study_id : self . id )
1398
+ cell_metadata = CellMetadatum . where ( study_id : self . id )
1401
1399
# determine how many levels to subsample based on size of cluster_group
1402
1400
required_subsamples = ClusterGroup ::SUBSAMPLE_THRESHOLDS . select { |sample | sample < @cluster_group . points }
1403
1401
required_subsamples . each do |sample_size |
@@ -1408,7 +1406,7 @@ def initialize_cluster_group_and_data_arrays(ordinations_file, user, opts={local
1408
1406
end
1409
1407
end
1410
1408
# create study-based annotation subsamples
1411
- study_metadata . each do |metadata |
1409
+ cell_metadata . each do |metadata |
1412
1410
@cluster_group . delay . generate_subsample_arrays ( sample_size , metadata . name , metadata . annotation_type , 'study' )
1413
1411
end
1414
1412
end
@@ -1688,7 +1686,7 @@ def initialize_cell_metadata(metadata_file, user, opts={local: true})
1688
1686
1689
1687
# next, check if this is a re-parse job, in which case we need to remove all existing entries first
1690
1688
if opts [ :reparse ]
1691
- self . study_metadata . delete_all
1689
+ self . cell_metadata . delete_all
1692
1690
metadata_file . invalidate_cache_by_file_type
1693
1691
end
1694
1692
@@ -1783,7 +1781,7 @@ def initialize_cell_metadata(metadata_file, user, opts={local: true})
1783
1781
raw_vals = line . split ( /[\t ,]/ ) . map ( &:strip )
1784
1782
vals = self . sanitize_input_array ( raw_vals )
1785
1783
1786
- # assign values to correct study_metadata object
1784
+ # assign values to correct cell_metadata object
1787
1785
vals . each_with_index do |val , index |
1788
1786
unless index == name_index
1789
1787
if @metadata_data_arrays [ index ] . values . size >= DataArray ::MAX_ENTRIES
@@ -1792,9 +1790,9 @@ def initialize_cell_metadata(metadata_file, user, opts={local: true})
1792
1790
array = @metadata_data_arrays [ index ]
1793
1791
Rails . logger . info "#{ Time . now } : Saving cell metadata data array: #{ array . name } -#{ array . array_index } using #{ metadata_file . upload_file_name } :#{ metadata_file . id } in #{ self . name } "
1794
1792
array . save
1795
- new_array = metadata . study_metadata . build ( name : metadata . name , array_type : 'annotation ' , cluster_name : metadata_file . name ,
1796
- array_index : array . array_index + 1 , study_file_id : metadata_file . _id ,
1797
- study_id : self . id , values : [ ] )
1793
+ new_array = metadata . data_arrays . build ( name : metadata . name , array_type : 'annotations ' , cluster_name : metadata_file . name ,
1794
+ array_index : array . array_index + 1 , study_file_id : metadata_file . _id ,
1795
+ study_id : self . id , values : [ ] )
1798
1796
@metadata_data_arrays [ index ] = new_array
1799
1797
end
1800
1798
# determine whether or not value needs to be cast as a float or not
0 commit comments