def mainCmpH5(options): alnReader = AlignmentSet(options.inputCmpH5, referenceFastaFname=options.referenceFilename) if options.fofn is not None: alnReader.attach(options.fofn) if options.referenceFilename: referenceTable = loadReferences(options.referenceFilename, alnReader) else: referenceTable = None for refWindow in options.referenceWindows: refId = refWindow.refId refName = alnReader.referenceInfo(refWindow.refId).FullName refLength = alnReader.referenceInfo(refWindow.refId).Length refWindow = refWindow._replace(refId=refId) refWindow = makeDisplayWindow(refLength, options.width, refWindow) if options.rowNumbers != None: alns = alnReader[options.rowNumbers] else: alns = readsInWindow(alnReader, refWindow, options.depth, minMapQV=options.minMapQV, strategy=options.sorting) print windowToGffString(Window(refName, refWindow.start, refWindow.end)) if options.oneAtATime: formatIndividualAlignments(alnReader, refWindow, alns) else: formatWindow(alnReader, refWindow, alns, referenceTable, options.aligned, options.color, options.realign, options.consensus) print
def mainGff(options): reader = GffReader(options.inputGff) alnsFname, referenceFname = extractCmpH5AndReferenceFromGff(reader) # Allow overriding alnsFname = options.inputCmpH5 or alnsFname referenceFname = options.referenceFilename or referenceFname assert os.path.isfile(alnsFname) assert os.path.isfile(referenceFname) alnReader = AlignmentSet(alnsFname, referenceFastaFname=referenceFname) if options.fofn is not None: alnReader.attach(options.fofn) referenceTable = loadReferences(referenceFname, alnReader) for i, gffRecord in enumerate(reader): referenceSeq = gffRecord.get("reference", "-") variantSeq = gffRecord.get("variantSeq", "-") variantConfidence = gffRecord.confidence variantSummary = "(%s > %s)" % (referenceSeq, variantSeq) print gffRecord.type, gffRecord.seqid, gffRecord.start, gffRecord.end, \ variantSummary, variantConfidence refId = gffRecord.seqid refLength = alnReader.referenceInfo(gffRecord.seqid).Length refWindow = makeDisplayWindow(refLength, options.width, Window(refId, gffRecord.start-10, gffRecord.end+10)) if "rows" in gffRecord.attributes: alns = alnReader[map(int, gffRecord.rows.split(","))] else: alns = readsInWindow(alnReader, refWindow, options.depth, minMapQV=options.minMapQV, strategy=options.sorting) formatWindow(alnReader, refWindow, alns, referenceTable, aligned=(gffRecord.type != "insertion"), consensus=options.consensus, useColor=options.color, doRealign=options.realign) if options.pulseRecognizer: # CSV output for pulse recognizer print csvFname = "variant-" + str(i) + ".csv" dumpVariantCsv(csvFname, alnReader, alns, gffRecord) formatVariantCsvLink(csvFname) print