code: def top_result(self):
          
  
          if self.is_missing:
              return None
  
          df_perfect_matches = self.df[(self.df['coverage'] == 1.0) & (self.df['pident'] == 100.0)]
          if df_perfect_matches.shape[0]:
              self.is_perfect_match = True
              return BlastReader.df_first_row_to_dict(df_perfect_matches)
  
          # Return the result with the highest bitscore.
          # This is the first result in dataframe since the df is ordered by
          # bitscore in descending order.
          result_dict = BlastReader.df_first_row_to_dict(self.df)
          result_trunc = BlastReader.is_blast_result_trunc(qstart=result_dict['qstart'],
                                                           qend=result_dict['qend'],
                                                           sstart=result_dict['sstart'],
                                                           send=result_dict['send'],
                                                           qlen=result_dict['qlen'],
                                                           slen=result_dict['slen'])
          self.is_trunc = result_trunc
          return result_dict
docs: Return top `blastn` result
          Try to find a 100% identity and coverage result (perfect match).
          If one does not exist, then retrieve the result with the highest bitscore.
  
          Returns:
              Ordered dict of BLASTN results or None if no BLASTN results generated