我有一个非常大的文件,我正在解析并从该行获取键值.我只想要第一个键和值,只有一个值.也就是说,我正在删除重复的值
所以它看起来像:
{
A:1
B:2
C:3
D:2
E:2
F:3
G:1
}
Run Code Online (Sandbox Code Playgroud)
它会输出:
{E:2,F:3,G:1}
Run Code Online (Sandbox Code Playgroud)
这有点让人困惑,因为我并不在乎关键是什么.所以上面的E可以用B或D代替,F可以用C代替,G可以用A.代替.
这是我发现的最佳方法,但随着文件变大,速度非常慢.
mapp = {}
value_holder = []
for i in mydict:
if mydict[i] not in value_holder:
mapp[i] = mydict[i]
value_holder.append(mydict[i])
Run Code Online (Sandbox Code Playgroud)
每次都必须通过value_holder查看:(有更快的方法吗?
随着 Github 私人页面的出现。我实际上可以将在私人存储库中运行的 github 操作放在其中。但是,私有页面无法呈现应有权访问此私有存储库的徽章。
但是,如果我单击图像,就会看到徽章。这是因为我在 Github 中进行了身份验证,并且可以看到有关存储库的所有内容。我想知道为什么行动徽章没有显示。
这是我的文档结构:
{
"_id" : ObjectId("50dcd7ff4de274a2c4a31df0"),
"seq_name" : "169:D18M6ACXX:1:1111:17898:82486:GTGACA_10",
"raw_seq" : "TTGACCTGAGGAGACGGTGACCAGGGTTCCCTGGCCCCAGTAGTCAACGGGAGTTAGACTTCTCGCACAGTAATAAACAGCCGTGTCCTCGGCTCTCAGGCTGTTCATTTGCAGA",
"seq_aa" : "LQMNSLRAEDTAVYYCARSLTPVDYWGQGTLVTVSSGQ",
"cdr3_seq" : "GCGAGAAGTCTAACTCCCGTTGACTAC",
"cdr3_seq_aa" : "ARSLTPVDY",
"cdr3_seq_len" : 27,
"cdr3_seq_aa_len" : 9,
"vg" : "IGHV3-48*03",
"dg" : "IGHD3-10*02R",
"jg" : "IGHJ4*02",
"donor" : 10
}
Run Code Online (Sandbox Code Playgroud)
我真的很喜欢 MongoDB 框架,但是我在使用这个分组管道时遇到了麻烦,因为我还不能 $out 到另一个集合。我可以做这个多分组管道。
db.collection.aggregate({$match:{cdr3_seq_aa_len:{$gt:3}},
{$group:{_id:$cdr3_seq_aa,other_set:{$addToSet:$cdr3_seq_aa_len}}},
{$group:{_id:$other_set,sum:{$sum:1}}})
Run Code Online (Sandbox Code Playgroud)
这给了我按长度分组的唯一$cdr3_seq_aa 的数量。
{ id:40, sum:1002031,
id:41, sum:1949402,....
Run Code Online (Sandbox Code Playgroud)
然而,我想做的第一个手术是按捐赠者分组。所以我可以先知道每个捐助者之间有多少个唯一的 cdr3_seq_aa 字符串。然后我想按长度对它进行分组并计算有多少字符串与长度分组。
我有以下情节,如下所示:
我正在尝试根据此处的以下代码在另一层中添加点
我导入的数据框如下所示:
residue_id residue_num per_ddg pg9_seq_bool
A 96 0.00437094862845686 FALSE
A 97 -0.0026333752377897 FALSE
A 98 -0.00453070737795937 FALSE
A 99 -0.0130564560942629 TRUE
A 100 -0.00578979380922636 FALSE
A 101 -0.0128130535970934 FALSE
A 102 -0.0264740211311766 FALSE
A 103 -0.183036342874782 FALSE
A 104 -0.00550669729238368 FALSE
Run Code Online (Sandbox Code Playgroud)
并使用以下代码生成图:
library(ggplot2)
input_ddg <-read.table('per_residue_average.txt',header=T,sep="\t",stringsAsFactors=TRUE)
input_ddg$pg9_seq_bool[input_ddg$pg9_seq == "TRUE"] <- T
input_ddg$pg9_seq_bool[input_ddg$pg9_seq == "FALSE"] <- F
pdf("output.pdf")
ggplot(input_ddg, aes(residue_id,residue_num,fill=per_ddg) ) +
theme_bw() +
geom_tile() +
geom_point(data=input_ddg,aes(size=ifelse(pg9_seq_bool, "dot", "no_dot"))) +
scale_size_manual(values=c(dot=6,no_dot=NA))+
scale_fill_gradient2(low="blue", mid="white",high="red", midpoint=-.25, na.value="black") +
ylab( "Residue …
Run Code Online (Sandbox Code Playgroud) 有人可以帮助我(大熊猫)中的(可能的)群体.
这是df:
easy_donor v_fam count
0 donor_1_NS IGHV1 5202376
1 donor_1_NS IGHV2 1955547
2 donor_1_NS IGHV3 70426272
3 donor_1_NS IGHV4 452367
4 donor_1_NS IGHV5 4842145
5 donor_1_NS IGHV6 490142
6 donor_1_NS IGHV7 19708
24 donor_2_NS IGHV1 31258603
25 donor_2_NS IGHV2 5295899
26 donor_2_NS IGHV3 47286417
27 donor_2_NS IGHV4 44553802
Run Code Online (Sandbox Code Playgroud)
然后我希望每个计数作为由捐赠者分组的计数总和的频率.
喜欢:
df.groupby('easy_donor').sum()['count']
easy_donor
donor_1_NS 83394639
donor_2_NS 129191591
donor_3_HS 220549762
donor_3_NS 104821016
donor_4_HS 200444923
donor_4_NS 121287306
Run Code Online (Sandbox Code Playgroud)
然后,如果它们与easy_donor列匹配,则原始数据帧中的每个计数除以groupby总和.我是否必须加入原始数据框?
我为每一行都有一个唯一的索引,所以我的数据框看起来像这样 -
>>>df.head()
Alignment Sequence Sequence2b Post2b SequenceLength Sequence2bLength Name Year Clade Country Patient medoid
index
44644 MRV-KET----QMNWP---N----------L---W---K-------... MRVKETQMNWPNLWKWGTLIFGLVIICSAADNLWVTVYYGVPVWRD... AGY 778 0 AA111a_WG3 2009 01_AE TH AA111 NA
3616 ------T----QMNWQ---H----------L---W---K-------... TQMNWQHLWKWGTLILGLVIICSASNLWVTVYYGVPVWKDADTTLF... AVVKINENATLDDTSY LKN 822 16 041_WK32 - B CH 041 NA
36025 MRV-KET----QMSWP---N----------L---W---K-------... MRVKETQMSWPNLWKWGTLILGLVIMCSASDNLWVTVYYGVPVWRD... D NTS 843 1 AE_Env_CR11_Jan09D 2009 01_AE TH CR11 NA
42027 MRV-KGI----RKNCQ---H----------L---W---R-------... MRVKGIRKNCQHLWRWGIMLLGMLMICSTAEKLWVTVYYGVPVWRE... DADEIHNDDNSS SCY 862 12 CR0058S 2002 B US - NA
31626 MRV-RGI----PRNYP---Q----------W---W---I-------... MRVRGIPRNYPQWWIWGILGFWMIIICRVMESSWVTVYYGVPVWTD... DAIPLNGNSSNSSSNSSEY LIN 852 19 03ZASK006B2 2003 C ZA SK006 NA …
Run Code Online (Sandbox Code Playgroud) python ×3
pandas ×2
database ×1
dictionary ×1
ggplot2 ×1
github ×1
github-pages ×1
group-by ×1
maps ×1
mongodb ×1
r ×1
statistics ×1
unique ×1