bp[:SCORES] = sam[:SEQ].convert_phred2illumina!.qual
end
- if sam.has_key? :NM and sam[:NM].to_i > 0
+ if sam[:NM] and sam[:NM].to_i > 0
bp[:NM] = sam[:NM]
bp[:MD] = sam[:MD]
bp[:ALIGN] = self.align_descriptors(sam)
@header[:SQ][:SN] = Hash.new unless @header[:SQ][:SN].is_a? Hash
- if @header[:SQ][:SN].has_key? seq_name
+ if @header[:SQ][:SN][seq_name]
raise SamError, "Non-unique sequence name: #{seq_name}"
else
@header[:SQ][:SN][seq_name] = hash
end
end
- if hash.has_key? :FO
+ if hash[:FO]
unless hash[:FO] =~ /^\*|[ACMGRSVTWYHKDBN]+$/
raise SamError, "Bad flow order: #{hash[:FO]}"
end
end
- if hash.has_key? :PL
+ if hash[:PL]
unless hash[:PL] =~ /^(CAPILLARY|LS454|ILLUMINA|SOLID|HELICOS|IONTORRENT|PACBIO)$/
raise SamError, "Bad platform: #{hash[:PL]}"
end
@header[:RG][:ID] = Hash.new unless @header[:RG][:ID].is_a? Hash
- if @header[:RG][:ID].has_key? id
+ if @header[:RG][:ID][id]
raise SamError, "Non-unique read group identifier: #{id}"
else
@header[:RG][:ID][id] = hash
@header[:PG][:ID] = Hash.new unless @header[:PG][:ID].is_a? Hash
- if @header[:PG][:ID].has_key? id
+ if @header[:PG][:ID][id]
raise SamError, "Non-unique program record identifier: #{id}"
else
@header[:PG][:ID][id] = hash
fields[11 .. -1].each do |field|
tag, type, val = field.split(':')
- raise SamError, "Non-unique optional tag: #{tag}" if entry.has_key? tag.to_sym
+ raise SamError, "Non-unique optional tag: #{tag}" if entry[tag.to_sym]
# A [!-~] Printable character
raise SamError, "Bad rname: #{rname}" unless rname =~ /^(\*|[!-()+-<>-~][!-~]*)$/
unless @header.empty? or rname == '*'
- unless @header[:SQ][:SN].has_key? rname.to_sym
+ unless @header[:SQ][:SN][rname.to_sym]
raise SamError, "rname not found in header hash: #{rname}"
end
end
raise SamError, "Bad rnext: #{rnext}" unless rnext =~ /^(\*|=|[!-()+-<>-~][!-~]*)$/
unless @header.empty? or rnext == '*' or rnext == '='
- unless @header[:SQ][:SN].has_key? rnext.to_sym
+ unless @header[:SQ][:SN][rnext.to_sym]
raise SamError, "rnext not found in header hash: #{rnext}"
end
end