示例#1
0
    def testReferencesToStr(self):
        """
        The referencesToStr method must return the expected string.
        """
        data = '\n'.join([
            '@SQ SN:id1 LN:90',
            '@SQ SN:id2 LN:91',
        ]).replace(' ', '\t')

        with dataFile(data) as filename:
            ps = PaddedSAM(filename)
            self.assertEqual('id1 (length 90)\nid2 (length 91)',
                             ps.referencesToStr())
            ps.close()
    """
    result = []
    for offset in sorted(nucleotides):
        result.append(
            '%s%d: %s' % (prefix, offset,
                          baseCountsToStr(nucleotides[offset])))
    return '\n'.join(result)


args = parser.parse_args()

paddedSAM = PaddedSAM(args.samFile)

try:
    if args.listReferenceNames:
        print(paddedSAM.referencesToStr(), file=sys.stdout)
    else:
        try:
            for read in paddedSAM.queries(
                    referenceName=args.referenceName,
                    minLength=args.minLength,
                    rcSuffix=args.rcSuffix,
                    dropSecondary=args.dropSecondary,
                    dropSupplementary=args.dropSupplementary,
                    dropDuplicates=args.dropDuplicates,
                    allowDuplicateIds=args.allowDuplicateIds,
                    keepQCFailures=args.keepQCFailures,
                    rcNeeded=args.rcNeeded):
                print(read.toString('fasta'), end='')
        except UnequalReferenceLengthError as e:
            raise ValueError(