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,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
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)