INNER CODE UNIT · Python
CREATE_TE_OUTFILES
TobyBaril/EarlGrey · scripts/extract_align.py:47
def CREATE_TE_OUTFILES(LIBRARY):
for record in SeqIO.parse(LIBRARY, 'fasta'):
NEWID = re.sub('#', '__', record.id)
NEWID = re.sub('/', '___', NEWID)
record.id = 'CONSENSUS-' + NEWID
record.description = ''
SeqIO.write(record, 'tmpTEfiles/' + NEWID + '.fa', 'fasta')
## Organize blast hits function. Will read in blast file, sort based on e-value and bitscore, deterine top BUFFER hits for extraction, extract, and combine with TE file from previous function.
def EXTRACT_BLAST_HITS(GENOME, BLAST, LBUFFER, RBUFFER, HITNUM):
##Read in blast data
BLASTDF = pd.read_table(BLAST, sep='\t', names=['QUERYNAME', 'SCAFFOLD', 'C', 'D', 'E', 'F', 'QUERYSTART', 'QUERYSTOP', 'SCAFSTART', 'SCAFSTOP', 'E-VALUE', 'BITSCORE'])
##Convert to bed format
BLASTBED = BLASTDF[['SCAFFOLD', 'SCAFSTART', 'SCAFSTOP', 'QUERYNAME', 'E-VALUE', 'BITSCORE']]
BLASTBED.insert(5, 'STRAND', '+')
BLASTBED.loc[BLASTBED.SCAFSTOP < BLASTBED.SCAFSTART, 'STRAND'] = '-'
BLASTBED.SCAFSTART, BLASTBED.SCAFSTOP = np.where(BLASTBED.SCAFSTART > BLASTBED.SCAFSTOP, [BLASTBED.SCAFSTOP, BLASTBED.SCAFSTART], [BLASTBED.SCAFSTART, BLASTBED.SCAFSTOP])
##Generate list of query names