File tree Expand file tree Collapse file tree 2 files changed +28
-3
lines changed
q2_types/per_sample_sequences Expand file tree Collapse file tree 2 files changed +28
-3
lines changed Original file line number Diff line number Diff line change 2424from q2_types .bowtie2 import Bowtie2IndexDirFmt
2525from q2_types .feature_data import DNAFASTAFormat
2626from ._util import _parse_sequence_filename , _manifest_to_df
27- from .._util import FastqGzFormat
27+ from .._util import FastqGzFormat , FileDictMixin
2828from ._util import validate_paired_ends_equal_record_count
2929
3030
@@ -708,15 +708,20 @@ def _validate_(self, level):
708708
709709
710710# borrowed from q2-phylogenomics
711- class BAMDirFmt (model .DirectoryFormat ):
711+ class BAMDirFmt (model .DirectoryFormat , FileDictMixin ):
712+ pathspec = r'.+\.bam$'
713+ suffixes = ['.bam' ]
712714 bams = model .FileCollection (r'.+\.bam' , format = BAMFormat )
713715
714716 @bams .set_path_maker
715717 def bams_path_maker (self , sample_id ):
716718 return '%s.bam' % sample_id
717719
718720
719- class MultiBAMDirFmt (MultiDirValidationMixin , model .DirectoryFormat ):
721+ class MultiBAMDirFmt (MultiDirValidationMixin , model .DirectoryFormat ,
722+ FileDictMixin ):
723+ pathspec = r'.+\.bam$'
724+ suffixes = ['.bam' ]
720725 bams = model .FileCollection (r'.+\/.+\.bam' , format = BAMFormat )
721726
722727 @bams .set_path_maker
Original file line number Diff line number Diff line change @@ -858,6 +858,13 @@ def test_bam_dirmt(self, p):
858858
859859 format .validate ()
860860
861+ file_dict = format .file_dict (relative = True )
862+
863+ assert file_dict == {
864+ "sample1" : "sample1.bam" ,
865+ "sample2" : "sample2.bam" ,
866+ }
867+
861868 @patch ('subprocess.run' , return_value = Mock (returncode = 3 ))
862869 def test_bam_dirmt_invalid (self , p ):
863870 # this patch is not ideal but samtools' installation sometimes can
@@ -877,6 +884,19 @@ def test_multibam_dirmt(self, p):
877884
878885 format .validate ()
879886
887+ file_dict = format .file_dict (relative = True )
888+
889+ assert file_dict == {
890+ "sample1" : {
891+ "map1" : "sample1/map1.bam" ,
892+ "map2" : "sample1/map2.bam" ,
893+ },
894+ "sample2" : {
895+ "map1" : "sample2/map1.bam" ,
896+ "map2" : "sample2/map2.bam" ,
897+ },
898+ }
899+
880900
881901if __name__ == "__main__" :
882902 unittest .main ()
You can’t perform that action at this time.
0 commit comments