PageRenderTime 17ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/scripts/metagenomics/convert_title.py

https://bitbucket.org/cistrome/cistrome-harvard/
Python | 39 lines | 35 code | 1 blank | 3 comment | 1 complexity | 5140bdd51b315c55e0e435c1d7adff06 MD5 | raw file
  1. #!/usr/bin/env python
  2. """
  3. convert nt and wgs data (fasta format) to giNumber_seqLen
  4. run formatdb in the command line: gunzip -c nt.gz |formatdb -i stdin -p F -n "nt.chunk" -v 2000
  5. """
  6. import os, sys, math
  7. if __name__ == '__main__':
  8. seq = []
  9. len_seq = 0
  10. invalid_lines = 0
  11. for i, line in enumerate(sys.stdin):
  12. line = line.rstrip('\r\n')
  13. if line.startswith('>'):
  14. if len_seq > 0:
  15. print ">%s_%d" %(gi, len_seq)
  16. print "\n".join(seq)
  17. title = line
  18. fields = title.split('|')
  19. if len(fields) >= 2 and fields[0] == '>gi':
  20. gi = fields[1]
  21. else:
  22. gi = 'giunknown'
  23. invalid_lines += 1
  24. len_seq = 0
  25. seq = []
  26. else:
  27. seq.append(line)
  28. len_seq += len(line)
  29. if len_seq > 0:
  30. print ">%s_%d" %(gi, len_seq)
  31. print "\n".join(seq)
  32. print >> sys.stderr, "Unable to find gi number for %d sequences, the title is replaced as giunknown" %(invalid_lines)