Redian新闻
>
寻找志同道合的一起做研究,基因表达调控,中山大学
avatar
寻找志同道合的一起做研究,基因表达调控,中山大学# Biology - 生物学
n*r
1
45分钟,只把第一题做完,第二题没时间问了。太惨了。
题目其实很简单,写一个方程生成gray code并按顺序输出相应的数字。
比如grayCode(3) = {0,1,3,2,6,7,5,4}
我先是尝试用iteration,越写越乱,干脆打倒重来用recursion。
刚写完graycode数组生成,还没写转化成int的function,时间到了。
悲惨...
三哥口音不错,人挺nice,给了不少提示,可惜,dream job就这么没了。
avatar
Y*i
2
同吃同住同玩~~~灰常的和谐!!
avatar
h*5
3
我是2013年底到中山大学中山眼科中心工作。回国前在NCI做计算生物学实验室PI。眼
科中心长期国内专业排名第一,有很高的门诊量(~100万)和手术量(~25万),中国
唯一的眼科学国家重点实验室在这里。 我从事生物信息学,研究主要基于高通量数据
及分析,一般的测序和质谱数据都做。对基因表达调控的基础研究感兴趣。现在实验室
的情况:
1. 现在关注(1)基因翻译调控(translational regulation of gene expression)
的全局分析和调控机制,主要用到ribosome profiling和质谱技术。(2) LncRNA能否
被翻译,翻译出的肽段的功能。
2. 实验室现有13人。计算9人,实验4人。有高性能计算集群,miseq和hiseq2500各
一台,和完备的分子生物实验室。现在各种高通量测序技术和计算平台都建好了,正常
工作。
3. 2016年5月份搬实验室,届时实验室大约300平方米。经费充足,这几年不用考虑
经费的问题。
这里看看有无志同道合的朋友一起做。这个职位的定位和待遇:
1. 特聘研究员或特聘副研究员,条件突出的通过中山大学百人计划可以正编。副研
要求>10分的至少一篇。正研要求>10分的至少两篇。关于待遇,副研25-30万年薪。正
研30-40万年薪。文章共同通讯。根据贡献排名。
2. 我需要的不是Lab Manager。需要有想法的。我本人专注计算,
因此希望你可以在实验方面可以独立的思考和工作。我能提供,高通量测序平台和技术
、生物信息分析、300-500万的启动资金、提供学生,技术员和博士后。
3. 如果要做到疾病的relevance,希望用肿瘤模型。眼科中心的眼肿瘤手术量相当
于整个欧洲的量。样本量优势明显。做基因转录或翻译调控,LncRNA或肿瘤的比较适合
实验室发展方向。
4. 这个职位适合有很多想法,想找一个高的平台,专注研究,尽快出东西获得独立
的人。如果你对做研究没有发自内心的兴趣,这个职位也许不适合。时间不等人,希望
能尽快到位。
抱歉写的比较啰嗦,主要是不想浪费大家时间。有问题我随时回答。谢谢大家。Email:
xiezhi at gmail.com。
avatar
d*t
4
what's gray code?

【在 n****r 的大作中提到】
: 45分钟,只把第一题做完,第二题没时间问了。太惨了。
: 题目其实很简单,写一个方程生成gray code并按顺序输出相应的数字。
: 比如grayCode(3) = {0,1,3,2,6,7,5,4}
: 我先是尝试用iteration,越写越乱,干脆打倒重来用recursion。
: 刚写完graycode数组生成,还没写转化成int的function,时间到了。
: 悲惨...
: 三哥口音不错,人挺nice,给了不少提示,可惜,dream job就这么没了。

avatar
w*o
5
看不到图
avatar
A*u
6
Q1: 回国前,national cancer institute 的computational biology PI??
Computational Biology, sometimes referred to as bioinformatics, is the
science of using biological data to develop algorithms and relations among
various biological systems. Prior to the advent of computational biology,
biologists were unable to have access to large amounts of data. Researchers
were able to develop analytical methods for interpreting biological
information, but were unable to share them quickly among colleagues.[3]
就是说,你是bioinformatics 的PI,, 懂了。。。一台computer 可以搞定的Pi...拿到
tenure 了么?为什么回国?就不追究你是哪个学校的bioinformatics PhD了。。
Q2. To be continued... ( 被切断,无法继续,sorry,:我用手机)

expression)

