https://github.com/rando2/foxmap
Raw File
Tip revision: 5a6eb200d0e985891228ca8e0d08eb0e67d547b5 authored by HM Rando on 23 April 2020, 13:08:34 UTC
Initial cleanup
Tip revision: 5a6eb20
racaout_to_csv.py
import csv
"""This program converts RACA's output files to a csv-readable format"""

#Change these parameters
RACA_directory = "./" #where is the RACA output located?
target = 'vv2' #name of target genome as provided to RACA
reference = 'canFam3' #name of reference genome as provided to RACA
outgroup = 'felCat5' #name of outgroup genome as provided to RACA

#Conversion below
genomes = {"target":target, "reference":reference, "outgroup":outgroup}

for gtype, gname in genomes.items(): 
    fileroot = 'rec_chrs.'+gname+'.segments.refined'
    filein = open(fileroot + '.txt', 'r')
    fileread = filein.read()
    
    with open(fileroot + '.csv', 'wb') as fileout:
        writerbot = csv.writer(fileout, delimiter = ',')

        header = ["blocknum"]
        blocks = fileread.split('>')
        for block in blocks[1:]:
            lines = block.split('\n')
            blocknum = lines[0] #RACA assigns each block a number
            outlist = [blocknum]
            
            for line in lines[1:]:
                if line != "":
                    chrominfo, direction = line.split(' ')
                    if len(header) >0:
                        header.append(chrominfo.split('.')[0])
                        header.extend(['low','high','direction'])
                    fragname = chrominfo.split('.')[1].split(':')[0]
                    low, high = (chrominfo.split(':')[1]).split('-')
                    outlist.extend([fragname, low, high, direction])
            if len(header) > 0:
                writerbot.writerow(header)
                header = []
            writerbot.writerow(outlist)
back to top