Пример #1
0
    def __init__(self, screen_file):
        """
        Create a new FastqscreenData instance

        """
        TabFile.__init__(self,
                         column_names=(
                             'Library',
                             '%Unmapped',
                             '%One_hit_one_library',
                             '%Multiple_hits_one_library',
                             '%One_hit_multiple_libraries',
                             '%Multiple_hits_multiple_libraries',
                         ))
        self._screen_file = os.path.abspath(screen_file)
        self._version = None
        self._no_hits = None
        # Read in data
        with open(self._screen_file, 'r') as fp:
            for line in fp:
                line = line.strip()
                if line.startswith('#Fastq_screen version:'):
                    self._version = line.split()[2]
                    continue
                elif line.startswith('Library') or line.startswith('Genome'):
                    tabfile = TabFile(column_names=line.split())
                    continue
                elif line.startswith('%Hit_no_libraries:') or \
                     line.startswith('%Hit_no_genomes:'):
                    self._no_hits = float(line.split()[-1])
                    continue
                elif not line or \
                   line.startswith('#') or \
                   line.startswith('%'):
                    continue
                tabfile.append(tabdata=line)
        # Handle different terminology for different versions
        if tabfile.header()[0] == 'Library':
            library = 'Library'
            unmapped = '%Unmapped'
            one_hit_one_library = '%One_hit_one_library'
            multiple_hits_one_library = '%Multiple_hits_one_library'
            one_hit_multiple_libraries = '%One_hit_multiple_libraries'
            multiple_hits_multiple_libraries = '%Multiple_hits_multiple_libraries'
        elif tabfile.header()[0] == 'Genome':
            library = 'Genome'
            unmapped = '%Unmapped'
            one_hit_one_library = '%One_hit_one_genome'
            multiple_hits_one_library = '%Multiple_hits_one_genome'
            one_hit_multiple_libraries = '%One_hit_multiple_genomes'
            multiple_hits_multiple_libraries = '%Multiple_hits_multiple_genomes'
        # Copy data to main object
        for line in tabfile:
            data = [
                line[library], line[unmapped], line[one_hit_one_library],
                line[multiple_hits_one_library],
                line[one_hit_multiple_libraries],
                line[multiple_hits_multiple_libraries]
            ]
            self.append(data=data)
Пример #2
0
    def __init__(self,f,multiline=False):
        """
        Create a new MetricsSummary instance

        Arguments:
          f (str): path to the 'metrics_summary.csv' file
          multiline (bool): if True then expect multiple lines
            of data (default is to expect a single line of
            data)
        """
        # Multi-line summary?
        self._multiline = multiline
        # Read in data from the file
        with open(f,'rt') as fp:
            s = fp.read()
        self._data = dict()
        s = s.strip().split('\n')
        if not self._multiline and len(s) != 2:
            raise Exception("%s: MetricsSummary expects 2 lines (or specify "
                            "multi-line mode)" % f)
        # Set up the tabfile instance
        TabFile.__init__(self,
                         column_names=self._tokenise(s[0]),
                         delimiter=',')
        # Add the data
        for line in s[1:]:
            self.append(data=self._tokenise(line))
    def __init__(self,screen_file):
        """
        Create a new FastqscreenData instance

        """
        TabFile.__init__(self,
                         column_names=('Library',
                                       '%Unmapped',
                                       '%One_hit_one_library',
                                       '%Multiple_hits_one_library',
                                       '%One_hit_multiple_libraries',
                                       '%Multiple_hits_multiple_libraries',))
        self._screen_file = os.path.abspath(screen_file)
        self._version = None
        self._no_hits = None
        # Read in data
        with open(self._screen_file,'r') as fp:
            for line in fp:
                line = line.strip()
                if line.startswith('#Fastq_screen version:'):
                    self._version = line.split()[2]
                    continue
                elif line.startswith('Library') or line.startswith('Genome'):
                    tabfile = TabFile(column_names=line.split())
                    continue
                elif line.startswith('%Hit_no_libraries:') or \
                     line.startswith('%Hit_no_genomes:'):
                    self._no_hits = float(line.split()[-1])
                    continue
                elif not line or \
                   line.startswith('#') or \
                   line.startswith('%'):
                    continue
                tabfile.append(tabdata=line)
        # Handle different terminology for different versions
        if tabfile.header()[0] == 'Library':
            library = 'Library'
            unmapped = '%Unmapped'
            one_hit_one_library = '%One_hit_one_library'
            multiple_hits_one_library = '%Multiple_hits_one_library'
            one_hit_multiple_libraries = '%One_hit_multiple_libraries'
            multiple_hits_multiple_libraries = '%Multiple_hits_multiple_libraries'
        elif tabfile.header()[0] == 'Genome':
            library = 'Genome'
            unmapped = '%Unmapped'
            one_hit_one_library = '%One_hit_one_genome'
            multiple_hits_one_library = '%Multiple_hits_one_genome'
            one_hit_multiple_libraries = '%One_hit_multiple_genomes'
            multiple_hits_multiple_libraries = '%Multiple_hits_multiple_genomes'
        # Copy data to main object
        for line in tabfile:
            data = [line[library],
                    line[unmapped],
                    line[one_hit_one_library],
                    line[multiple_hits_one_library],
                    line[one_hit_multiple_libraries],
                    line[multiple_hits_multiple_libraries]]
            self.append(data=data)
    def __init__(self,f):
        """
        Create a new AtacSummary instance

        Arguments:
          f (str): path to the 'summary.csv' file
        """
        TabFile.__init__(self,
                         filen=f,
                         first_line_is_header=True,
                         delimiter=',')
    def __init__(self, summary_file=None):
        """
        Create a new FastqcSummary instance

        """
        TabFile.__init__(self, column_names=("Status", "Module", "File"))
        if summary_file:
            summary_file = os.path.abspath(summary_file)
            with open(summary_file, "r") as fp:
                for line in fp:
                    line = line.strip()
                    self.append(tabdata=line)
        self._summary_file = summary_file
Пример #6
0
    def __init__(self, summary_file=None):
        """
        Create a new FastqcSummary instance

        """
        TabFile.__init__(self, column_names=(
            'Status',
            'Module',
            'File',
        ))
        if summary_file:
            summary_file = os.path.abspath(summary_file)
            with open(summary_file, 'r') as fp:
                for line in fp:
                    line = line.strip()
                    self.append(tabdata=line)
        self._summary_file = summary_file
    def __init__(self,screen_file):
        """
        Create a new FastqscreenData instance

        """
        TabFile.__init__(self,
                         column_names=('Library',
                                       '%Unmapped',
                                       '%One_hit_one_library',
                                       '%Multiple_hits_one_library',
                                       '%One_hit_multiple_libraries',
                                       '%Multiple_hits_multiple_libraries',))
        self._screen_file = os.path.abspath(screen_file)
        self._version = None
        self._no_hits = None
        # Read in data
        with open(self._screen_file,'r') as fp:
            for line in fp:
                line = line.strip()
                if line.startswith('#Fastq_screen version:'):
                    self._version = line.split()[2]
                    continue
                elif line.startswith('Library'):
                    tabfile = TabFile(column_names=line.split())
                    continue
                elif line.startswith('%Hit_no_libraries:'):
                    self._no_hits = float(line.split()[-1])
                    continue
                elif not line or \
                   line.startswith('#') or \
                   line.startswith('%'):
                    continue
                tabfile.append(tabdata=line)
        # Move data to main object
        for line in tabfile:
            data = []
            for col in self.header():
                data.append(line[col])
            self.append(data=data)