File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -51,7 +51,6 @@ def reload_source_json!
5151 # String (or +nil+)
5252 def external_sra_to_biosample ( acc )
5353 sr = SequencingExperiment . by_sra ( acc )
54- sr . reload_metadata! unless sr . metadata_xml . present?
5554 ephemeral_report << ( sr . try ( :ephemeral_report ) || 'No SRA experiments' )
5655 sr . try ( :biosample_accession )
5756 end
@@ -67,8 +66,7 @@ def external_biosample_to_sra(acc)
6766 ng = Nokogiri ::XML ( body )
6867 ng . xpath ( '//result/entries/entry' ) . map do |exp |
6968 sra_acc = exp [ 'acc' ] || exp [ 'id' ] or next
70- sr = SequencingExperiment . find_or_create_by ( sra_accession : sra_acc )
71- sr . reload_metadata! unless sr . metadata_xml . present?
69+ sr = SequencingExperiment . by_sra ( sra_acc )
7270 ephemeral_report << ( sr . try ( :ephemeral_report ) || 'No SRA experiments' )
7371 end
7472 end
Original file line number Diff line number Diff line change @@ -10,11 +10,15 @@ class SequencingExperiment < ApplicationRecord
1010
1111 class << self
1212 def by_biosample ( acc )
13- SequencingExperiment . where ( biosample_accession : acc )
13+ SequencingExperiment
14+ . where ( biosample_accession : acc )
15+ . tap ( &:load_and_save_metadata! )
1416 end
1517
1618 def by_sra ( acc )
17- SequencingExperiment . find_or_create_by ( sra_accession : acc )
19+ SequencingExperiment
20+ . find_or_create_by ( sra_accession : acc )
21+ . tap ( &:load_and_save_metadata! )
1822 end
1923 end
2024
@@ -61,6 +65,13 @@ def amplicon?
6165 %w[ amplicon ] . include? strategy . downcase
6266 end
6367
68+ def load_and_save_metadata!
69+ unless metadata_xml . present?
70+ reload_metadata!
71+ save
72+ end
73+ end
74+
6475 private
6576
6677 def load_from_sra_accession
You can’t perform that action at this time.
0 commit comments