diff --git a/script_in_snakemake/split_cpg_groups.py b/script_in_snakemake/split_cpg_groups.py index 4c02c08..c78d630 100644 --- a/script_in_snakemake/split_cpg_groups.py +++ b/script_in_snakemake/split_cpg_groups.py @@ -21,13 +21,10 @@ -keeping strandedness and readID information """ -ch=[] -st=[] -pos=[] -log=[] -readID=[] -target ="CG" +target ="CG" +out = open(snakemake.output[1],'w') +out.write("\t".join(['Chr', 'Pos','Strand', 'Log.like.ratio', 'Read_ID']) + "\n") with open(snakemake.input[0],'r') as fh: next(fh) for line in fh: @@ -41,29 +38,29 @@ seq = str(fields[10]) if cpg_num == 1: - ch.append(chrom) - st.append(strand) - pos.append(start) - log.append(logRatio) - readID.append(read_name) + out.write(chrom + "\t" + str(start) + "\t" + strand + "\t" + str(logRatio) + "\t" + read_name + "\n") elif cpg_num > 1: - index = [] - pos.append(start) - for match in re.finditer(target, seq): - #print(match.start()) + # index = [] + # pos.append(start) + out.write(chrom + "\t" + str(start) + "\t" + strand + "\t" + str(logRatio) + "\t" + read_name + "\n") + for match in re.finditer(target, seq): + # print(match.start()) index.append(match.start()) length = len(index) for i in range(1, length): new_start = start + (index[i] - index[0]) - pos.append(new_start) - #print(new_start) + # pos.append(new_start) + out.write(chrom + "\t" + str(new_start) + "\t" + strand + "\t" + logRatio + "\t" + read_name + "\n") + # print(new_start) + ''' ch.extend([chrom] * cpg_num) st.extend([strand] * cpg_num) log.extend([logRatio] * cpg_num) readID.extend([read_name] * cpg_num) + final = pd.DataFrame(list(zip(ch,pos,st,log,readID)), columns =['Chr', 'Pos','Strand', 'Log.like.ratio', 'Read_ID']) final.to_csv(snakemake.output[0], sep="\t", header=True, index=False) - +'''