11package org .labkey .sequenceanalysis .run .util ;
22
33import htsjdk .samtools .SAMFileHeader ;
4+ import htsjdk .samtools .SAMReadGroupRecord ;
45import htsjdk .samtools .util .FastqQualityFormat ;
56import org .apache .log4j .Logger ;
67import org .jetbrains .annotations .Nullable ;
@@ -31,12 +32,12 @@ public File execute(File file, @Nullable File file2) throws PipelineJobException
3132 return execute (file , file2 , null , null );
3233 }
3334
34- public File execute (File file , @ Nullable File file2 , @ Nullable SAMFileHeader .SortOrder sortOrder , @ Nullable String readGroupName ) throws PipelineJobException
35+ public File execute (File file , @ Nullable File file2 , @ Nullable SAMFileHeader .SortOrder sortOrder , @ Nullable SAMReadGroupRecord rg ) throws PipelineJobException
3536 {
3637 getLogger ().info ("Converting FASTQ to BAM: " + file .getPath ());
3738 getLogger ().info ("\t FastqToSam version: " + getVersion ());
3839
39- execute (getParams (file , file2 , sortOrder , readGroupName ));
40+ execute (getParams (file , file2 , sortOrder , rg ));
4041 File output = new File (getOutputDir (file ), getOutputFilename (file ));
4142 if (!output .exists ())
4243 {
@@ -51,7 +52,7 @@ protected String getToolName()
5152 return "FastqToSam" ;
5253 }
5354
54- private List <String > getParams (File file , File file2 , SAMFileHeader .SortOrder sortOrder , String readGroupName ) throws PipelineJobException
55+ private List <String > getParams (File file , File file2 , SAMFileHeader .SortOrder sortOrder , @ Nullable SAMReadGroupRecord rg ) throws PipelineJobException
5556 {
5657 List <String > params = getBaseArgs ();
5758 inferMaxRecordsInRam (params );
@@ -64,9 +65,23 @@ private List<String> getParams(File file, File file2, SAMFileHeader.SortOrder so
6465 params .add ("SORT_ORDER=" + sortOrder .name ());
6566 }
6667
67- if (readGroupName != null )
68+ if (rg != null )
6869 {
69- params .add ("READ_GROUP_NAME=" + readGroupName );
70+ params .add ("READ_GROUP_NAME=" + rg .getReadGroupId ());
71+
72+ if (rg .getPlatform () != null )
73+ params .add ("PLATFORM=" + rg .getPlatform ());
74+
75+ if (rg .getPlatformUnit () != null )
76+ params .add ("PLATFORM_UNIT=" + rg .getPlatformUnit ());
77+
78+ if (rg .getPlatformUnit () != null )
79+ params .add ("SAMPLE_NAME=" + rg .getSample ());
80+ }
81+ else
82+ {
83+ params .add ("READ_GROUP_NAME=null" );
84+ params .add ("SAMPLE_NAME=SAMPLE" );
7085 }
7186
7287 FastqQualityFormat encoding = _fastqEncoding ;
@@ -85,7 +100,6 @@ private List<String> getParams(File file, File file2, SAMFileHeader.SortOrder so
85100 }
86101
87102 params .add ("QUALITY_FORMAT=" + encoding );
88- params .add ("SAMPLE_NAME=SAMPLE" );
89103 params .add ("OUTPUT=" + new File (getOutputDir (file ), getOutputFilename (file )).getPath ());
90104
91105 return params ;
0 commit comments