presto.IO

File I/O and logging functions

presto.IO.countSeqFile(seq_file)

Counts the records in FASTA/FASTQ files

Parameters:

seq_file – FASTA or FASTQ file containing sample sequences

Returns:

Count of records in the sequence file

Return type:

int

presto.IO.countSeqSets(seq_file, field='BARCODE', delimiter=('|', '=', ','))

Identifies sets of sequences with the same ID field

Parameters:
  • seq_file – FASTA or FASTQ file containing sample sequences

  • field – Annotation field containing set IDs

  • delimiter – Tuple of delimiters for (fields, values, value lists)

Returns:

Count of unit set IDs in the sequence file

Return type:

int

presto.IO.getFileType(filename)

Determines the type of a file by file extension

Parameters:

filename – Filename

Returns:

String defining the sequence type for SeqIO operations

Return type:

str

presto.IO.getOutputHandle(in_file, out_label=None, out_dir=None, out_name=None, out_type=None)

Opens an output file handle

Parameters:
  • in_file – Input filename

  • out_label – Text to be inserted before the file extension; if None do not add a label

  • out_type – the file extension of the output file; if None use input file extension

  • out_dir – the output directory; if None use directory of input file

  • out_name – the short filename to use for the output file; if None use input file short name

Returns:

File handle

Return type:

file

presto.IO.printCount(current, step, start_time=None, task=None, end=False)

Prints a progress bar to standard out

Parameters:
  • current (int) – count of completed tasks.

  • step (int) – an int defining the progress increment to print at.

  • start_time (time.time) – task start time returned by time.time(); if None do not add run time to progress

  • task (str) – name of task to display.

  • end (bool) – if True print final log (add newline).

presto.IO.printDebug(message, debug=True, newline=False)

Prints a debug message to standard error

Parameters:
  • message (str) – message.

  • debug (bool) – if True print the message.

  • newline (bool) – prefix with a newline if True.

presto.IO.printError(message, exit=True, newline=False)

Prints an error to standard error and exits

Parameters:
  • message (str) – error message.

  • exit (bool) – if True exit after the message.

  • newline (bool) – prefix with a newline if True.

presto.IO.printLog(record, handle=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, inset=None)

Formats a dictionary into a log string

Parameters:
  • record – a dict or OrderedDict of field names mapping to values.

  • handle – the file handle to write the log to; if None do not write to file.

  • inset – minimum field name inset; if None automatically space field names.

Returns:

Formatted multi-line string in the log format.

Return type:

str

presto.IO.printMessage(message, start_time=None, end=False, width=25)

Prints a progress message to standard out

Parameters:
  • message – Current task message

  • start_time – task start time returned by time.time(); if None do not add run time to progress

  • end – If True print final message (add newline)

  • width – Maximum number of characters for messages

presto.IO.printProgress(current, total, step, start_time=None, task=None, end=False)

Prints a progress bar to standard out

Parameters:
  • current (int) – count of completed tasks.

  • total (int) – total task count.

  • step (float) – float defining the fractional progress increment to print at.

  • start_time (float) – task start time returned by time.time(); if None do not add run time to progress

  • task (str) – name of task to display.

  • end (bool) – if True print final log (add newline).

presto.IO.printWarning(message, newline=False)

Prints a warning to standard error

Parameters:
  • message (str) – warning message.

  • newline (bool) – prefix with a newline if True.

presto.IO.readPrimerFile(primer_file, replace_special=True)

Processes primer sequences from file

Parameters:
  • primer_file (str) – name of the FASTA file containing primer sequences.

  • replace_special (bool) – if True replace whitespace and pRESTO annotation delimiters with an underscore.

Returns:

Dictionary mapping primer ID to sequence.

Return type:

dict

presto.IO.readReferenceFile(ref_file)

Create a dictionary of cleaned and ungapped reference sequences.

Parameters:

ref_file – reference sequences in fasta format.

Returns:

cleaned and ungapped reference sequences;

with the key as the sequence ID and value as a Bio.SeqRecord for each reference sequence.

Return type:

dict

presto.IO.readSeqFile(seq_file, index=False, key_func=None)

Reads FASTA/FASTQ files

Parameters:
  • seq_file – FASTA or FASTQ file containing sample sequences

  • index – If True return a dictionary from SeqIO.index(); if False return an iterator from SeqIO.parse()

  • key_func – the key_function argument to pass to SeqIO.index if index=True

Returns:

an interator of SeqRecords if index=False. A dict if True.

Return type:

iter