Read UCSC Trix indexes in pure JavaScript
import Trix from '@gmod/trix'
import { RemoteFile } from 'generic-filehandle2'
// We use generic-filehandle2 here to demonstrate searching files on remote servers.
const ixxFile = new RemoteFile(
'https://hgdownload.soe.ucsc.edu/gbdb/hg38/knownGene.ixx',
)
const ixFile = new RemoteFile(
'https://hgdownload.soe.ucsc.edu/gbdb/hg38/knownGene.ix',
)
const trix = new Trix(ixxFile, ixFile)
async function doStuff() {
const results = await trix.search('oca')
console.log(results)
}
doStuff()The Trix class constructor accepts arguments:
ixxFile- a filehandle object for the trix .ixx fileixFile- a filehandle object for the trix .ix filemaxResults = 20- an optional number specifying the maximum number of results to return ontrix.search()
Searches the index files for a term and returns its keys. When searching with multiple words, trix.search() finds the intersection of the result sets.
The Trix search function accepts arguments:
searchString- a string of space-separated words to search the index file for
The Trix search function returns:
Promise<[string, string][]>- an array of[term, result]pairs wheretermis the left column in the trix andresultis the matching key
import { LocalFile } from 'generic-filehandle2'
import Trix from '@gmod/trix'
const ixxFile = new LocalFile('out.ixx')
const ixFile = new LocalFile('out.ix')
// limit maxResults to 5
const trix = new Trix(ixxFile, ixFile, 5)
async function doStuff() {
const results1 = await trix.search('herc')
console.log(results1)
// increase maxResults to 30
trix.maxResults = 30
const results2 = await trix.search('linc')
console.log(results2)
}
doStuff()See the UCSC trix documentation for basic concepts of trix and ixixx-js for a JavaScript implementation of the ixIxx command.