def parse_ped(ped_file,experiment_id): f = open(ped_file,'r') f.readline() patients = [] for line in f: line = line.strip().split(',') p = Patient(patient_name = line[0], affliction_status=line[6]=='1', family=Family.objects.get_or_create(family_name=line[1])[0], gender= ('male' if line[5]=='0' else 'female'),experiment=Experiment.objects.get(pk=experiment_id)) patients.append(p) Patient.objects.bulk_create(patients) print 'Saved %s Patients in the First Pass' % len(patients) f.close() f = open(ped_file,'r') f.readline() patients = [] for line in f: changed = False line = line.strip().split(',') p = Patient.objects.get(patient_name=line[0],experiment_id__exact=experiment_id) if line[3] != '?': changed=True p.father = Patient.objects.get(patient_name=line[3],experiment_id__exact=experiment_id) if line[4] != '?': changed=True p.mother = Patient.objects.get(patient_name=line[4],experiment_id__exact=experiment_id) if changed: patients.append(p) p.save() print 'Updated %s Patients in the Second Pass' % len(patients)