当前位置: 首页>>代码示例>>Python>>正文


Python HTSeq.mixed_SAM_alignments_with_buffer方法代码示例

本文整理汇总了Python中HTSeq.mixed_SAM_alignments_with_buffer方法的典型用法代码示例。如果您正苦于以下问题:Python HTSeq.mixed_SAM_alignments_with_buffer方法的具体用法?Python HTSeq.mixed_SAM_alignments_with_buffer怎么用?Python HTSeq.mixed_SAM_alignments_with_buffer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HTSeq的用法示例。


在下文中一共展示了HTSeq.mixed_SAM_alignments_with_buffer方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: count_reads_in_features

# 需要导入模块: import HTSeq [as 别名]
# 或者: from HTSeq import mixed_SAM_alignments_with_buffer [as 别名]
def count_reads_in_features( sam_filename, gff_filename, samtype, order, stranded,
        overlap_mode, feature_type, id_attribute, quiet, minaqual, out,
        file_regex, sample_col, debug ):


    # Keep track of what features we see and
    # also the counts from those features
    features = HTSeq.GenomicArrayOfSets( "auto", stranded != "no" )
    counts = {}
    lens = {}

    # Try to open samfile to fail early in case it is not there
    if sam_filename != "-":
        open( sam_filename ).close()

    # OPen and read the GFF file (features)
    gff = HTSeq.GFF_Reader( gff_filename )
    i = 0
    try:
        for f in gff:
            if f.type == feature_type:
                try:
                     # Grab out the feature id so we can make our count dict
                    feature_id = f.attr[ id_attribute ]
                except KeyError:
                    raise ValueError, ( "Feature %s does not contain a '%s' attribute" %
                        ( f.name, id_attribute ) )
                if stranded != "no" and f.iv.strand == ".":
                    raise ValueError, ( "Feature %s at %s does not have strand information but you are "
                        "running htseq-count in stranded mode. Use '--stranded=no'." %
                        ( f.name, f.iv ) )
                features[ f.iv ] += feature_id
                counts[ f.attr[ id_attribute ] ] = 0
                lens[f.attr[id_attribute]] = f.iv.length
            i += 1
            # progress report
            if i % 100000 == 0 and not quiet:
                sys.stderr.write( "%d GFF lines processed.\n" % i )
    except:
        sys.stderr.write( "Error occured when processing GFF file (%s):\n" % gff.get_line_number_string() )
        raise

    if not quiet:
        sys.stderr.write( "%d GFF lines processed.\n" % i )

    if len( counts ) == 0:
        sys.stderr.write( "Warning: No features of type '%s' found.\n" % feature_type )

    # now find the alignment file
    if samtype == "sam":
        SAM_or_BAM_Reader = HTSeq.SAM_Reader
    elif samtype == "bam":
        SAM_or_BAM_Reader = HTSeq.BAM_Reader
    else:
        raise ValueError, "Unknown input format %s specified." % samtype

    try:
        if sam_filename != "-":
            read_seq_file = SAM_or_BAM_Reader( sam_filename )
            read_seq = read_seq_file
            first_read = iter(read_seq).next()
        else:
            read_seq_file = SAM_or_BAM_Reader( sys.stdin )
            read_seq_iter = iter( read_seq_file )
            first_read = read_seq_iter.next()
            # oops! have to put that first read back on
            read_seq = itertools.chain( [ first_read ], read_seq_iter )
        #pe_mode = first_read.paired_end
    except:
        sys.stderr.write( "Error occured when reading beginning of SAM/BAM file.\n" )
        raise

    try:
        # Do a mixture of paired and single end reads
        read_seq = HTSeq.mixed_SAM_alignments_with_buffer( read_seq )

        # Successful Counts
        paired_end = 0
        single_end = 0
        collapsed = 0
        collapsed_trimmed = 0

        # Total counts for FPKM
        total_counts = 0

        empty = 0
        ambiguous = 0
        notaligned = 0
        lowqual = 0
        nonunique = 0
        i = 0
        for r in read_seq:
            i += 1 # This handles reporting at read 0
            if i % 100000 == 0 and not quiet:
                sys.stderr.write( "%d SAM alignment records processed.\n" % ( i,) )
                if debug:
                    break
            # Figure out if single or paired end

            # SINGLE END
#.........这里部分代码省略.........
开发者ID:monprin,项目名称:MixedHTSeq,代码行数:103,代码来源:mixed_count.py


注:本文中的HTSeq.mixed_SAM_alignments_with_buffer方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。