7.4. Set Exercises#
7.4.1. Exercise 1#
Write a function that takes name of two gene files, reads them, and returns which genes are:
In first file but not in second file
In second file but not in first file
Show code cell source
def get_list_from_file(filename):
lst = []
with open(filename) as file:
for line in file:
if not line.strip():
continue
lst.append(line.strip())
return lst
def compare_two_lists(filename1, filename2):
list1 = get_list_from_file(filename1)
list2 = get_list_from_file(filename2)
return (list(set(list1)-set(list2)), list(set(list2)-set(list1)))
print(compare_two_lists('gene_list1.txt', 'gene_list2.txt'))
(['ACTBL2', 'ACTL8', 'ACP7', 'ABCB11', 'ACTB', 'ABCG1', 'AANAT', 'ACSM2A', 'ACSL5', 'ABCB7', 'AASS', 'ACLY', 'ABCA6', 'ACTN1', 'ABCF3', 'AADAC', 'AAR2', 'ACTR6', 'ACP1', 'ACSM3', 'ABCA10', 'A2M', 'AASDHPPT', 'ACP6', 'ACTR10', 'AADACL4', 'ACTL10', 'ACTRT2', 'ABCC3', 'ACTR3', 'ACHE', 'ACOT13', 'ABCA4', 'ABCF1', 'ABCC12', 'ABHD6', 'ABCC5', 'ACVR1', 'ABCA1', 'ACP5', 'ACTN3', 'ABCC2', 'ABCC11', 'ACOT8', 'ACSS2', 'ACP4', 'ACTN4', 'AASDH', 'ACTR3B', 'ACVR1C', 'ACSBG1', 'ACTG1', 'ABCB1', 'AADACL3', 'AARS1', 'ABCC1', 'ABCC4', 'ABCB6', 'ACTG2', 'ACSF3', 'ABCA13', 'ACSS1', 'ACTA1', 'ACOT12', 'ACOT6', 'ACTR2', 'ACSL3', 'AATK', 'ABHD10', 'ABCB8', 'ACOT9', 'ACSF2', 'ACVR1B', 'ABHD3', 'ACP2', 'ACSM5', 'ABCD2', 'ABHD8', 'ACY1', 'ABCG4', 'AARSD1', 'ABCE1', 'ABCA5', 'A1CF', 'AACS', 'ACSM1', 'AAMP', 'ABCA8', 'ACTR8', 'AATF', 'ACY3', 'AARD', 'A1BG', 'ABAT', 'ABCD4', 'ABHD4', 'ACIN1', 'ACOT4', 'ACTL9', 'ACER2', 'ACYP2', 'ACOT1', 'ACKR2', 'ABHD5', 'ACP3', 'ACSL6', 'ACKR3', 'ACTC1', 'ACE', 'AAAS', 'ACSS3', 'ACTR5', 'ACSL1', 'ABCB9', 'ACR', 'ACSM4', 'ABHD1', 'ABCA3', 'ACER1', 'ACSM2B', 'ACTRT1', 'ABCG8', 'AARS2', 'ACSL4', 'ACRV1', 'ACE2', 'ABCA9', 'ACOT11', 'ACOXL', 'ACTA2', 'ACTL6B', 'AAMDC', 'ACOD1', 'ABCA2', 'ACOT7', 'ABCB4', 'ACVRL1', 'ABCB10', 'ACO1', 'ABCC10', 'ACOT2', 'ACYP1', 'ABCC9', 'ACTR3C', 'A2ML1', 'ABCA7', 'ACD', 'ABCD3', 'ACRBP', 'ABHD2', 'ACTR1A', 'ACOX2', 'ACTL7B', 'ABCB5', 'AADACL2', 'ACER3', 'ACMSD', 'A4GNT', 'ACKR4', 'ACSBG2', 'ACTN2', 'ACTL7A', 'ABCC6', 'ABCG2', 'AAK1', 'ABCC8', 'ABCD1', 'ACTL6A', 'ACVR2B', 'ACO2', 'ACVR2A', 'A4GALT', 'ABCF2', 'ACKR1', 'ACOX3', 'ABCG5', 'ACSM6', 'AAGAB', 'ACTRT3', 'ACTR1B', 'AADAT', 'ADA', 'ABCA12', 'A3GALT2', 'ACOX1'], ['ZSCAN5B', 'ZNHIT3', 'ZNF776', 'ZRSR2', 'ZNF836', 'ZRANB2', 'ZNF716', 'ZNF780B', 'ZNF830', 'ZNF732', 'ZPLD1', 'ZNF790', 'ZNF878', 'ZNF883', 'ZNF784', 'ZNF747', 'ZNF816', 'ZNF799', 'ZNF835', 'ZP4', 'ZNF740', 'ZNF808', 'ZNHIT6', 'ZNHIT2', 'ZNF764', 'ZSCAN25', 'ZNF839', 'ZNF844', 'ZNF862', 'ZNF843', 'ZNF777', 'ZSCAN31', 'ZNF773', 'ZSWIM2', 'ZNF721', 'ZNF738', 'ZSWIM7', 'ZNF875', 'ZNF772', 'ZPBP', 'ZNF761', 'ZNF791', 'ZSWIM1', 'ZNF800', 'ZSCAN29', 'ZNF723', 'ZNF860', 'ZNF780A', 'ZNF891', 'ZSWIM5', 'ZNF768', 'ZNFX1', 'ZNF850', 'ZRANB1', 'ZSCAN10', 'ZNF717', 'ZNF829', 'ZSCAN18', 'ZNRF3', 'ZNF804B', 'ZNF728', 'ZNF814', 'ZNF865', 'ZNF879', 'ZSCAN1', 'ZNF783', 'ZNF789', 'ZSWIM6', 'ZNF778', 'ZNF737', 'ZNF793', 'ZNF765', 'ZNRD2', 'ZNF786', 'ZSCAN26', 'ZSWIM9', 'ZSCAN9', 'ZNF852', 'ZNF853', 'ZSCAN12', 'ZNF804A', 'ZNF813', 'ZPBP2', 'ZSWIM3', 'ZNF805', 'ZSCAN5C', 'ZSCAN16', 'ZNRD1', 'ZNF785', 'ZRANB3', 'ZNF750', 'ZPR1', 'ZNF775', 'ZNF831', 'ZNF823', 'ZNF787', 'ZNF837', 'ZNF729', 'ZNF821', 'ZNF718', 'ZNF736', 'ZNF763', 'ZNF714', 'ZSCAN23', 'ZNF766', 'ZSWIM8', 'ZNF827', 'ZNF782', 'ZNF781', 'ZNF724', 'ZP2', 'ZNF727', 'ZNRF1', 'ZNF888', 'ZNF841', 'ZP3', 'ZNRF4', 'ZSCAN22', 'ZNF792', 'ZSCAN20', 'ZNF730', 'ZNF735', 'ZSCAN4', 'ZNF746', 'ZSCAN2', 'ZSCAN21', 'ZNF774', 'ZNF846', 'ZSCAN30', 'ZNF749', 'ZNF770', 'ZUP1', 'ZNRF2', 'ZNF845', 'ZP1', 'ZSCAN5A', 'ZNF880', 'ZNF771', 'ZSWIM4', 'ZSCAN32', 'ZNF720', 'ZNHIT1', 'ZNF726'])