【在 h********5 的大作中提到】
: 我是2013年底到中山大学中山眼科中心工作。回国前在NCI做计算生物学实验室PI。眼
: 科中心长期国内专业排名第一,有很高的门诊量(~100万)和手术量(~25万),中国
: 唯一的眼科学国家重点实验室在这里。 我从事生物信息学,研究主要基于高通量数据
: 及分析,一般的测序和质谱数据都做。对基因表达调控的基础研究感兴趣。现在实验室
: 的情况:
: 1. 现在关注(1)基因翻译调控(translational regulation of gene expression)
: 的全局分析和调控机制,主要用到ribosome profiling和质谱技术。(2) LncRNA能否
: 被翻译,翻译出的肽段的功能。
: 2. 实验室现有13人。计算9人,实验4人。有高性能计算集群,miseq和hiseq2500各
: 一台,和完备的分子生物实验室。现在各种高通量测序技术和计算平台都建好了,正常

avatar
b*t
7
格雷码 连续的数一次flip一个bit

【在 d********t 的大作中提到】
: what's gray code?
avatar
e*r
8
ummmmmm, I don't know what to say...
avatar
A*u
9
Q2: hotspot 老板,你打开天窗说亮话,你现在缺的是什么?钱有了,人有了,原始数
据有了,不就是simulate么?你到底向美国生物界要什么?什么环节你不能搞定,I
don't understand .
Q3. 你那实验4人,不就是bench 技工水平的就行了吧。
希望老板真诚的交流。谢谢!

expression)

【在 h********5 的大作中提到】
: 我是2013年底到中山大学中山眼科中心工作。回国前在NCI做计算生物学实验室PI。眼
: 科中心长期国内专业排名第一,有很高的门诊量(~100万)和手术量(~25万),中国
: 唯一的眼科学国家重点实验室在这里。 我从事生物信息学,研究主要基于高通量数据
: 及分析,一般的测序和质谱数据都做。对基因表达调控的基础研究感兴趣。现在实验室
: 的情况:
: 1. 现在关注(1)基因翻译调控(translational regulation of gene expression)
: 的全局分析和调控机制,主要用到ribosome profiling和质谱技术。(2) LncRNA能否
: 被翻译,翻译出的肽段的功能。
: 2. 实验室现有13人。计算9人,实验4人。有高性能计算集群,miseq和hiseq2500各
: 一台,和完备的分子生物实验室。现在各种高通量测序技术和计算平台都建好了,正常

avatar
a*a
10
pat pat

【在 n****r 的大作中提到】
: 45分钟,只把第一题做完,第二题没时间问了。太惨了。
: 题目其实很简单,写一个方程生成gray code并按顺序输出相应的数字。
: 比如grayCode(3) = {0,1,3,2,6,7,5,4}
: 我先是尝试用iteration,越写越乱,干脆打倒重来用recursion。
: 刚写完graycode数组生成,还没写转化成int的function,时间到了。
: 悲惨...
: 三哥口音不错,人挺nice,给了不少提示,可惜,dream job就这么没了。

avatar
s*l
11
日本的猫好像都很淡定,不知道为什么
avatar
h*5
12
我以前是临床医生,后来学计算机,做生物信息。深感临床问题,数据分析和基础研究
的整合非常困难。我对生物有浓厚的兴趣,苦于没有受过生化或分子生物的训练,因此
研究缺乏分子机制研究。希望能找到有共同兴趣的人,发挥大家的特长,一起做一些有
趣的研究。
avatar
l*a
13
不简单吧?

【在 n****r 的大作中提到】
: 45分钟,只把第一题做完,第二题没时间问了。太惨了。
: 题目其实很简单,写一个方程生成gray code并按顺序输出相应的数字。
: 比如grayCode(3) = {0,1,3,2,6,7,5,4}
: 我先是尝试用iteration,越写越乱,干脆打倒重来用recursion。
: 刚写完graycode数组生成,还没写转化成int的function,时间到了。
: 悲惨...
: 三哥口音不错,人挺nice,给了不少提示,可惜,dream job就这么没了。

avatar
s*y
14
能具体点吗,目标是一起山寨泡文章还是一起山寨产品?咋合作和报酬?

【在 h********5 的大作中提到】
: 我以前是临床医生,后来学计算机,做生物信息。深感临床问题,数据分析和基础研究
: 的整合非常困难。我对生物有浓厚的兴趣,苦于没有受过生化或分子生物的训练,因此
: 研究缺乏分子机制研究。希望能找到有共同兴趣的人,发挥大家的特长,一起做一些有
: 趣的研究。

