Skip to content

Commit

Permalink
Update: Concatenation Service (#298)
Browse files Browse the repository at this point in the history
* Updated attachments concatenation service to work with 'fq' files and updated naming of concatenated paired end files

* Pushing up method name change missed in prev commit

* Updated regex matching for nonzipped_file_extension method, updated tests to check that the concatenated file names match the expected file names

* Added tests for concatenating fq and fq.gz files

* Updated validate_file_extensions method to validate_file_formats which just checks to see if the compression and formats are the same before concatenating, Reverted change which added nonzipped_file_extension to attachment model and added the appropriate extension to the concatenated files. Updated tests
  • Loading branch information
deepsidhu85 authored Nov 7, 2023
1 parent cdebe29 commit 0d5b6b1
Show file tree
Hide file tree
Showing 11 changed files with 255 additions and 20 deletions.
43 changes: 31 additions & 12 deletions app/services/attachments/concatenation_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def validate_params
def validate_and_concatenate(attachments, is_paired_end)
return unless attachments.length.positive?

validate_file_extensions(attachments)
validate_file_formats(attachments)

concatenated_attachments = []

Expand Down Expand Up @@ -117,12 +117,11 @@ def validate_paired_end_files(attachments)
true
end

# Validates if the file extensions all match for the attachments
def validate_file_extensions(attachments)
expected_extension = attachments.first.metadata['compression'] == 'gzip' ? 'gz' : 'fastq'
# Validates if the file formats all match for the attachments
def validate_file_formats(attachments)
attachments.each do |attachment|
extension = attachment.file.filename.to_s.split('.')[-1]
next unless extension != expected_extension
next unless (attachment.metadata['compression'] != attachments.first.metadata['compression']) ||
(attachment.metadata['format'] != attachments.first.metadata['format'])

raise AttachmentConcatenationError,
I18n.t('services.attachments.concatenation.incorrect_fastq_file_types')
Expand All @@ -133,29 +132,49 @@ def validate_file_extensions(attachments)
# Concatenates the single end reads into a single-end file
def concatenate_single_end_reads(attachments)
basename = concatenation_params[:basename]
extension = attachments.first.metadata['compression'] == 'gzip' ? '.gz' : ''
zipped_extension = attachments.first.metadata['compression'] == 'gzip' ? '.gz' : ''

files = []
files << concatenate_attachments(attachments, "#{basename}_1.fastq#{extension}").signed_id
files << concatenate_attachments(attachments,
"#{basename}_1.fastq#{zipped_extension}")
.signed_id

Attachments::CreateService.new(current_user, attachable, { files: }).execute
end

# Concatenates the paired-end reads into a multiple paired-end files
def concatenate_paired_end_reads(attachments)
basename = concatenation_params[:basename]
zipped_extension = attachments.first.metadata['compression'] == 'gzip' ? '.gz' : ''

extension = attachments.first.metadata['compression'] == 'gzip' ? '.gz' : ''
fwd_filename, rev_filename = concatenated_paired_end_filenames(
attachments.first.metadata['type']
)

forward_reads, reverse_reads = attachments_to_paired_end_directional_reads(attachments)

files = []
files << concatenate_attachments(forward_reads, "#{basename}_1.fastq#{extension}").signed_id <<
concatenate_attachments(reverse_reads, "#{basename}_2.fastq#{extension}").signed_id
files <<
concatenate_attachments(forward_reads,
"#{fwd_filename}.fastq#{zipped_extension}")
.signed_id <<
concatenate_attachments(reverse_reads,
"#{rev_filename}.fastq#{zipped_extension}")
.signed_id

Attachments::CreateService.new(current_user, attachable, { files: }).execute
end

# Gets the filename in the correct format for illumina paired-end and paired-end files
def concatenated_paired_end_filenames(attachment_type)
basename = concatenation_params[:basename]

fwd_filename = attachment_type == 'illumina_pe' ? "#{basename}_S1_L001_R1_001" : "#{basename}_1"

rev_filename = attachment_type == 'illumina_pe' ? "#{basename}_S1_L001_R2_001" : "#{basename}_2"

[fwd_filename, rev_filename]
end

def concatenate_attachments(attachments, filename)
blobs = retrieve_attachment_blobs(attachments)
ActiveStorage::Blob.compose(blobs, filename:)
Expand Down
30 changes: 30 additions & 0 deletions test/fixtures/active_storage/attachments.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,26 @@ attachmentPEREV5_file_test_file_fastq:
record: attachmentPEREV5 (Attachment)
blob: attachmentPEREV5_file_test_file_fastq_blob

attachmentPEFWD6_file_test_file_fastq:
name: file
record: attachmentPEFWD6 (Attachment)
blob: attachmentPEFWD6_file_test_file_fastq_blob

attachmentPEREV6_file_test_file_fastq:
name: file
record: attachmentPEREV6 (Attachment)
blob: attachmentPEREV6_file_test_file_fastq_blob

attachmentPEFWD7_file_test_file_fastq:
name: file
record: attachmentPEFWD7 (Attachment)
blob: attachmentPEFWD7_file_test_file_fastq_blob

attachmentPEREV7_file_test_file_fastq:
name: file
record: attachmentPEREV7 (Attachment)
blob: attachmentPEREV7_file_test_file_fastq_blob

attachmentD_file_test_file_fastq:
name: file
record: attachmentD (Attachment)
Expand All @@ -97,3 +117,13 @@ attachmentH_file_test_file_fastq:
name: file
record: attachmentH (Attachment)
blob: attachmentH_file_test_file_fastq_blob

attachmentI_file_test_file_fastq:
name: file
record: attachmentI (Attachment)
blob: attachmentI_file_test_file_fastq_blob

attachmentJ_file_test_file_fastq:
name: file
record: attachmentJ (Attachment)
blob: attachmentJ_file_test_file_fastq_blob
10 changes: 10 additions & 0 deletions test/fixtures/active_storage/blobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ attachmentPEREV4_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob f
attachmentPEFWD5_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob filename: "08-5923-small_S1_L001_R1_001.fastq", service_name: "test" %>
attachmentPEREV5_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob filename: "08-5923-small_S1_L001_R2_001.fastq", service_name: "test" %>

attachmentPEFWD6_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob filename: "test-fq-file_S1_L001_R1_001.fq", service_name: "test" %>
attachmentPEREV6_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob filename: "test-fq-file_S1_L001_R2_001.fq", service_name: "test" %>

attachmentPEFWD7_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob filename: "test-fq-file2_S1_L001_R1_001.fq", service_name: "test" %>
attachmentPEREV7_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob filename: "test-fq-file2_S1_L001_R2_001.fq", service_name: "test" %>

attachmentD_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob filename: "test_file_D.fastq", service_name: "test" %>

attachmentE_gz_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob filename: "test_file_2.fastq.gz", service_name: "test" %>
Expand All @@ -38,3 +44,7 @@ attachmentF_gz_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob fil
attachmentG_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob filename: "test_file_A.fastq", service_name: "test" %>

attachmentH_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob filename: "test_file_B.fastq", service_name: "test" %>

attachmentI_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob filename: "test-fq-file_S1_L001_R1_001.fq.gz", service_name: "test" %>

attachmentJ_file_test_file_fastq_blob: <%= ActiveStorage::FixtureSet.blob filename: "test-fq-file2_S1_L001_R1_001.fq.gz", service_name: "test" %>
64 changes: 56 additions & 8 deletions test/fixtures/attachments.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ attachment2:
attachable: sample1 (Sample)

attachmentA:
metadata: { "compression": "none" }
metadata: { "compression": "none", "format": "fastq" }
attachable: sampleA (Sample)

attachmentB:
metadata: { "compression": "none" }
metadata: { "compression": "none", "format": "fastq" }
attachable: sampleA (Sample)

attachmentC:
metadata: { "compression": "none" }
metadata: { "compression": "none", "format": "fastq" }
attachable: sampleA (Sample)

attachmentPEFWD1:
Expand Down Expand Up @@ -121,21 +121,69 @@ attachmentPEREV5:
attachable: sampleC (Sample)

attachmentD:
metadata: { "compression": "none" }
metadata: { "compression": "none", "format": "fastq" }
attachable: sampleB (Sample)

attachmentE:
metadata: { "compression": "gzip" }
metadata: { "compression": "gzip", "format": "fastq" }
attachable: sampleB (Sample)

attachmentF:
metadata: { "compression": "gzip" }
metadata: { "compression": "gzip", "format": "fastq" }
attachable: sampleB (Sample)

attachmentG:
metadata: { "compression": "none" }
metadata: { "compression": "none", "format": "fastq" }
attachable: sampleC (Sample)

attachmentH:
metadata: { "compression": "none" }
metadata: { "compression": "none", "format": "fastq" }
attachable: sampleC (Sample)

attachmentPEFWD6:
metadata:
{
"type": "illumina_pe",
"format": "fastq",
"direction": "forward",
"compression": "none",
}
attachable: sampleC (Sample)

attachmentPEREV6:
metadata:
{
"type": "illumina_pe",
"format": "fastq",
"direction": "reverse",
"compression": "none",
}
attachable: sampleC (Sample)

attachmentPEFWD7:
metadata:
{
"type": "illumina_pe",
"format": "fastq",
"direction": "forward",
"compression": "none",
}
attachable: sampleC (Sample)

attachmentPEREV7:
metadata:
{
"type": "illumina_pe",
"format": "fastq",
"direction": "reverse",
"compression": "none",
}
attachable: sampleC (Sample)

attachmentI:
metadata: { "compression": "gzip", "format": "fastq" }
attachable: sampleC (Sample)

attachmentJ:
metadata: { "compression": "gzip", "format": "fastq" }
attachable: sampleC (Sample)
18 changes: 18 additions & 0 deletions test/fixtures/files/test-fq-file2_S1_L001_R1_001.fq
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
@gi|284993440|ref|NC_013768.1|-540/1
CTGTGGCGGGGACAATTATGATTGGTTTACTTACAGTGTCGCTTTTAATCGGTGTAATTTGGGCGCCGAAAACACGTGGCAGATCACTTGATGATATTACGAAGGAACGTTACGGAAATACAATTGATTAAAGAAAAGGAGCCAGACCAGTGAAACATTATGTTGCAGTAGATATTGGTGCATCAAGTGGTCGATTAATTCTAGGGAAATTGGTGAATGAAAAATTACAATTAGAAGAAATTCACCGTTT
+
[email protected]>IGHHFFHII=IIBIIFIAHFIIHFFAAC@HDIIIH*IIIHIIHIIHCIHHIHHHHHHHHHEIGIHHIHHHCHHHGHHGFFEFHGHFFE+DGD>AAG6;CG*EEGGGFGFGEGE4ECEGEE1?G?DGGEG*:GEEGDE:?GGEEEEGFGGGDG6GGEGGFEGGC6:GEEHE:HGECDEG?:GEGGDG:GEGE?EEAEEEGC/GAGEEAG
@gi|284993440|ref|NC_013768.1|-538/1
CGAAAACACGTGGCAGATCACTTGATGATATTACGAAGGAACGTTACGGAAATACAATTGATTAAAGAAAAGGAGGTAGACCAGTGAAACATTATGTTGCAGTAGATATTGGTGCATCAAGTGGTCGATTAATTCTAGGGAAATTGGTGAATGAAAAATTACAATTAGAAGAAATTCACCGTTTTAAAAATGGTTTTACGTACCGAGATGGACACGAACGCTGGGAAATTGATCAACTAATGCAGGAAAT
+
??A??BBBDD.DDDDBFGFFFGIIHIIIFEFII0EFIHI0EIH0HHGIFI@HHIHIHFHIHIIEIIGHHIHHIIH+HIIIHIG8HIIG?HEHGIHCIIHHIDBHIHHGHE@FIFFHEEHEH=G;9EC(CGF*GFFGE:DGEE@EGEGGGG@EGGEG8GGCEECCGG6AGE*;FAEDFC?C0CFG0GG;FGEG6E<GC?:0E<?*CECGGE,HHFGHFEG??80AF??GCCGGE*GGE0ECEE/:<GGG?E
@gi|284993440|ref|NC_013768.1|-536/1
TATACTCGTTAGCCATTCTAGGCTGATTTGTTGGTCACGAAAAAGGATGTTGATGAGAATGTCCTTTTCGCCTGTTGCTTTTATGGAATGATGGCAGCCGCTGTCTAAAAGTAAAAGTTCTCCTTCATGTAAAGTTTCTTTATTTGCTTCAATGATTTGTTCAGAGCTTCCTGAATACATGTAATTTAGTTCAAGAAATTGATGCGTATGGTATGGGTAGTCGGCAATTCGGTTGTGTTTGCTTATATAA
+
?<AAABBBBDBD<BDDFEG>FFHII>FIHIGIIFIHEH/HGF,HHHIHIHHDD/II?CIHIACHFI5HG=IHGIIHHIFDHIFHIDGIFCFIEGHHCHHGHHHHCHFGGHHHFHEEHGB?GF.GGF=GGG@DDHGEGCG;GDG=*)EGFEG*GGGEEGBAGEEGDC;GEGG86G?8GEGCGGCFGGGCG?EEEG:GGAFCGED*CE:0G,CHHECHEC,CEEEG:FE(G*AGEEGGGGGGG<EGGGF?:F
@gi|284993440|ref|NC_013768.1|-534/1
TAATCCGTCTACTTATCATGCCTTTAATGATCAAACAGCTGAAAAGCCAAAAGGCCATGACAAACTTACAACCGAAAATCAAAGAACTACAAGAAAAATACTCGTCTAAAGATAATGAAACAATACCAAAACTACAACAAGAAACAATGCGTCTATATCAAGAAAATAGCGTAAATCCAATGATGGGTTGTTTACCATTATTAATCCAAATGCCTATTCTACTAGGATTTTACCAAGCGATTAGTAGAAC
+
??5?ABBBDDD@[email protected]@HFGHFHI?EAFHEIHFIHIGDFBIIII?HHCIIHHIIE/DFEHGI5HHHFHHGIHGHGGD)G8H,FG+GGCGHGCGGGFEHE?EEGGADFED;EG?GG?EEE8EGCCFGGGG?GEFGEGGGG;GC6GGG8AAECFCEGGEEGCGFGACGG?HHCHGEFG6G2A'CGAGEG:/FEG?1GE0GFGEGEEA0CC
@gi|284993440|ref|NC_013768.1|-532/1
TTTCTTAGTGGGTGTGTACTTATTTTGGAATTTAGTAGCGGGTGCAATGGGATTCTTTATGCCGTTTGTATATGAAACGGTGGGTGGTCTTTCTAATACACAAGCGAATTTATTGCAAGCTGTATTATGGATACTAACAGCAGCTTCTACATACTTTGGCTTTGCTAAATTTGGTGATCGAGTAAGTCATCGTGGGTTGTTTTTTGTAGGGGCTTTAATGGCAGTTGCTTCTTGGGTTGTACTTACTTTT
Binary file not shown.
18 changes: 18 additions & 0 deletions test/fixtures/files/test-fq-file2_S1_L001_R2_001.fq
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
@gi|284993440|ref|NC_013768.1|-540/2
TCAAAACATAGTCAACGCCCCACGTGTCAATTCCAAGCACACATTCCGAAATCCCCAGTTGCTTTACTTTTTCCAAGCCAATAAAAATTTCCTGCATTAGTTGATCAATTTCCCAGCGTTCGTGTCCATCTCGGTACGAAAAACCATTTTTAAAACGGTGAATTTCTTCTAATTGTAATTTTTCATTCACCAATTTCCCTAGAATTAATCAACCACTTGATGCACCAATATCTACTGCAACATAATGTTT
+
??A5ABB?D+A-DD@<CFFF.FI>FE/IIFH=IHCHG.II/CIHHBIIHFHHHHH=HHIH5GHI5HHGIFFIHFHFHGEBIIHHFHHCEHHFCFBDCHH+=@HHGG-=*EDHB5GGGEHH2FBDHEF=,B??E.GGFG*FBCEEE82(EGGEE5GEECEEEGGGGEGEEG/G?EAFFDF?CEGGFFA<1(GFGEFE:E:GE?EGG*EEDA(G(GGFE7,G8GE*C?FF*(EE??E?A:*(E/'E*FCG)E
@gi|284993440|ref|NC_013768.1|-538/2
ATTTAAAGTTCGTTTTTCGCGATAACTAATTGGATCTGCCAACTTCTCACCGGAAGCCCCTATCAAAACATAGTCAACGCCCCACGTGTCAATTCCAAGCACACTTTCCGAAATCCCCAGTTGCTTTACTTTTTTCAAGCCAATAAAAATTTCCTACATTAGCTGGTCAATTTCCCAGCGTTTGTGTCCATCTCGGTGCGTAAAACCATTTTTAAAACGGTGAAGATCTTCTAATTGTAATTGTTCATTC
+
???A??<B<D<-BD5-CF>GGFFIHHHHCI>AFI>I9EHDHIDIFEIGI-CHHGHDIDHCAIEFHFFHH-IEIACAFAHECIIHFH+EIHH-HHGDBHIHHH2H#DHFFFHGEHEGEEHB@FDGDG(EFH@EGC*GEG@HCGEEFGBGDA;EFEC#:CEFAE*3G.GEG9E=0*GF*2FCCG(/?A0DFE8(::64?.E<</DA8A6:CHEGHE*0.8EGFGG(**6A6GEC(:G6E*A1(8.G(6(/?E
@gi|284993440|ref|NC_013768.1|-536/2
CAAATTTACAGAAGGAGATTGTGAAATGGAAGCGCTTAATAAAAAATTATTTCGCCTAAATTCAAAAAAAAAAATCCAAAAAAGCACTGGCACTTTTGTTCCCGATTTACCCAATGGATCCTTTTTAAAAGAGAACGGCAGCATGGAAATATTAAATGATTATTTCTTCAAAAACAAAGACATTTATATAAGCAAACACAGCCGATTTGCCGACTACCCATACCATACGCATCAATTTCTTGAACTAAAT
+
??<,??BBBDDDBD-?F+6CG+FHI6FHEHEI9FIHHHGIIFFEIFFAFGFCGHHFHII+G=HHGH--5FI-HAFHGHIHDA+HIH-HHIH<+FHGIHG*;E2HGFHI@FHFGH5EF<H7+FB+HHFGE#GFDGEGC,GEEEG*DGEG*CG0G99GGFEEFC,(?EGEEE(2<G8EGEEGGCGGE/EEF6(CE0CGE?AA#CC:=EH*:?H:EG*?(EGGGG;A*F:G/E6.*E???6CECAG:?*EAEC
@gi|284993440|ref|NC_013768.1|-534/2
TGATGTAAACAATCATTGCCAGTGATTTATTTTGCTGTGTTTGCCCCATCATAGAAATTTTTGATGATAAGAATGTTGTAAATGCCGCAACAACCGGTAAGATGTAATATGGATCTGGATTTCCCAGTTGTATCCATAAGAACGAATCTGTTTTGATTTCTGCTGTTCTACTAATCGCTTGGTAAAATCCTAGTATAATAGGCATTTGGATTAATAATGGGAAACAACCCATCATTGGATTTACGCTATT
+
?????BBBDDDEDEDD6FF@C+IHIFCEHHHEICIHHI/HIHHHHAFHHHHIHHHH@HIHEGICHIHCIIHIGCF-FHH-FFI>BHHEGHIH=IIHHHIHHHG+HH6CHHD+CC?EHHGDFG+GF(EEGE(D,EEGEE3HAD)EE<GD1EFF@FCGGG:E9:G<F?6*F>(GE*C2<AEAG:'6G?#E.6:<?*C(?E**G/(C8CECG/FE@GG=0G(:*:C??(AEECFCEG*G?E:0F.G0(GC/EC
@gi|284993440|ref|NC_013768.1|-532/2
CACCTGTACTACCACGAACTAAGAAAAACATCACGCCTTGAACCCCACCACGATATTTTCTTGGGAAAAGTTCTGTGGACCAAAGTGCGTAAAAAGCTTGTGCACCAATACCTGCTGAAATAACCCATAAAGTAACAAATGTCCATAAGCCAACACAAGACATCCCACCTAAAGTGATTACAACCCAAGAAGCAACTGCCATTAACGCACCTACAAAAAACAAACCACGATGACTTACTCGATCACCAAG
18 changes: 18 additions & 0 deletions test/fixtures/files/test-fq-file_S1_L001_R1_001.fq
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
@gi|662858600|ref|NC_013766.2|-540/1
CTGTGGCGGGGACAATTATGATTGGTTTACTTACAGTGTCGCTTTTAATCGGTGTAATTTGGGCGCCGAAAACACGTGGCAGATCACTTGATGATATTACGAAGGAACGTTACGGAAATACAATTGATTAAAGAAAAGGAGCCAGACCAGTGAAACATTATGTTGCAGTAGATATTGGTGCATCAAGTGGTCGATTAATTCTAGGGAAATTGGTGAATGAAAAATTACAATTAGAAGAAATTCACCGTTT
+
[email protected]>IGHHFFHII=IIBIIFIAHFIIHFFAAC@HDIIIH*IIIHIIHIIHCIHHIHHHHHHHHHEIGIHHIHHHCHHHGHHGFFEFHGHFFE+DGD>AAG6;CG*EEGGGFGFGEGE4ECEGEE1?G?DGGEG*:GEEGDE:?GGEEEEGFGGGDG6GGEGGFEGGC6:GEEHE:HGECDEG?:GEGGDG:GEGE?EEAEEEGC/GAGEEAG
@gi|662858600|ref|NC_013766.2|-538/1
CGAAAACACGTGGCAGATCACTTGATGATATTACGAAGGAACGTTACGGAAATACAATTGATTAAAGAAAAGGAGGTAGACCAGTGAAACATTATGTTGCAGTAGATATTGGTGCATCAAGTGGTCGATTAATTCTAGGGAAATTGGTGAATGAAAAATTACAATTAGAAGAAATTCACCGTTTTAAAAATGGTTTTACGTACCGAGATGGACACGAACGCTGGGAAATTGATCAACTAATGCAGGAAAT
+
??A??BBBDD.DDDDBFGFFFGIIHIIIFEFII0EFIHI0EIH0HHGIFI@HHIHIHFHIHIIEIIGHHIHHIIH+HIIIHIG8HIIG?HEHGIHCIIHHIDBHIHHGHE@FIFFHEEHEH=G;9EC(CGF*GFFGE:DGEE@EGEGGGG@EGGEG8GGCEECCGG6AGE*;FAEDFC?C0CFG0GG;FGEG6E<GC?:0E<?*CECGGE,HHFGHFEG??80AF??GCCGGE*GGE0ECEE/:<GGG?E
@gi|662858600|ref|NC_013766.2|-536/1
TATACTCGTTAGCCATTCTAGGCTGATTTGTTGGTCACGAAAAAGGATGTTGATGAGAATGTCCTTTTCGCCTGTTGCTTTTATGGAATGATGGCAGCCGCTGTCTAAAAGTAAAAGTTCTCCTTCATGTAAAGTTTCTTTATTTGCTTCAATGATTTGTTCAGAGCTTCCTGAATACATGTAATTTAGTTCAAGAAATTGATGCGTATGGTATGGGTAGTCGGCAATTCGGTTGTGTTTGCTTATATAA
+
?<AAABBBBDBD<BDDFEG>FFHII>FIHIGIIFIHEH/HGF,HHHIHIHHDD/II?CIHIACHFI5HG=IHGIIHHIFDHIFHIDGIFCFIEGHHCHHGHHHHCHFGGHHHFHEEHGB?GF.GGF=GGG@DDHGEGCG;GDG=*)EGFEG*GGGEEGBAGEEGDC;GEGG86G?8GEGCGGCFGGGCG?EEEG:GGAFCGED*CE:0G,CHHECHEC,CEEEG:FE(G*AGEEGGGGGGG<EGGGF?:F
@gi|662858600|ref|NC_013766.2|-534/1
TAATCCGTCTACTTATCATGCCTTTAATGATCAAACAGCTGAAAAGCCAAAAGGCCATGACAAACTTACAACCGAAAATCAAAGAACTACAAGAAAAATACTCGTCTAAAGATAATGAAACAATACCAAAACTACAACAAGAAACAATGCGTCTATATCAAGAAAATAGCGTAAATCCAATGATGGGTTGTTTACCATTATTAATCCAAATGCCTATTCTACTAGGATTTTACCAAGCGATTAGTAGAAC
+
??5?ABBBDDD@[email protected]@HFGHFHI?EAFHEIHFIHIGDFBIIII?HHCIIHHIIE/DFEHGI5HHHFHHGIHGHGGD)G8H,FG+GGCGHGCGGGFEHE?EEGGADFED;EG?GG?EEE8EGCCFGGGG?GEFGEGGGG;GC6GGG8AAECFCEGGEEGCGFGACGG?HHCHGEFG6G2A'CGAGEG:/FEG?1GE0GFGEGEEA0CC
@gi|662858600|ref|NC_013766.2|-532/1
TTTCTTAGTGGGTGTGTACTTATTTTGGAATTTAGTAGCGGGTGCAATGGGATTCTTTATGCCGTTTGTATATGAAACGGTGGGTGGTCTTTCTAATACACAAGCGAATTTATTGCAAGCTGTATTATGGATACTAACAGCAGCTTCTACATACTTTGGCTTTGCTAAATTTGGTGATCGAGTAAGTCATCGTGGGTTGTTTTTTGTAGGGGCTTTAATGGCAGTTGCTTCTTGGGTTGTACTTACTTTT
Binary file not shown.
18 changes: 18 additions & 0 deletions test/fixtures/files/test-fq-file_S1_L001_R2_001.fq
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
@gi|662858600|ref|NC_013766.2|-540/2
TCAAAACATAGTCAACGCCCCACGTGTCAATTCCAAGCACACATTCCGAAATCCCCAGTTGCTTTACTTTTTCCAAGCCAATAAAAATTTCCTGCATTAGTTGATCAATTTCCCAGCGTTCGTGTCCATCTCGGTACGAAAAACCATTTTTAAAACGGTGAATTTCTTCTAATTGTAATTTTTCATTCACCAATTTCCCTAGAATTAATCAACCACTTGATGCACCAATATCTACTGCAACATAATGTTT
+
??A5ABB?D+A-DD@<CFFF.FI>FE/IIFH=IHCHG.II/CIHHBIIHFHHHHH=HHIH5GHI5HHGIFFIHFHFHGEBIIHHFHHCEHHFCFBDCHH+=@HHGG-=*EDHB5GGGEHH2FBDHEF=,B??E.GGFG*FBCEEE82(EGGEE5GEECEEEGGGGEGEEG/G?EAFFDF?CEGGFFA<1(GFGEFE:E:GE?EGG*EEDA(G(GGFE7,G8GE*C?FF*(EE??E?A:*(E/'E*FCG)E
@gi|662858600|ref|NC_013766.2|-538/2
ATTTAAAGTTCGTTTTTCGCGATAACTAATTGGATCTGCCAACTTCTCACCGGAAGCCCCTATCAAAACATAGTCAACGCCCCACGTGTCAATTCCAAGCACACTTTCCGAAATCCCCAGTTGCTTTACTTTTTTCAAGCCAATAAAAATTTCCTACATTAGCTGGTCAATTTCCCAGCGTTTGTGTCCATCTCGGTGCGTAAAACCATTTTTAAAACGGTGAAGATCTTCTAATTGTAATTGTTCATTC
+
???A??<B<D<-BD5-CF>GGFFIHHHHCI>AFI>I9EHDHIDIFEIGI-CHHGHDIDHCAIEFHFFHH-IEIACAFAHECIIHFH+EIHH-HHGDBHIHHH2H#DHFFFHGEHEGEEHB@FDGDG(EFH@EGC*GEG@HCGEEFGBGDA;EFEC#:CEFAE*3G.GEG9E=0*GF*2FCCG(/?A0DFE8(::64?.E<</DA8A6:CHEGHE*0.8EGFGG(**6A6GEC(:G6E*A1(8.G(6(/?E
@gi|662858600|ref|NC_013766.2|-536/2
CAAATTTACAGAAGGAGATTGTGAAATGGAAGCGCTTAATAAAAAATTATTTCGCCTAAATTCAAAAAAAAAAATCCAAAAAAGCACTGGCACTTTTGTTCCCGATTTACCCAATGGATCCTTTTTAAAAGAGAACGGCAGCATGGAAATATTAAATGATTATTTCTTCAAAAACAAAGACATTTATATAAGCAAACACAGCCGATTTGCCGACTACCCATACCATACGCATCAATTTCTTGAACTAAAT
+
??<,??BBBDDDBD-?F+6CG+FHI6FHEHEI9FIHHHGIIFFEIFFAFGFCGHHFHII+G=HHGH--5FI-HAFHGHIHDA+HIH-HHIH<+FHGIHG*;E2HGFHI@FHFGH5EF<H7+FB+HHFGE#GFDGEGC,GEEEG*DGEG*CG0G99GGFEEFC,(?EGEEE(2<G8EGEEGGCGGE/EEF6(CE0CGE?AA#CC:=EH*:?H:EG*?(EGGGG;A*F:G/E6.*E???6CECAG:?*EAEC
@gi|662858600|ref|NC_013766.2|-534/2
TGATGTAAACAATCATTGCCAGTGATTTATTTTGCTGTGTTTGCCCCATCATAGAAATTTTTGATGATAAGAATGTTGTAAATGCCGCAACAACCGGTAAGATGTAATATGGATCTGGATTTCCCAGTTGTATCCATAAGAACGAATCTGTTTTGATTTCTGCTGTTCTACTAATCGCTTGGTAAAATCCTAGTATAATAGGCATTTGGATTAATAATGGGAAACAACCCATCATTGGATTTACGCTATT
+
?????BBBDDDEDEDD6FF@C+IHIFCEHHHEICIHHI/HIHHHHAFHHHHIHHHH@HIHEGICHIHCIIHIGCF-FHH-FFI>BHHEGHIH=IIHHHIHHHG+HH6CHHD+CC?EHHGDFG+GF(EEGE(D,EEGEE3HAD)EE<GD1EFF@FCGGG:E9:G<F?6*F>(GE*C2<AEAG:'6G?#E.6:<?*C(?E**G/(C8CECG/FE@GG=0G(:*:C??(AEECFCEG*G?E:0F.G0(GC/EC
@gi|662858600|ref|NC_013766.2|-532/2
CACCTGTACTACCACGAACTAAGAAAAACATCACGCCTTGAACCCCACCACGATATTTTCTTGGGAAAAGTTCTGTGGACCAAAGTGCGTAAAAAGCTTGTGCACCAATACCTGCTGAAATAACCCATAAAGTAACAAATGTCCATAAGCCAACACAAGACATCCCACCTAAAGTGATTACAACCCAAGAAGCAACTGCCATTAACGCACCTACAAAAAACAAACCACGATGACTTACTCGATCACCAAG
Loading

0 comments on commit 0d5b6b1

Please sign in to comment.