Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

50 Zeilen
1.1KB

  1. #!/usr/bin/env python
  2. import os,sys
  3. import fastq
  4. import time
  5. def qual_stat(qstr):
  6. q20 = 0
  7. q30 = 0
  8. for q in qstr:
  9. qual = int(q) - 33
  10. if qual >= 30:
  11. q30 += 1
  12. q20 += 1
  13. elif qual >= 20:
  14. q20 += 1
  15. return q20, q30
  16. def stat(filename):
  17. reader = fastq.Reader(filename)
  18. total_count = 0
  19. q20_count = 0
  20. q30_count = 0
  21. while True:
  22. read = reader.nextRead()
  23. if read == None:
  24. break
  25. total_count += len(read[3])
  26. q20, q30 = qual_stat(read[3])
  27. q20_count += q20
  28. q30_count += q30
  29. print("total bases:", total_count)
  30. print("q20 bases:", q20_count)
  31. print("q30 bases:", q30_count)
  32. print("q20 percents:", 100 * float(q20_count)/float(total_count))
  33. print("q30 percents:", 100 * float(q30_count)/float(total_count))
  34. def main():
  35. if len(sys.argv) < 2:
  36. print("usage: python q30.py <fastq_file>")
  37. sys.exit(1)
  38. stat(sys.argv[1])
  39. if __name__ == "__main__":
  40. time1 = time.time()
  41. main()
  42. time2 = time.time()
  43. print('Time used: ' + str(time2-time1))