# HG changeset patch # User davidvanzessen # Date 1542033214 18000 # Node ID 146bbd9d58f6a84c82d0161fb057fae74d3c16f5 # Parent b6d63b9efb8fc1bf24f7c88e89730d38d6585546 Added tests diff -r b6d63b9efb8f -r 146bbd9d58f6 demultiplex.py --- a/demultiplex.py Fri Nov 09 05:52:15 2018 -0500 +++ b/demultiplex.py Mon Nov 12 09:33:34 2018 -0500 @@ -29,17 +29,17 @@ def search_barcode_in_first_half(sequence, barcode): if type(sequence) is Seq: - sequence = str(sequence) + sequence = str(sequence).lower() elif type(sequence) is SeqRecord: - sequence = str(sequence.seq) + sequence = str(sequence.seq).lower() return sequence.find(barcode, 0, int(len(sequence) / 2)) def search_barcode_in_second_half(sequence, barcode): if type(sequence) is Seq: - sequence = str(sequence) + sequence = str(sequence).lower() elif type(sequence) is SeqRecord: - sequence = str(sequence.seq) + sequence = str(sequence.seq).lower() return sequence.find(barcode, int(len(sequence) / 2)) @@ -65,10 +65,10 @@ def main(): parser = argparse.ArgumentParser() - parser.add_argument("-i", "--input", help="The input file") + parser.add_argument("-i", "--input", help="The input file", required=True) parser.add_argument("-f", "--format", help="The format of the input file (fastq/fasta)", default="auto", choices=["fasta", "fastq", "auto"]) - parser.add_argument("-o", "--output-dir", help="The output dir") - parser.add_argument("-m", "--mapping-file", help="A tab seperated file containing two columns, ID and barcode (no header)") + parser.add_argument("-o", "--output-dir", help="The output dir", required=True) + parser.add_argument("-m", "--mapping-file", help="A tab seperated file containing two columns, ID and barcode (no header)", required=True) args = parser.parse_args() @@ -121,9 +121,11 @@ ID = ID_barcode["ID"] barcode = ID_barcode["barcode"] + logging.info("{0}:\t\t{1}".format(ID, barcode)) + output_file_path = os.path.join( output_dir, - "{0}_{1}.{2}".format(input_basename_no_ext, ID, input_format) + "{0}.{1}".format(ID, input_format) ) if ID not in ID_file_handle_dict: @@ -134,15 +136,15 @@ barcode_data_dict[ID] += [BarcodeData( ID=ID, - barcode=barcode, - barcode_reverse=str(Seq(barcode, generic_dna).reverse_complement()), + barcode=barcode.lower(), + barcode_reverse=str(Seq(barcode, generic_dna).reverse_complement()).lower(), output_file_path=output_file_path, output_file_handle=ID_file_handle )] discarded_output_file_path = os.path.join( output_dir, - "{0}_{1}.{2}".format(basename_input_file_path, "discarded", input_format) + "{0}.{1}".format("discarded", input_format) ) total_sequences = 0 diff -r b6d63b9efb8f -r 146bbd9d58f6 demultiplex.xml --- a/demultiplex.xml Fri Nov 09 05:52:15 2018 -0500 +++ b/demultiplex.xml Mon Nov 12 09:33:34 2018 -0500 @@ -1,9 +1,10 @@ + python biopython - + mkdir outputs; python3 $__tool_directory__/demultiplex.py @@ -18,29 +19,39 @@ - - + + + - There is no help + + @misc{Demultplex-EMC, + author = {Erasmus MC}, + title = {Demultiplex-EMC}, + year = {2018}, + howpublished = {https://github.com/ErasmusMC-Bioinformatics/Demultiplex} + } + diff -r b6d63b9efb8f -r 146bbd9d58f6 test-data/input.fasta --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input.fasta Mon Nov 12 09:33:34 2018 -0500 @@ -0,0 +1,24 @@ +>sequence1_upper +GTACAACAATATTTGTTAGTCACCTTTGGGTCACGATCTCCCACCTTACTGGAATTTAGTCCCTGCTATAATTTGCCTTG +CATATAAGTTGCGTTACTTCAGCGTCCTAACCGCACCCTTAGCACGAAGACAGATTTGTTCATTCCCATACTCCGGCGTT +GGCAGGGGGTTCGCATGTCCCACGTGAAACGTTGCTAAAC +>sequence1_lower +gtacaacaatatttgttagtcacctttgggtcacgatctcccaccttactggaatttagtccctgctataatttgccttg +catataagttgcgttacttcagcgtcctaaccgcacccttagcacgaagacagatttgttcattcccatactccggcgtt +ggcagggggttcgcatgtcccacgtgaaacgttgctaaac +>sequence1_mix +gTACaacAaTATTTGtTaGtCAccttTgGgTCACGATCtCcCaccttACtggAAtTTaGTcCCTGCTATAAtTtgCcttG +CAtATAaGtTgcgttaCTtCaGCgtccTAaCcgcAccCTTagCaCgaAGacaGaTttGTTCATtCccATACTCcggCgtT +ggCagGGGgtTCgCatgtCccACGtGaAACgTTgCtAAac +>sequence2_upper +CCTCAGGTTTCTGAGCGACAAAAGCTTTAAACGGGAGTTCGCGCTCATAACTTGGTCCGAATGCGGGTTCTTGCATCGTT +CGACTGAGTTTGTTTCATGTAGAACGGGCGCAAAGTATACTTAGTTCAATCTTCAATACCTCGTATCATTGTACACCTGC +CGGTCACCACCCAACGATGTGGGGACGGCGTTGCAACTTC +>sequence2_lower +cctcaggtttctgagcgacaaaagctttaaacgggagttcgcgctcataacttggtccgaatgcgggttcttgcatcgtt +cgactgagtttgtttcatgtagaacgggcgcaaagtatacttagttcaatcttcaatacctcgtatcattgtacacctgc +cggtcaccacccaacgatgtggggacggcgttgcaacttc +>sequence1_mix +CctCaGgTTTctGaGCGAcAAAagCTttAAaCgGGaGtTCgcGCtcAtAaCTtggTcCGAATgcgGGtTcTTgCAtCGtt +CgaCtgaGTTTgtttCatGTAgAacGGGCgCAAagTatACttaGtTCaATCTtCaatACCtcgtAtcATTgTACaCCtGC +CGgTcAccaCcCaAcgATgTGGggACggCGtTgCAAcTTC \ No newline at end of file diff -r b6d63b9efb8f -r 146bbd9d58f6 test-data/input.fastq --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input.fastq Mon Nov 12 09:33:34 2018 -0500 @@ -0,0 +1,24 @@ +@sequence1_upper +GTACAACAATATTTGTTAGTCACCTTTGGGTCACGATCTCCCACCTTACTGGAATTTAGTCCCTGCTATAATTTGCCTTGCATATAAGTTGCGTTACTTCAGCGTCCTAACCGCACCCTTAGCACGAAGACAGATTTGTTCATTCCCATACTCCGGCGTTGGCAGGGGGTTCGCATGTCCCACGTGAAACGTTGCTAAAC ++ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +@sequence1_lower +gtacaacaatatttgttagtcacctttgggtcacgatctcccaccttactggaatttagtccctgctataatttgccttgcatataagttgcgttacttcagcgtcctaaccgcacccttagcacgaagacagatttgttcattcccatactccggcgttggcagggggttcgcatgtcccacgtgaaacgttgctaaac ++ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +@sequence1_mix +gTACaacAaTATTTGtTaGtCAccttTgGgTCACGATCtCcCaccttACtggAAtTTaGTcCCTGCTATAAtTtgCcttGCAtATAaGtTgcgttaCTtCaGCgtccTAaCcgcAccCTTagCaCgaAGacaGaTttGTTCATtCccATACTCcggCgtTggCagGGGgtTCgCatgtCccACGtGaAACgTTgCtAAac ++ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +@sequence2_upper +CCTCAGGTTTCTGAGCGACAAAAGCTTTAAACGGGAGTTCGCGCTCATAACTTGGTCCGAATGCGGGTTCTTGCATCGTTCGACTGAGTTTGTTTCATGTAGAACGGGCGCAAAGTATACTTAGTTCAATCTTCAATACCTCGTATCATTGTACACCTGCCGGTCACCACCCAACGATGTGGGGACGGCGTTGCAACTTC ++ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +@sequence2_lower +cctcaggtttctgagcgacaaaagctttaaacgggagttcgcgctcataacttggtccgaatgcgggttcttgcatcgttcgactgagtttgtttcatgtagaacgggcgcaaagtatacttagttcaatcttcaatacctcgtatcattgtacacctgccggtcaccacccaacgatgtggggacggcgttgcaacttc ++ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +@sequence1_mix +CctCaGgTTTctGaGCGAcAAAagCTttAAaCgGGaGtTCgcGCtcAtAaCTtggTcCGAATgcgGGtTcTTgCAtCGttCgaCtgaGTTTgtttCatGTAgAacGGGCgCAAagTatACttaGtTCaATCTtCaatACCtcgtAtcATTgTACaCCtGCCGgTcAccaCcCaAcgATgTGGggACggCGtTgCAAcTTC ++ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ No newline at end of file diff -r b6d63b9efb8f -r 146bbd9d58f6 test-data/mapping.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/mapping.txt Mon Nov 12 09:33:34 2018 -0500 @@ -0,0 +1,2 @@ +sequence1 CAATATTTGT +sequence2 tttctgagcg diff -r b6d63b9efb8f -r 146bbd9d58f6 test-data/sequence1.fasta --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/sequence1.fasta Mon Nov 12 09:33:34 2018 -0500 @@ -0,0 +1,15 @@ +>sequence1_upper +GTACAACAATATTTGTTAGTCACCTTTGGGTCACGATCTCCCACCTTACTGGAATTTAGT +CCCTGCTATAATTTGCCTTGCATATAAGTTGCGTTACTTCAGCGTCCTAACCGCACCCTT +AGCACGAAGACAGATTTGTTCATTCCCATACTCCGGCGTTGGCAGGGGGTTCGCATGTCC +CACGTGAAACGTTGCTAAAC +>sequence1_lower +gtacaacaatatttgttagtcacctttgggtcacgatctcccaccttactggaatttagt +ccctgctataatttgccttgcatataagttgcgttacttcagcgtcctaaccgcaccctt +agcacgaagacagatttgttcattcccatactccggcgttggcagggggttcgcatgtcc +cacgtgaaacgttgctaaac +>sequence1_mix +gTACaacAaTATTTGtTaGtCAccttTgGgTCACGATCtCcCaccttACtggAAtTTaGT +cCCTGCTATAAtTtgCcttGCAtATAaGtTgcgttaCTtCaGCgtccTAaCcgcAccCTT +agCaCgaAGacaGaTttGTTCATtCccATACTCcggCgtTggCagGGGgtTCgCatgtCc +cACGtGaAACgTTgCtAAac diff -r b6d63b9efb8f -r 146bbd9d58f6 test-data/sequence1.fastq --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/sequence1.fastq Mon Nov 12 09:33:34 2018 -0500 @@ -0,0 +1,12 @@ +@sequence1_upper +GTACAACAATATTTGTTAGTCACCTTTGGGTCACGATCTCCCACCTTACTGGAATTTAGTCCCTGCTATAATTTGCCTTGCATATAAGTTGCGTTACTTCAGCGTCCTAACCGCACCCTTAGCACGAAGACAGATTTGTTCATTCCCATACTCCGGCGTTGGCAGGGGGTTCGCATGTCCCACGTGAAACGTTGCTAAAC ++ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +@sequence1_lower +gtacaacaatatttgttagtcacctttgggtcacgatctcccaccttactggaatttagtccctgctataatttgccttgcatataagttgcgttacttcagcgtcctaaccgcacccttagcacgaagacagatttgttcattcccatactccggcgttggcagggggttcgcatgtcccacgtgaaacgttgctaaac ++ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +@sequence1_mix +gTACaacAaTATTTGtTaGtCAccttTgGgTCACGATCtCcCaccttACtggAAtTTaGTcCCTGCTATAAtTtgCcttGCAtATAaGtTgcgttaCTtCaGCgtccTAaCcgcAccCTTagCaCgaAGacaGaTttGTTCATtCccATACTCcggCgtTggCagGGGgtTCgCatgtCccACGtGaAACgTTgCtAAac ++ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff -r b6d63b9efb8f -r 146bbd9d58f6 test-data/sequence2.fasta --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/sequence2.fasta Mon Nov 12 09:33:34 2018 -0500 @@ -0,0 +1,15 @@ +>sequence2_upper +CCTCAGGTTTCTGAGCGACAAAAGCTTTAAACGGGAGTTCGCGCTCATAACTTGGTCCGA +ATGCGGGTTCTTGCATCGTTCGACTGAGTTTGTTTCATGTAGAACGGGCGCAAAGTATAC +TTAGTTCAATCTTCAATACCTCGTATCATTGTACACCTGCCGGTCACCACCCAACGATGT +GGGGACGGCGTTGCAACTTC +>sequence2_lower +cctcaggtttctgagcgacaaaagctttaaacgggagttcgcgctcataacttggtccga +atgcgggttcttgcatcgttcgactgagtttgtttcatgtagaacgggcgcaaagtatac +ttagttcaatcttcaatacctcgtatcattgtacacctgccggtcaccacccaacgatgt +ggggacggcgttgcaacttc +>sequence1_mix +CctCaGgTTTctGaGCGAcAAAagCTttAAaCgGGaGtTCgcGCtcAtAaCTtggTcCGA +ATgcgGGtTcTTgCAtCGttCgaCtgaGTTTgtttCatGTAgAacGGGCgCAAagTatAC +ttaGtTCaATCTtCaatACCtcgtAtcATTgTACaCCtGCCGgTcAccaCcCaAcgATgT +GGggACggCGtTgCAAcTTC diff -r b6d63b9efb8f -r 146bbd9d58f6 test-data/sequence2.fastq --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/sequence2.fastq Mon Nov 12 09:33:34 2018 -0500 @@ -0,0 +1,12 @@ +@sequence2_upper +CCTCAGGTTTCTGAGCGACAAAAGCTTTAAACGGGAGTTCGCGCTCATAACTTGGTCCGAATGCGGGTTCTTGCATCGTTCGACTGAGTTTGTTTCATGTAGAACGGGCGCAAAGTATACTTAGTTCAATCTTCAATACCTCGTATCATTGTACACCTGCCGGTCACCACCCAACGATGTGGGGACGGCGTTGCAACTTC ++ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +@sequence2_lower +cctcaggtttctgagcgacaaaagctttaaacgggagttcgcgctcataacttggtccgaatgcgggttcttgcatcgttcgactgagtttgtttcatgtagaacgggcgcaaagtatacttagttcaatcttcaatacctcgtatcattgtacacctgccggtcaccacccaacgatgtggggacggcgttgcaacttc ++ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +@sequence1_mix +CctCaGgTTTctGaGCGAcAAAagCTttAAaCgGGaGtTCgcGCtcAtAaCTtggTcCGAATgcgGGtTcTTgCAtCGttCgaCtgaGTTTgtttCatGTAgAacGGGCgCAAagTatACttaGtTCaATCTtCaatACCtcgtAtcATTgTACaCCtGCCGgTcAccaCcCaAcgATgTGGggACggCGtTgCAAcTTC ++ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa