Package: ogilo-array
⛓️ ogiloAutomating construction of oligo library sequences for oligo array synthesis.ogilotakes your table of sequences (such as a library of guide RNAs) and concatenates themwith any other nucleotide sequences you provide, Type IIS restriction sites, and PCR handles.If your table of sequences contains a column indicating subsets or groups, you can use this column to
instructogiloto add distinct PCR handles to each group. This allows you to order multiple
libraries as one oligo pool and selectively PCR each one as needed.InstallationThe easy wayInstall the pre-compiled version from PyPI:pipinstallogilo-arrayFrom sourceClone the repository, thencdinto it. Then run:pipinstall-e.UsageCallogilowith a set of sequence directives and other options:ogilo file:guide-rnas.csv:sequence:guide_name:essentiality seq:ATCGGGC:spacer re:BsmBI:f --format CSVYou tellogilowhich sequences to concatenate using the following directive format:[@]<type>:<value>[:<f1>[:<f2>[:<f3>]]]For example, file:oligos.csv:2 would instruct ogilo to take sequences from column 2 of
the file oligos.csv, and seq:ATCCCGAGAG:spacer would add the sequence ATCCCGAGAG and
include "spacer" in the oligo name.If you prepend the directive with@, then reverse complement sequences will be
automatically generated.The allowed values of<type>are as follows.Files[@]file:<filename>[:<seq_col>[:<name_col>[:<group_col>]]]Take sequences from file<filename>. If<seq_col>is provided,ogilowill use this column,
otherwise assumes column 1.<seq_col>,<name_col>,<group_col>can be column names (in which
case, the first line will be skipped) or integers (in which case, the first line will be
included).Do not mix column names and integers.If your file has a header,use column names.
If<group_col>is provided, and PCR handles are requested, then different PCR handles will
be added to each group.For example:file:guide-rnas.tsv:sequence:guide_name:essentialitywould load sequences from the fileguide-rnas.tsv, using columnsequencefor sequences,guide_namefor the names, andessentialityfor the groups (if you want different PCR handles
for each group).Constant sequences[@]seq:<sequence>[:<name>]An explicit sequence given in<sequence>, optionally with a<name>.For example:@seq:ATCGGGC:spacerType IIS restriction enzyme sites[@]re:<enzyme_name>A named Type IIS restriction enzyme site. This does not take care of overhangs for you; these can
be added as a seq component.For example:re:BsmBIOutputThe output is a TSV-formatted table with the following columns:group: The group of oligos sharing the same PCR handles.pcr_handles: The name of the PCR handle pair used (if any).length: Total oligo length.mnemonic: Adjective-noun mnemonic of oligo sequence.restriction_sites: Type IIS restriction sites which happen to be in the oligo even though they weren't requested.oligo_name: Name for the oligo, constricted by concatenating the names of the sequence components.oligo_sequence: Sequence for the oligo. Each concatenated section alternates case to allow visual checks.ExamplesSimple example showing parts being concatenated. Note that group and pcr_handles columns are empty.$ogiloseq:ATCG:s1re:BsmBIseq:GGCCTTAA:main@re:BsaIseq:CATG:s2
grouppcr_handleslengthmnemonicrestriction_sitesoligo_nameoligo_sequence28immense_memos1-BsmBI_f-main-BsaI_r-s2ATCGcgtctcGGCCTTAAgagaccCATGYou can ask for a seqment to be reverse complemented by prepending the directive with@.$ogilo@seq:ATCG:s1re:BsmBIseq:GGCCTTAA:main@re:BsaIseq:CATG:s2
grouppcr_handleslengthmnemonicrestriction_sitesoligo_nameoligo_sequence28immense_memos1-BsmBI_f-main-BsaI_r-s2CGATcgtctcGGCCTTAAgagaccCATGYou can request PCR handles. These are the outermost sections of the sequence.$ogiloseq:ATCG:s1re:BsmBIseq:GGCCTTAA:main@re:BsaIseq:CATG:s2--pcr_handles
grouppcr_handleslengthmnemonicrestriction_sitesoligo_nameoligo_sequencesans18a68defeated_actives1-BsmBI_f-main-BsaI_r-s2AGGCACTTGCTCGTACGACGatcgCGTCTCggccttaaGAGACCcatgATGTGGGCCCGGCACCTTAAYou can specify the subset of PCR handles to use. The current options areilluminafor P5/P7 or NextEra i5/i7 primers,
orsanson2018for the primers used inSanson et al.,Nat. Commun., 2018.
Here, we requestillumina, andogilodetects the extra BbsI site in the P5/P7 PCR handles.$ogiloseq:ATCG:s1re:BsmBIseq:GGCCTTAA:main@re:BsaIseq:CATG:s2--pcr_handles--handle_setillumina
grouppcr_handleslengthmnemonicrestriction_sitesoligo_nameoligo_sequencep5p769vivid_stereoBbsIs1-BsmBI_f-main-BsaI_r-s2AATGATACGGCGACCACCGAatcgCGTCTCggccttaaGAGACCcatgTCAAGCAGAAGACGGCATACGogilowill check for other spurious Type IIS restriction sites that emergeaftersequences have been concatenated. It ignores the ones you've requested.$ogiloseq:ATCG:s1re:BsmBIseq:ACCTGC:quasi_paqCI@re:BsaIseq:CATG:s2--pcr_handles--handle_setillumina
grouppcr_handleslengthmnemonicrestriction_sitesoligo_nameoligo_sequencep5p767muddy_methodBbsI;PaqCIs1-BsmBI_f-quasi_paqCI-BsaI_r-s2AATGATACGGCGACCACCGAatcgCGTCTCacctgcGAGACCcatgTCAAGCAGAAGACGGCATACGAFiles containing sequences can also be used, so long as you specify which column the sequence is coming from.$ogilore:BsmBIseq:AATTA:s1file:test/guides-RLC12_mapped-tiny.tsv:guide_sequenceseq:ATGCG:s2@re:BsmBI--pcr_handles
grouppcr_handleslengthmnemonicrestriction_sitesoligo_nameoligo_sequencesans18a84festive_enigmaBsmBI_f-s1-1-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAaacccaaacactccctttggaaATGCGgagacgATGTGGGCCCGGCACCTTAAsans18a83tipsy_classicBsmBI_f-s1-2-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAacccaaacactccctttggaaATGCGgagacgATGTGGGCCCGGCACCTTAA...sans18a79tidy_isotopeBsmBI_f-s1-19-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAaacactggtgcgcgataATGCGgagacgATGTGGGCCCGGCACCTTAAsans18a78wistful_liquidBsmBI_f-s1-20-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAacactggtgcgcgataATGCGgagacgATGTGGGCCCGGCACCTTAAogilointerprets the.csvor.tsvfile extnsion to indicate that your file is either comma- or tab-delimited,
but if the file extension is misleading you can force to read either CSV or TSV instead with the--formatoption.$ogilore:BsmBIseq:AATTA:s1file:test/guides-RLC12_mapped-tiny.txt:guide_sequenceseq:ATGCG:s2@re:BsmBI--pcr_handles--formatCSV
grouppcr_handleslengthmnemonicrestriction_sitesoligo_nameoligo_sequencesans18a84festive_enigmaBsmBI_f-s1-1-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAaacccaaacactccctttggaaATGCGgagacgATGTGGGCCCGGCACCTTAAsans18a83tipsy_classicBsmBI_f-s1-2-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAacccaaacactccctttggaaATGCGgagacgATGTGGGCCCGGCACCTTAA...sans18a79tidy_isotopeBsmBI_f-s1-19-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAaacactggtgcgcgataATGCGgagacgATGTGGGCCCGGCACCTTAAsans18a78wistful_liquidBsmBI_f-s1-20-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAacactggtgcgcgataATGCGgagacgATGTGGGCCCGGCACCTTAAOptionally, a column to take names from can be specified. Here, we're using the column calledpam_offset.$ogilore:BsmBIseq:AATTA:s1file:test/guides-RLC12_mapped-tiny.tsv:guide_sequence:pam_offsetseq:ATGCG:s2@re:BsmBI--pcr_handles
grouppcr_handleslengthmnemonicrestriction_sitesoligo_nameoligo_sequencesans18a84festive_enigmaBsmBI_f-s1-25-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAaacccaaacactccctttggaaATGCGgagacgATGTGGGCCCGGCACCTTAAsans18a83tipsy_classicBsmBI_f-s1-25-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAacccaaacactccctttggaaATGCGgagacgATGTGGGCCCGGCACCTTAA...sans18a79tidy_isotopeBsmBI_f-s1-58-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAaacactggtgcgcgataATGCGgagacgATGTGGGCCCGGCACCTTAAsans18a78wistful_liquidBsmBI_f-s1-58-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAacactggtgcgcgataATGCGgagacgATGTGGGCCCGGCACCTTAAA column to indicate grouping for different PCR handles can also be specified in addition. Here, we're using the column calledann_gene_biotype.
The different values in this column are matched with a different PCR handle pair.$ogilore:BsmBIseq:AATTA:s1file:test/guides-RLC12_mapped-tiny.tsv:guide_sequence:pam_offset:ann_gene_biotypeseq:ATGCG:s2@re:BsmBI--pcr_handles
grouppcr_handleslengthmnemonicrestriction_sitesoligo_nameoligo_sequence
rRNAsans18a84festive_enigmaBsmBI_f-s1-25-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAaacccaaacactccctttggaaATGCGgagacgATGTGGGCCCGGCACCTTAA
rRNAsans18a83tipsy_classicBsmBI_f-s1-25-s2-BsmBI_rAGGCACTTGCTCGTACGACGcgtctcAATTAacccaaacactccctttggaaATGCGgagacgATGTGGGCCCGGCACCTTAA...
tRNAsans18b79good_icebergBsmBI_f-s1-58-s2-BsmBI_rGTGTAACCCGTAGGGCACCTcgtctcAATTAaacactggtgcgcgataATGCGgagacgGTCGAGAGCAGTCCTTCGAC
tRNAsans18b78damp_indexBsmBI_f-s1-58-s2-BsmBI_rGTGTAACCCGTAGGGCACCTcgtctcAATTAacactggtgcgcgataATGCGgagacgGTCGAGAGCAGTCCTTCGACCommand line optionsusage: ogilo [-h] [--input INPUT] [--pcr_handles] [--column COLUMN] [--pcr_group PCR_GROUP] [--format {TSV,CSV}] [--output OUTPUT] [inputs ...]

Automated construction of oligo library sequences for oligo array synthesis.

positional arguments:
  inputs                Further input(s). Format is <type>:<value>:<seq_col>[:<name_col>:<group_col>], for example file:oligos.csv:2 seq:ATCGTAT.

options:
  -h, --help            show this help message and exit
  --input INPUT         Single input file. Default: STDIN
  --pcr_handles, -p     Requests PCR handles to be added either side of final sequences.
  --column COLUMN, -c COLUMN
                        Column number to take from input as sequence. Default: 1
  --pcr_group PCR_GROUP, -g PCR_GROUP
                        Column heading containing groups to give different PCR handles to.
  --format {TSV,CSV}, -f {TSV,CSV}
                        Format of files. Default: TSV
  --output OUTPUT, -o OUTPUT
                        Output file. Default: STDOUTDocumentationAvailable atReadTheDocs.