avatar
n*r
15
对于版上牛人来说很简单。我差点没做出来,觉得很难。

【在 l*****a 的大作中提到】
: 不简单吧?
avatar
z*u
16
纯粹顶。支持!
中大的待遇很好,曾经和中大别的学院联系过。感觉办事很正规,不走歪门邪道。经费
充足,薪水也很高。

。眼

【在 h********5 的大作中提到】
: 我以前是临床医生,后来学计算机,做生物信息。深感临床问题,数据分析和基础研究
: 的整合非常困难。我对生物有浓厚的兴趣,苦于没有受过生化或分子生物的训练,因此
: 研究缺乏分子机制研究。希望能找到有共同兴趣的人,发挥大家的特长,一起做一些有
: 趣的研究。

avatar
v*a
17
多谢面经,很新颖的题目
GC(0) = []
GC(N) = '0' + GC(N - 1), '1' + reverse( GC(N - 1) )
avatar
F*n
18
顶个P, 好像我不知道这里在运作啥似的。。
看来你不是个啥好东西。。。

【在 z****u 的大作中提到】
: 纯粹顶。支持!
: 中大的待遇很好,曾经和中大别的学院联系过。感觉办事很正规,不走歪门邪道。经费
: 充足,薪水也很高。
:
: 。眼

avatar
p*2
19
没看太明白。谁能详细解释一下。
grayCode(3) = {0,1,3,2,6,7,5,4}
avatar
n*r
20
000 = 0
001 = 1
011 = 3
010 = 2
110 = 6
111 = 7
101 = 5
100 = 4
就是先算出来gray code的二维数组,然后一行一行转换成十进制整形

【在 p*****2 的大作中提到】
: 没看太明白。谁能详细解释一下。
: grayCode(3) = {0,1,3,2,6,7,5,4}

avatar
S*0
21
public static void getGrayCode(int bitNum){
for(int i = 0; i< (int)Math.pow(2, bitNum); i++){
int grayCode = (i >> 1) ^ i;
System.out.println(num2Binary(grayCode, bitNum));
}
}
public static String num2Binary(int num, int bitNum){
String ret = "";
for(int i=bitNum-1; i >=0; i--){
ret += (num >> i) & 1;
}
return ret;
}
avatar
D*h
22
时间复杂度好像只能n^2?

【在 n****r 的大作中提到】
: 对于版上牛人来说很简单。我差点没做出来,觉得很难。
avatar
p*2
23

谢谢。感觉不算太简单。正在想。

【在 n****r 的大作中提到】
: 000 = 0
: 001 = 1
: 011 = 3
: 010 = 2
: 110 = 6
: 111 = 7
: 101 = 5
: 100 = 4
: 就是先算出来gray code的二维数组,然后一行一行转换成十进制整形

avatar
c*2
24
赞,敢问一下思路怎么来的?很难看到这个规律吧

