Mercurial > repos > mvdbeek > tepid_merge_deletions
annotate flip_deletions.py @ 2:9c47823f70dc draft
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7-dirty
| author | mvdbeek | 
|---|---|
| date | Fri, 27 Jan 2017 08:14:47 -0500 | 
| parents | ff6683f8e9a1 | 
| children | 
| rev | line source | 
|---|---|
| 0 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 1 #! /usr/bin/python | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 2 | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 3 from argparse import ArgumentParser | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 4 import sys | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 5 | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 6 parser = ArgumentParser(description='Invert the TE deletion calls to give a consistent data format between TE insertions and deletions') | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 7 parser.add_argument('-s', '--samples', help='list of all sample names', nargs="+", required=True) | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 8 parser.add_argument('-d', '--deletions', help='merged TEPID deletions', required=True) | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 9 parser.add_argument('-r', '--reference', help='reference sample name, eg Col-0', required=True) | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 10 parser.add_argument('-o', '--output', help='output file name', required=True) | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 11 options = parser.parse_args() | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 12 | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 13 | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 14 def filter_del(options): | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 15 with open(options.deletions, 'r') as dels, open(options.output, 'w+') as outfile: | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 16 sample_names = options.samples | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 17 for line in dels: | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 18 line = line.strip().split('\t') | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 19 accessions = line[5] | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 20 sys.stderr.write(accessions) | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 21 sys.stderr.write(",".join(sample_names)) | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 22 accessions = accessions.split(',') | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 23 coords = line[:4] | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 24 temp = [options.reference] | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 25 te = line[4] | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 26 for sample in sample_names: | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 27 if sample not in accessions: | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 28 temp.append(sample) | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 29 else: | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 30 pass | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 31 coords.pop(3) # remove strand | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 32 info = '\t'.join(coords) + '\t' + te + '\t' + ','.join(temp) + '\n' | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 33 outfile.write(info) | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 34 | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 35 | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 36 if __name__ == "__main__": | 
| 
ff6683f8e9a1
planemo upload for repository https://github.com/ListerLab/TEPID commit 82fd0448ff5baa9822a388aee78753e4b1cd94d7
 mvdbeek parents: diff
changeset | 37 filter_del(options) | 
