def gblocks(self,<EOL>new_path = None,<EOL>seq_type = '<STR_LIT>' or '<STR_LIT>'):
<EOL>if new_path is None: final = self.__class__(new_temp_path())<EOL>else:                final = self.__class__(new_path)<EOL>orig_name_to_temp = {seq.description: '<STR_LIT:name>' + str(i) for i,seq in enumerate(self)}<EOL>temp_name_to_orig = {v: k for k, v in orig_name_to_temp.items()}<EOL>temp_fasta = self.rename_sequences(orig_name_to_temp)<EOL>if seq_type == '<STR_LIT>': t_option = "<STR_LIT>"<EOL>if seq_type == '<STR_LIT>': t_option = "<STR_LIT>"<EOL>result = sh.gblocks91(temp_fasta.path, t_option, '<STR_LIT>', "<STR_LIT>", "<STR_LIT>", "<STR_LIT>", _ok_code=[<NUM_LIT:0>,<NUM_LIT:1>])<EOL>created_file = temp_fasta.path + '<STR_LIT>'<EOL>assert os.path.exists(created_file)<EOL>if "<STR_LIT>" in result.stdout: raise Exception("<STR_LIT>")<EOL>temp_fasta.rename_sequences(temp_name_to_orig, final)<EOL>return final<EOL>
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.