【在 S*******0 的大作中提到】
: public static void getGrayCode(int bitNum){
: for(int i = 0; i< (int)Math.pow(2, bitNum); i++){
: int grayCode = (i >> 1) ^ i;
: System.out.println(num2Binary(grayCode, bitNum));
: }
: }
: public static String num2Binary(int num, int bitNum){
: String ret = "";
: for(int i=bitNum-1; i >=0; i--){
: ret += (num >> i) & 1;

avatar
p*2
25
练了练。
static int Convert(string s)
{
int output=0;
for (int i = 0; i < s.Length; i++)
{
output *= 2;
if (s[i] == '1')
output += 1;
}
return output;
}
static string[] GrayCode(int n)
{
if (n <= 0)
throw new ArgumentNullException();
string[] output = new string[(int)Math.Pow(2, n)];
if (n == 1)
{
output[0] = "0";
output[1] = "1";
return output;
}
string[] last = GrayCode(n - 1);
for (int i = 0; i < last.Length; i++)
{
output[i] = "0" + last[i];
output[output.Length - 1 - i] = "1" + last[i];
}
return output;
}
static void GetGrayCode(int n)
{
if (n <= 0)
throw new ArgumentNullException();
string[] output = GrayCode(n);
for (int i = 0; i < output.Length; i++)
Console.WriteLine(Convert(output[i]));
}
avatar
b*e
26
void gray(int N)
{
for (int i = 0; i < (1<cout << i^(i>>1) << endl;
}
avatar
p*2
27

赞 again.

【在 c*******2 的大作中提到】
: 赞,敢问一下思路怎么来的?很难看到这个规律吧
avatar
m*p
28
thanks for sharing.
so sad. I even don't know what gray code is.
:-(

【在 n****r 的大作中提到】
: 45分钟,只把第一题做完,第二题没时间问了。太惨了。
: 题目其实很简单,写一个方程生成gray code并按顺序输出相应的数字。
: 比如grayCode(3) = {0,1,3,2,6,7,5,4}
: 我先是尝试用iteration,越写越乱,干脆打倒重来用recursion。
: 刚写完graycode数组生成,还没写转化成int的function,时间到了。
: 悲惨...
: 三哥口音不错,人挺nice,给了不少提示,可惜,dream job就这么没了。

avatar
f*t
29
三哥绝对是在坑你
avatar
B*1
30
同感,太可恶了,出这样子的题。

【在 f*******t 的大作中提到】
: 三哥绝对是在坑你
avatar
m*p
31
so talented.

【在 b******e 的大作中提到】
: void gray(int N)
: {
: for (int i = 0; i < (1<: cout << i^(i>>1) << endl;
: }

avatar
A*u
32
我有笨办法
#include
#include
#include
#include
using namespace std;
vector P( int n );
vector R( int n );
vector P( int n )
{ vector code;
if ( n == 1 )
{
code.push_back(string("0"));
code.push_back(string("1"));
}
else
{
vector p_prev = P(n-1);
for(vector::iterator it = p_prev.
begin(); it != p_prev.end(); ++it)
{
code.push_back("0" + *it);
}
vector r_prev = R(n-1);
for(vector::iterator it = r_prev.
begin(); it != r_prev.end(); ++it)
code.push_back("1" + *it);
}
return code;
}
vector R( int n )
{ vector code;
if ( n == 1 )
{
code.push_back(string("1"));
code.push_back(string("0"));
}
else
{
vector p_prev = P(n-1);
for(vector::iterator it = p_prev.
begin(); it != p_prev.end(); ++it)
{
code.push_back("1" + *it);
}
vector r_prev = R(n-1);
for(vector::iterator it = r_prev.
begin(); it != r_prev.end(); ++it)
code.push_back("0" + *it);
}
return code;
}

【在 m*******p 的大作中提到】
: so talented.
avatar
a*m
33
这个题目还好吧?

【在 f*******t 的大作中提到】
: 三哥绝对是在坑你
avatar
e*e
34
我这儿有另外一种,利用对称性:
numBit = 2 时,
00
01
- 对称轴
11
10
vector grayCode(int numBit)
{
if (numBit == 0) return vector();
vector res;
res.push_back(string("0"));
res.push_back(string("1"));
for (int i=1; i < numBit; i++) {
int k = res.size();
while (--k >=0) {
string bits = res[k];
res[k].insert(0,1,'0');
res.push_back(bits.insert(0,1,'1'));
}
}
for (int i=0; i < res.size(); i++) {
cout << res[i] << endl;
}

return res;
}

【在 A**u 的大作中提到】
: 我有笨办法
: #include
: #include
: #include
: #include
: using namespace std;
: vector P( int n );
: vector R( int n );
: vector P( int n )
: { vector code;

avatar
H*e
35

只是是怎么想起来的呢

【在 S*******0 的大作中提到】
: public static void getGrayCode(int bitNum){
: for(int i = 0; i< (int)Math.pow(2, bitNum); i++){
: int grayCode = (i >> 1) ^ i;
: System.out.println(num2Binary(grayCode, bitNum));
: }
: }
: public static String num2Binary(int num, int bitNum){
: String ret = "";
: for(int i=bitNum-1; i >=0; i--){
: ret += (num >> i) & 1;

avatar
s*n
36
咋想出来的?

【在 b******e 的大作中提到】
: void gray(int N)
: {
: for (int i = 0; i < (1<: cout << i^(i>>1) << endl;
: }

avatar
B*1
37
这就是wiki上面写的方法吧。

【在 s******n 的大作中提到】
: 咋想出来的?
avatar
Y*B
38
这个二进制数的顺序是怎么确定的?

【在 n****r 的大作中提到】
: 000 = 0
: 001 = 1
: 011 = 3
: 010 = 2
: 110 = 6
: 111 = 7
: 101 = 5
: 100 = 4
: 就是先算出来gray code的二维数组,然后一行一行转换成十进制整形

avatar
Y*B
39
请问LZ面世的是跟硬件相关的职位么? 还是软件?

【在 n****r 的大作中提到】
: 45分钟,只把第一题做完,第二题没时间问了。太惨了。
: 题目其实很简单,写一个方程生成gray code并按顺序输出相应的数字。
: 比如grayCode(3) = {0,1,3,2,6,7,5,4}
: 我先是尝试用iteration,越写越乱,干脆打倒重来用recursion。
: 刚写完graycode数组生成,还没写转化成int的function,时间到了。
: 悲惨...
: 三哥口音不错,人挺nice,给了不少提示,可惜,dream job就这么没了。

avatar
H*e
40
从中间对称

【在 Y**B 的大作中提到】
: 这个二进制数的顺序是怎么确定的?
avatar
k*t
41
两点想法:
1。本质上是边沿触发记录相邻信号变化,不变为零,变化为一。
2。按顺序输出GrayCode序列时,每次原数自增一时,进位到的最高位
的GaryCode bit flip,其它位不变,因为原数低于进位最高位的位全变了
(由全一变成全零),而原数高于进位最高位的位全不变。所以记录相邻位信
号变化的GrayCode,与自增前的原数的GaryCode相比,只有在最高进位位flip,
其它位不变。如果原数自增时没有进位,则退化成GaryCode末位flip的情况。
按这个思路,可以有一个NextGrayCode()函数返回下一个GrayCode。计算出应该flip的bit,然后flip保存的上一个GaryCode的相应bit即可。flip bit
的计算应该可以用类似计算全组合的回溯或递归的方法取得。

【在 n****r 的大作中提到】
: 45分钟,只把第一题做完,第二题没时间问了。太惨了。
: 题目其实很简单,写一个方程生成gray code并按顺序输出相应的数字。
: 比如grayCode(3) = {0,1,3,2,6,7,5,4}
: 我先是尝试用iteration,越写越乱,干脆打倒重来用recursion。
: 刚写完graycode数组生成,还没写转化成int的function,时间到了。
: 悲惨...
: 三哥口音不错,人挺nice,给了不少提示,可惜,dream job就这么没了。

avatar
c*p
42
method 1: use a generic equation.
method 2: recursive way
GC(0) = 0, GC(1) = 1;
GC(2^k + n) = 2^k + GC(2^k-n-1), where 0<=n<=2^k-1
in other words, to get GC for 2^k to 2^(k+1)-1, flip the GC sequence of 0~2^
k-1, and set the kth bit(LSB is 0th bit).
000
001
--- k = 1, flip and set 1st bit
011
010
--- k = 2, flip and set 2nd bit
110
111
101
100
--- .....

【在 n****r 的大作中提到】
: 45分钟,只把第一题做完,第二题没时间问了。太惨了。
: 题目其实很简单,写一个方程生成gray code并按顺序输出相应的数字。
: 比如grayCode(3) = {0,1,3,2,6,7,5,4}
: 我先是尝试用iteration,越写越乱,干脆打倒重来用recursion。
: 刚写完graycode数组生成,还没写转化成int的function,时间到了。
: 悲惨...
: 三哥口音不错,人挺nice,给了不少提示,可惜,dream job就这么没了。

avatar
s*e
43
recursion 代码:
public static void grayCode(int numOfBits) {
assert (numOfBits > 0);
int[] arr = new int[numOfBits];
for (int i : arr) i = 0;
doGrayCode(arr, 0);
}
public static void doGrayCode(int[] arr, int layer) {
int len = arr.length - 1;
if (layer == len) {
print(arr);
arr[layer] = 1 - arr[layer];
print(arr);
} else {
doGrayCode(arr, layer + 1);
arr[layer] = 1 - arr[layer];
doGrayCode(arr, layer + 1);
}
}
avatar
b*7
44
Your solution is so cool.
Here's what I came up with:
void gray(int bits)
{
int v = 0;
for(int i=1; i<= (1<{
cout<
int t=0;
while((i & (1<t++;
v = v^(1<}
cout<}

【在 b******e 的大作中提到】
: void gray(int N)
: {
: for (int i = 0; i < (1<: cout << i^(i>>1) << endl;
: }

avatar
t*0
45
mark
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。