@T.timeit<EOL><INDENT>def align(self, input_path, output_path, directions, pipeline, <EOL>filter_minimum):<DEDENT>
<EOL>with tempfile.NamedTemporaryFile(prefix='<STR_LIT>', suffix='<STR_LIT>') as fwd_fh:<EOL><INDENT>fwd_conv_file = fwd_fh.name<EOL>with tempfile.NamedTemporaryFile(prefix='<STR_LIT>', suffix='<STR_LIT>') as rev_fh:<EOL><INDENT>rev_conv_file = rev_fh.name<EOL>alignments = self._hmmalign(<EOL>input_path,<EOL>directions,<EOL>pipeline,<EOL>fwd_conv_file,<EOL>rev_conv_file)<EOL>alignment_result = self.alignment_correcter(alignments,<EOL>output_path,<EOL>filter_minimum)<EOL>return alignment_result<EOL><DEDENT><DEDENT>
align - Takes input path to fasta of unaligned reads, aligns them to
        a HMM, and returns the aligned reads in the output path

        Parameters
        ----------
        input_path : str
        output_path : str
        reverse_direction : dict
            A dictionary of read names, with the entries being the complement
            strand of the read (True = forward, False = reverse)
        pipeline : str
            Either "P" or "D" corresponding to the protein and nucleotide (DNA)
            pipelines, respectively.


        Returns
        -------
        N/A - output alignment path known.