本文整理汇总了Python中HTSeq.bundle_multiple_alignments方法的典型用法代码示例。如果您正苦于以下问题:Python HTSeq.bundle_multiple_alignments方法的具体用法?Python HTSeq.bundle_multiple_alignments怎么用?Python HTSeq.bundle_multiple_alignments使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HTSeq
的用法示例。
在下文中一共展示了HTSeq.bundle_multiple_alignments方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: parse_fastx_sam_parallel
# 需要导入模块: import HTSeq [as 别名]
# 或者: from HTSeq import bundle_multiple_alignments [as 别名]
def parse_fastx_sam_parallel(fastx_infile, sam_infile):
""" Parse fastx and resulting sam file in parallel - generator yielding (name, seq, alignment_list) tuples.
The sam file may contain multiple alignments per read. Program checks that the readnames match.
"""
fastx_generator = basic_seq_utilities.name_seq_generator_from_fasta_fastq(fastx_infile)
sam_generator = iter(HTSeq.bundle_multiple_alignments(HTSeq.SAM_Reader(sam_infile)))
if_finished_fastx, if_finished_sam = False, False
while True:
try: name, seq = fastx_generator.next()
except StopIteration: if_finished_fastx = True
try: alns = sam_generator.next()
except StopIteration: if_finished_sam = True
# if both finished, good, we're doine
if if_finished_fastx and if_finished_sam:
raise StopIteration
# if one file was finished but the other wasn't, error!
elif if_finished_fastx or if_finished_sam:
raise DeepseqError("Parsing seq/aln files in parallel - inconsistent finished states! "
+"(If finished: %s %s, %s %s)"%(fastx_infile, if_finished_fastx, sam_infile, if_finished_sam))
# if all the files still contained data, yield it
else:
name = name.split()[0]
name2 = alns[0].read.name.split()[0]
if not name2 == name:
raise DeepseqError("Non-matching readnames between files! %s in %s, %s in %s"%(fastx_infile, name,
sam_infile, name2))
yield (name, seq, alns)
示例2: set_up_IO
# 需要导入模块: import HTSeq [as 别名]
# 或者: from HTSeq import bundle_multiple_alignments [as 别名]
def set_up_IO(fileIN,fileOUT,gff,downstream,upstream):
'''Function that will open all the file required for the alignment processing
'''
## Open alignment
alignIN = HTSeq.SAM_Reader(fileIN)
alignIN = HTSeq.bundle_multiple_alignments(alignIN)
## Open GFF file
annotation = HTSeq.GFF_Reader(gff,end_included = True)
## Open output file - write the header
countTable = open(fileOUT,'w')
coordinates = '\t'.join(i for i in map(str,range(-upstream,downstream)))
countTable.write('name\t{coord}\n'.format(coord = coordinates))
return alignIN, annotation, countTable
示例3:
# 需要导入模块: import HTSeq [as 别名]
# 或者: from HTSeq import bundle_multiple_alignments [as 别名]
#sort you SAM file by read ID, so that multiple mappings are in adjacent lines and the write a script to filter the best one
#Written by Simon Anders
import sys, re
import HTSeq
insam = HTSeq.SAM_Reader( sys.stdin )
# Go through all reads, with their alignments bundled up:
for bundle in HTSeq.bundle_multiple_alignments( insam ):
bestAlmt = None
# Go through all alignments of a given read, looking
# for the one with the best alignment score
for almt in bundle:
if bestAlmt is None:
bestAlmt = almt
elif almt.aQual > bestAlmt.aQual:
bestAlmt = almt
elif almt.aQual == bestAlmt:
# If there are more than one best alignment,
# better skip the read
bestAlmt = None
if bestAlmt is not None:
# Change the NH field to 1 and print the line
print re.sub( "NH:i:\d+", "NH:i:1", bestAlmt.original_sam_line )
#call this script with the command sort samfile.sam | python chooseBest.py > filtered.sam