Esempio n. 1
0
    def _align(self, fastq_path, output_dir, fastq2_path=None):
        # Gather default arguments.
        sort_type = 'Unsorted' if self._external_sort else 'SortedByCoordinate'

        args = {
            '--twopassMode': ('Basic', ),
            '--outReadsUnmapped': ('None', ),
            '--outSAMtype': ('BAM', sort_type),
            '--runThreadN': (self._threads, ),
            '--chimSegmentMin': (self._min_flank, ),
            '--outSAMstrandField': ('intronMotif', )  # XS field for Stringtie.
        }

        star_align(fastq_path=fastq_path,
                   fastq2_path=fastq2_path,
                   index_path=self._reference.index_path,
                   output_dir=output_dir,
                   extra_args=toolz.merge(args, self._extra_args))

        # If not yet sorted, sort bam file using samtools/sambamba.
        sorted_bam_path = output_dir / 'Aligned.sortedByCoord.out.bam'

        if sort_type == 'Unsorted':
            unsorted_bam_path = output_dir / 'Aligned.out.bam'
            sort_bam(unsorted_bam_path, sorted_bam_path, threads=self._threads)
            unsorted_bam_path.unlink()
Esempio n. 2
0
    def _align(self, fastq_path, output_dir, fastq2_path=None):
        # Gather default arguments.
        sort_type = 'Unsorted' if self._external_sort else 'SortedByCoordinate'

        args = {
            '--twopassMode': ('Basic', ),
            '--outReadsUnmapped': ('None', ),
            '--outSAMtype': ('BAM', sort_type),
            '--runThreadN': (self._threads, ),
            '--chimSegmentMin': (self._min_flank, ),
            '--outSAMstrandField': ('intronMotif', )  # XS field for Stringtie.
        }

        star_align(
            fastq_path=fastq_path,
            fastq2_path=fastq2_path,
            index_path=self._reference.index_path,
            output_dir=output_dir,
            extra_args=toolz.merge(args, self._extra_args))

        # If not yet sorted, sort bam file using samtools/sambamba.
        sorted_bam_path = output_dir / 'Aligned.sortedByCoord.out.bam'

        if sort_type == 'Unsorted':
            unsorted_bam_path = output_dir / 'Aligned.out.bam'
            sort_bam(unsorted_bam_path, sorted_bam_path, threads=self._threads)
            unsorted_bam_path.unlink()
Esempio n. 3
0
    def test_basic_call(self, mocker, star_align_kws):
        """Tests example call."""

        mock_run = mocker.patch.object(star, 'run_command')

        star.star_align(**star_align_kws)

        mock_run.assert_called_once_with(args=[
            'STAR', '--genomeDir', 'index', '--outFileNamePrefix',
            str(star_align_kws['output_dir']) + '/', '--readFilesIn',
            'sample.R1.fastq.gz', '--readFilesCommand', 'gunzip', '-c'
        ],
                                         log_path=None)
Esempio n. 4
0
    def test_basic_call(self, mocker, star_align_kws):
        """Tests example call."""

        mock_run = mocker.patch.object(star, 'run_command')

        star.star_align(**star_align_kws)

        mock_run.assert_called_once_with(
            args=[
                'STAR', '--genomeDir', 'index', '--outFileNamePrefix',
                str(star_align_kws['output_dir']) + '/', '--readFilesIn',
                'sample.R1.fastq.gz', '--readFilesCommand', 'gunzip', '-c'
            ],
            log_path=None)
Esempio n. 5
0
    def test_basic_without_gzip(self, mocker, star_align_kws):
        """Tests example without gzipped input."""

        mock_run = mocker.patch.object(star, 'run_command')

        star_align_kws['fastq_path'] = Path('sample.R1.fastq')
        star.star_align(**star_align_kws)

        mock_run.assert_called_once_with(args=[
            'STAR', '--genomeDir', 'index', '--outFileNamePrefix',
            str(star_align_kws['output_dir']) + '/', '--readFilesIn',
            'sample.R1.fastq'
        ],
                                         log_path=None)
Esempio n. 6
0
    def test_basic_without_gzip(self, mocker, star_align_kws):
        """Tests example without gzipped input."""

        mock_run = mocker.patch.object(star, 'run_command')

        star_align_kws['fastq_path'] = Path('sample.R1.fastq')
        star.star_align(**star_align_kws)

        mock_run.assert_called_once_with(
            args=[
                'STAR', '--genomeDir', 'index', '--outFileNamePrefix',
                str(star_align_kws['output_dir']) + '/', '--readFilesIn',
                'sample.R1.fastq'
            ],
            log_path=None)
Esempio n. 7
0
    def test_extra_arguments(self, mocker, star_align_kws):
        """Tests example call with extra arguments."""

        mock_run = mocker.patch.object(star, 'run_command')

        star_align_kws['extra_args'] = {'--outSAMtype': 'Unsorted'}
        star.star_align(**star_align_kws)

        mock_run.assert_called_once_with(args=[
            'STAR', '--genomeDir', 'index', '--outFileNamePrefix',
            str(star_align_kws['output_dir']) + '/', '--readFilesIn',
            'sample.R1.fastq.gz', '--outSAMtype', 'Unsorted',
            '--readFilesCommand', 'gunzip', '-c'
        ],
                                         log_path=None)
Esempio n. 8
0
    def test_extra_arguments(self, mocker, star_align_kws):
        """Tests example call with extra arguments."""

        mock_run = mocker.patch.object(star, 'run_command')

        star_align_kws['extra_args'] = {'--outSAMtype': 'Unsorted'}
        star.star_align(**star_align_kws)

        mock_run.assert_called_once_with(
            args=[
                'STAR', '--genomeDir', 'index', '--outFileNamePrefix',
                str(star_align_kws['output_dir']) + '/', '--readFilesIn',
                'sample.R1.fastq.gz', '--outSAMtype', 'Unsorted',
                '--readFilesCommand', 'gunzip', '-c'
            ],
            log_path=None)