• RTH
  • CRS-Cyanobacteria
  • Browse CRSs
  • CRS details
  • CRS alignments
  • Species conservation
  • Known structures
  • Help

Known structures

(Note: This list includes “only” the Rfam hits and transcription (RNIE) terminators that overlap the intergenic search region of the RNA structure screen)

Filter selection

taxes_tbl = transpose(taxes)
refs_tbl = transpose(refs)
rfam_tbl = transpose(rfam)
term_tbl = transpose(term)
infoHelper = function(x, lab, txt) {
  // The element to show
  let res = html`${lab} <span class='myInfo' id='${x}'>ⓘ</span>`
  // Add tippy tooltip
  // Iusse: add with delay, otherwise the span was not yet displayed
  setTimeout(function() {
    tippy('#' + x, {
      content: txt 
    })
  }, 500)
  return(res)
}

// Build the filtering form
viewof filters = Inputs.form({
  fam: Inputs.select(
    rfams,
    {
      sort: true,
      label: infoHelper(
        'infoFam',
        'Family',
        'Only show positions related to a specific Rfam family'
      )
    }
  ),
  side: Inputs.radio(
    ['either', 'upstream', 'downstream'],
    {
      label: infoHelper(
        'infoLoc',
        'Relative position',
        'Location relative to the ortholog anchor'
      ),
      value: 'either'
    }
  ),
  ortho: Inputs.select(
    orthos,
    {
      sort: true,
      label: infoHelper(
        'infoOrtho',
        'Ortholog',
        'Only show predicted locations nearby a specific ortholog'
      ),
    }
  )
})
viewof tax_search = Inputs.search(taxes_tbl, {
  label: infoHelper(
    'infoPhylo',
    'Phylogeny',
    'Filter per NCBI taxonmy annotated phylogeny'
  ),
  columns: ["order", "family", "genus", "species"]
})
viewof tax = Inputs.table(tax_search, {
  columns: ["order", "family", "genus", "species"]
  // select all per default
  //value: tax_search.keys()
})

// number of motifs selected vs total
no_tax_filtered = Array.from(tax).length
no_tax_total = Array.from(taxes_tbl).length
  • You can filter either via the search box or select individual species with the checkbox to the left of each row
  • The current phylogenetic filtering is set to of species.
tax_filtering = tax.map(x => x.taxrow)

filtered = refs_tbl.filter(function(row) {
  // check all negative cases in which rows should be filtered out
  if ( ! tax_filtering.includes(row.taxrow) ) {
    // not in a selected taxonomy
    return false
  }
  if ( filters.side !== 'either' ) {
    if ( row.side !== filters.side) {
      // not the selected side
      return false
    }
  }
  if ( filters.fam !== "(no filtering)" ) {
    if ( row.structure !== filters.fam ) {
      // not the selected Rfam
      return false
    }
  }
  if ( filters.ortho !== "(no filtering)" ) {
    if ( row.ortholog !== filters.ortho ) {
      // not the ortholog
      return false
    }
  }
  return true
})

//filtered_term = refs_tbl.filter(function(row) { if ( row.structure == filters.fam ) { if ( filter.fam == "RNIE terminator" ) { return true } } return false } )
//filtered_rfam = refs_tbl.filter(function(row) { if ( row.structure == filters.fam ) { if ( filter.fam != "RNIE terminator" ) { return true } } return false } )
filtered_term = Array.from(filtered).filter(function(row) { if ( row.structure == "RNIE terminator" ) { return true } return false } )
filtered_rfam = Array.from(filtered).filter(function(row) { if ( row.structure != "RNIE terminator" ) { return true } return false } )

// number of motifs selected vs total
no_filtered = Array.from(filtered).length
no_term_filtered = Array.from(filtered_term).length
no_rfam_filtered = Array.from(filtered_rfam).length
no_total = Array.from(refs_tbl).length
no_rfam_total = Array.from(rfam_tbl).length
no_term_total = Array.from(term_tbl).length

Loci matching filters

Your current filtering criteria selected

  • of genomic locations of Rfam structures, and
  • of transcription (RNIE) terminators

that overlap the ortholog search regions of this study.

Inputs.table(filtered, {
  columns: [
    "species", "NCBI-accession",
    "structure", 'Rfam ID',
    "start", "end", "strand", 
    "side", "ortholog", 'KEGG ID'
  ],
  format: {
    'NCBI-accession': function(i) {
      return html`<a href="https://www.ncbi.nlm.nih.gov/search/all/?term=${i}" target="_blank">${i}</a>`
    },
    'KEGG ID': function(i) {
      return html`<a href="https://www.kegg.jp/entry/${i}" target="_blank">${i}</a>`
    },
    'Rfam ID': function(i) {
      return html`<a href="https://rfam.org/family/${i}" target="_blank">${i}</a>`
    }
  }
})
  • This table is scrollable
  • Clicking on the column name in the headers allows sorting the rows by each score
  • Note: Loci for known structures outside of the ortholog search regions are not shown in the table above. However, all known structures found in the investigated 202 genomes can be downloaded as flat files:
    List of Rfam families in the 202 genomes
    List of terminator sequences in the 202 genomes