code: def get_strain_label(entry, viral=False):
      
      def get_strain(entry):
          strain = entry['infraspecific_name']
          if strain != '':
              strain = strain.split('=')[-1]
              return strain
  
          strain = entry['isolate']
          if strain != '':
              return strain
  
          if len(entry['organism_name'].split(' ')) > 2 and not viral:
              strain = ' '.join(entry['organism_name'].split(' ')[2:])
              return strain
  
          return entry['assembly_accession']
  
      def cleanup(strain):
          strain = strain.strip()
          strain = strain.replace(' ', '_')
          strain = strain.replace(';', '_')
          strain = strain.replace('/', '_')
          strain = strain.replace('\\', '_')
          return strain
  
      return cleanup(get_strain(entry))
docs: Try to extract a strain from an assemly summary entry.
  
      First this checks 'infraspecific_name', then 'isolate', then
      it tries to get it from 'organism_name'. If all fails, it
      falls back to just returning the assembly accesion number.