def input_tree(self): sessions = [] visit_ids = set() for subj_id, visits in list(self.PROJECT_STRUCTURE.items()): for visit_id, filesets in list(visits.items()): sessions.append( Session(subj_id, visit_id, filesets=[ Fileset(d, text_format, subject_id=subj_id, visit_id=visit_id, from_study=((self.STUDY_NAME if d != 'one' else None))) for d in filesets ])) visit_ids.add(visit_id) subjects = [ Subject(i, sessions=[s for s in sessions if s.subject_id == i]) for i in self.PROJECT_STRUCTURE ] visits = [ Visit(i, sessions=[s for s in sessions if s.visit == i]) for i in visit_ids ] return Tree(subjects=subjects, visits=visits)
def input_tree(self): fields = [ Field(name='acquired_field1', value=1, dtype=int, frequency='per_session', subject_id='0', visit_id='0'), Field(name='acquired_field1', value=2, dtype=int, frequency='per_session', subject_id='0', visit_id='1'), Field(name='acquired_field1', value=3, dtype=int, frequency='per_session', subject_id='1', visit_id='0'), Field(name='acquired_field1', value=4, dtype=int, frequency='per_session', subject_id='1', visit_id='1'), Field(name='acquired_field2', value=10, dtype=int, frequency='per_session', subject_id='0', visit_id='0'), Field(name='acquired_field2', value=20, dtype=int, frequency='per_session', subject_id='0', visit_id='1'), Field(name='acquired_field2', value=30, dtype=int, frequency='per_session', subject_id='1', visit_id='0')] return Tree.construct(self.dataset.repository, fields=fields)
def input_tree(self): sessions = [] for subj_id in self.SUBJECT_IDS: for visit_id in self.VISIT_IDS: sessions.append( Session(subj_id, visit_id, filesets=[ Fileset('one_input', text_format, subject_id=subj_id, visit_id=visit_id), Fileset('ten_input', text_format, subject_id=subj_id, visit_id=visit_id) ])) subjects = [ Subject(i, sessions=[s for s in sessions if s.subject_id == i]) for i in self.SUBJECT_IDS ] visits = [ Visit(i, sessions=[s for s in sessions if s.visit == i]) for i in self.VISIT_IDS ] return Tree(subjects=subjects, visits=visits)
def input_tree(self): fields = [] for subj_i in range(self.NUM_SUBJECTS): for visit_i in range(self.NUM_VISITS): fields.append( Field(name='acquired_field1', value=visit_i + subj_i * 10, dtype=int, frequency='per_session', subject_id=str(subj_i), visit_id=str(visit_i))) return Tree.construct(self.dataset.repository, fields=fields)
def input_tree(self): filesets = [] for subj_id, visit_ids in list(self.PROJECT_STRUCTURE.items()): for visit_id, fileset_names in list(visit_ids.items()): # Create filesets for name in fileset_names: from_analysis = self.STUDY_NAME if name != 'one' else None filesets.append( Fileset(name, text_format, subject_id=subj_id, visit_id=visit_id, from_analysis=from_analysis)) return Tree.construct(self.dataset.repository, filesets=filesets)
def input_tree(self): filesets = [] for subj_id in self.SUBJECT_IDS: for visit_id in self.VISIT_IDS: filesets.append( Fileset('one_input', text_format, subject_id=subj_id, visit_id=visit_id)) filesets.append( Fileset('ten_input', text_format, subject_id=subj_id, visit_id=visit_id)) return Tree.construct(self.dataset.repository, filesets=filesets)
def get_tree(self, dataset, sync_with_repo=False): filesets = [ # Subject1 Fileset('ones', text_format, frequency='per_subject', subject_id='subject1', resource_name='text', dataset=dataset), Fileset('tens', text_format, frequency='per_subject', subject_id='subject1', resource_name='text', dataset=dataset), # subject1/visit1 Fileset('hundreds', text_format, subject_id='subject1', visit_id='visit1', resource_name='text', dataset=dataset), Fileset('ones', text_format, subject_id='subject1', visit_id='visit1', resource_name='text', dataset=dataset), Fileset('tens', text_format, subject_id='subject1', visit_id='visit1', resource_name='text', dataset=dataset), Fileset('with_header', text_format, frequency='per_session', subject_id='subject1', visit_id='visit1', resource_name='text', dataset=dataset), # subject1/visit2 Fileset('ones', text_format, subject_id='subject1', visit_id='visit2', resource_name='text', dataset=dataset), Fileset('tens', text_format, subject_id='subject1', visit_id='visit2', resource_name='text', dataset=dataset), # Subject 2 Fileset('ones', text_format, frequency='per_subject', subject_id='subject2', resource_name='text', dataset=dataset), Fileset('tens', text_format, frequency='per_subject', subject_id='subject2', resource_name='text', dataset=dataset), # subject2/visit1 Fileset('ones', text_format, subject_id='subject2', visit_id='visit1', resource_name='text', dataset=dataset), Fileset('tens', text_format, subject_id='subject2', visit_id='visit1', resource_name='text', dataset=dataset), # subject2/visit2 Fileset('ones', text_format, subject_id='subject2', visit_id='visit2', resource_name='text', dataset=dataset), Fileset('tens', text_format, subject_id='subject2', visit_id='visit2', resource_name='text', dataset=dataset), # Visit 1 Fileset('ones', text_format, frequency='per_visit', visit_id='visit1', resource_name='text', dataset=dataset), # Analysis Fileset('ones', text_format, frequency='per_dataset', resource_name='text', dataset=dataset)] fields = [ # Subject 2 Field('e', value=3.33333, frequency='per_subject', subject_id='subject2', dataset=dataset), # subject2/visit2 Field('a', value=22, subject_id='subject2', visit_id='visit2', dataset=dataset), Field('b', value=220, subject_id='subject2', visit_id='visit2', dataset=dataset), Field('c', value='buggy', subject_id='subject2', visit_id='visit2', dataset=dataset), # Subject1 Field('e', value=4.44444, frequency='per_subject', subject_id='subject1', dataset=dataset), # subject1/visit1 Field('a', value=1, subject_id='subject1', visit_id='visit1', dataset=dataset), Field('b', value=10, subject_id='subject1', visit_id='visit1', dataset=dataset), Field('d', value=42.42, subject_id='subject1', visit_id='visit1', dataset=dataset), # subject1/visit2 Field('a', value=2, subject_id='subject1', visit_id='visit2', dataset=dataset), Field('c', value='van', subject_id='subject1', visit_id='visit2', dataset=dataset), # Visit 1 Field('f', value='dog', frequency='per_visit', visit_id='visit1', dataset=dataset), # Visit 2 Field('f', value='cat', frequency='per_visit', visit_id='visit2', dataset=dataset), # Analysis Field('g', value=100, frequency='per_dataset', dataset=dataset)] # Set URI and IDs if necessary for repository type if sync_with_repo: for fileset in filesets: fileset.get() for field in fields: field.get() tree = Tree.construct(self.dataset, filesets, fields) return tree
def get_tree(self, repository, set_ids=False): sessions = [ Session('subject1', 'visit1', filesets=[ Fileset('hundreds', text_format, subject_id='subject1', visit_id='visit1', repository=repository), Fileset('ones', text_format, subject_id='subject1', visit_id='visit1', repository=repository), Fileset('tens', text_format, subject_id='subject1', visit_id='visit1', repository=repository) ], fields=[ Field('a', value=1, subject_id='subject1', visit_id='visit1', repository=repository), Field('b', value=10, subject_id='subject1', visit_id='visit1', repository=repository), Field('d', value=42.42, subject_id='subject1', visit_id='visit1', repository=repository) ]), Session('subject1', 'visit2', filesets=[ Fileset('ones', text_format, subject_id='subject1', visit_id='visit2', repository=repository), Fileset('tens', text_format, subject_id='subject1', visit_id='visit2', repository=repository) ], fields=[ Field('a', value=2, subject_id='subject1', visit_id='visit2', repository=repository), Field('c', value='van', subject_id='subject1', visit_id='visit2', repository=repository) ]), Session('subject2', 'visit1', filesets=[ Fileset('ones', text_format, subject_id='subject2', visit_id='visit1', repository=repository), Fileset('tens', text_format, subject_id='subject2', visit_id='visit1', repository=repository) ], fields=[]), Session('subject2', 'visit2', filesets=[ Fileset('ones', text_format, subject_id='subject2', visit_id='visit2', repository=repository), Fileset('tens', text_format, subject_id='subject2', visit_id='visit2', repository=repository) ], fields=[ Field('a', value=22, subject_id='subject2', visit_id='visit2', repository=repository), Field('b', value=220, subject_id='subject2', visit_id='visit2', repository=repository), Field('c', value='buggy', subject_id='subject2', visit_id='visit2', repository=repository) ]) ] project = Tree( subjects=[ Subject('subject1', sessions=[ s for s in sessions if s.subject_id == 'subject1' ], filesets=[ Fileset('ones', text_format, frequency='per_subject', subject_id='subject1', repository=repository), Fileset('tens', text_format, frequency='per_subject', subject_id='subject1', repository=repository) ], fields=[ Field('e', value=4.44444, frequency='per_subject', subject_id='subject1', repository=repository) ]), Subject('subject2', sessions=[ s for s in sessions if s.subject_id == 'subject2' ], filesets=[ Fileset('ones', text_format, frequency='per_subject', subject_id='subject2', repository=repository), Fileset('tens', text_format, frequency='per_subject', subject_id='subject2', repository=repository) ], fields=[ Field('e', value=3.33333, frequency='per_subject', subject_id='subject2', repository=repository) ]) ], visits=[ Visit('visit1', sessions=[s for s in sessions if s.visit_id == 'visit1'], filesets=[ Fileset('ones', text_format, frequency='per_visit', visit_id='visit1', repository=repository) ], fields=[ Field('f', value='dog', frequency='per_visit', visit_id='visit1', repository=repository) ]), Visit('visit2', sessions=[s for s in sessions if s.visit_id == 'visit2'], filesets=[], fields=[ Field('f', value='cat', frequency='per_visit', visit_id='visit2', repository=repository) ]) ], filesets=[ Fileset('ones', text_format, frequency='per_study', repository=repository) ], fields=[ Field('g', value=100, frequency='per_study', repository=repository) ]) if set_ids: # For xnat repository for fileset in project.filesets: fileset._id = fileset.name for visit in project.visits: for fileset in visit.filesets: fileset._id = fileset.name for subject in project.subjects: for fileset in subject.filesets: fileset._id = fileset.name for session in subject.sessions: for fileset in session.filesets: fileset._id = fileset.name return project