code: def gblocks(self,
                  new_path = None,
                  seq_type = 'nucl' or 'prot'):
          
          # Temporary path #
          if new_path is None: final = self.__class__(new_temp_path())
          else:                final = self.__class__(new_path)
          # Mapping every sequence name with a random name #
          orig_name_to_temp = {seq.description: 'name' + str(i) for i,seq in enumerate(self)}
          temp_name_to_orig = {v: k for k, v in orig_name_to_temp.items()}
          # Rename every sequence with a random name #
          temp_fasta = self.rename_sequences(orig_name_to_temp)
          # Options #
          if seq_type == 'nucl': t_option = "-t=d"
          if seq_type == 'prot': t_option = "-t=p"
          # Run it #
          result = sh.gblocks91(temp_fasta.path, t_option, '-p=n', "-b4=3", "-b3=20", "-b5=a", _ok_code=[0,1])
          created_file = temp_fasta.path + '-gb'
          assert os.path.exists(created_file)
          # Check errors #
          if "Execution terminated" in result.stdout: raise Exception("gblocks crashed again.")
          # Back #
          temp_fasta.rename_sequences(temp_name_to_orig, final)
          # Return #
          return final
docs: Apply the gblocks filtering algorithm to the alignment.
          See http://molevol.cmima.csic.es/castresana/Gblocks/Gblocks_documentation.html
          Need to rename all sequences, because it will complain with long names.